• View

  • Download

Embed Size (px)


personalization example

Text of personalization

  • 1. Enhance the UserExperience with FormPersonalizationsJeff Lollar, Lucidity Consulting Group September 2007

2. Goals of this PresentationKnow what Form Personalizations areDevelop the mindset that Form Personalizations can offer Creative SolutionsPosition to Implement Solutions with some Trial and ErrorDemonstrate several popular and inspiring Forms Personalizations 3. What are Personalizations A means to build enhancements to OracleApplication Forms Execute an ACTION when a CONDITION issatisfied Form Personalizations, not Page/OAFPersonalizations Substitute for the CUSTOM.pll (with limitations) Common Examples: Require Fields, DefaultValues, Pop Message Boxes,etc 4. Limitations of Form PersonalizationsNot used by Pages/OAF (This is a different type of Personalization)Executed at Form Level (No impact on APIs or Table Validations)In most cases, only a few triggering events are availableLimited CapabilitiesEx. Cannot add new items (fields, buttons, etc) to the form 5. How to Create a Personalization1. Access Setup Form2. Enter Condition3. Enter Action4. Save & Test 6. Access Setup Form1. Navigate to the Form you wish to implement a Personalization for2. HELP > DIAGNOSTIC > CUSTOM CODE > PERSONALIZE 7. Access Setup Form 8. Access Setup FormImpacting System OptionsHide Diagnostics menu entryNo Diagnostics menu is accessible (access Forms Personalizations)Utilities:DiagnosticsNo Must provide APPS password in order to access Diagnostics 9. Enter ConditionProvide the Condition that must be satisfiedin order for the Action to take placeThe HeaderTriggering Event & ObjectCondition StatementContext 10. Enter ConditionEnter the HeaderUse Sequence for Organization and Enable or Disablecontrolling prioritizationApply at the Form or Function Level Provide a clear description(A function is a particular instance of aform assigned to a Responsibilitys Menu) 11. Enter ConditionTriggering Event WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCE WHEN-VALIDTE-RECORD MENU(N) 1-15 SPECIAL(N) 1-45Triggering Object Required depending on Triggering Event BLOCK.FIELD (validated) 12. Enter Condition Condition Statement If Condition evaluates to TRUE then Actions areControl if rule should be processed. Can leverage SQL functions, processed in Query-Mode operators, and bind variablesTest yourcondition usingdata in currentformInsert variables that reference Helps with inserting Bindattribute values of objects (items, Variables (BLOCK.ITEM)windows, globals, ets) 13. Enter ConditionContext RegionRestrict Personalization to a particularUserResponsibilityIndustry (reserved for future per Metalink Doc Id 395117.1) Example of restricting by user 14. Enter ActionEnter Action This is WHAT the Personalization does Four Basic Types Sequence that Enable for a particular1. PropertyActions takelanguage order2. Message3. Builtin4. Menu Select Type. This determinesEnable or Disable fields presented in region on the right. 15. Enter ActionPropertySet a Value for a particular Property on a Particular Object.Ex. Make Payment Terms field required. Based on ObjectExample: Item, Type Selected,Block, Window, identifyCanvas, etc particular Object The Property of the Object that The new value to will be edited. Example:assign to the property. Displayed, Value, Prompt, etc SQL may be used here 16. Enter Action Message Message Type Show A message with an OK button Hint Message Line (lower left corner) Error Aborts after message box Debug only if Show Debug Messages is checked Warn Aborts if user selects Cancel Message Text SQL Bind Variables 17. Enter ActionBuiltin Launch SRS Form Open the Submit Concurrent Request form Launch a Function Open a registered application function such as thoseassigned to responsibility menus. Launch a URL DO_KEY Perform form actions, such as Clear Block, Duplicate Record,etc Execute a Procedure Call a procedure and pass arguments GO_ITEM Move to a particular item within the form GO_BLOCK Move to the first item of a particular block within the form FORMS_DDL (Data Dictionary Language) Always issues an implicitCommit. Raise FORM_TRIGGER_FAILURE EXECUTE_TRIGGER Execute a trigger that is within the form SYNCHRONIZE Synchronize Client and middle-tier Call Custom Library Call an Event within the CUSTOM.pll 18. Enter ActionMenuCreate Menu Options Under Toolbar HeadingsRequires additional personalization at condition of Selection What the userwill seeAssigned to anUnique OptionControl inwhat blocksMenu OptionDisplay or not a line is enabledabove Menu Option 19. Save & Test1. Save Work2. Close Form Being Personalized3. Reopen & Test 20. DemonstrationSeveral Form PersonalizationsRanging from Simple to AdvancedFor each:Identify the Personalization Functionality LeveragedWalkthrough the Setups 21. ExamplesHide the Online button on the Release FormPop a Customer Specific Message when entering SO for CustomerOpen a Customers Address in a Google Map 22. More ExamplesControl a Users Discounting PrivilegesOpen the Item Supply/Demand form from the Sales Order and pass parametersPrint the AR Invoice from within the Sales Order Form 23. Hide Online button on Release FormDemonstrateSet Property ValueSimple! A Great Example of an Easy Personalizationthat is Very Effective! 24. Hide Online button on Release Form BeforeAfter 25. Hide Online button on Release FormHeaderConditionAccept Default 26. Hide Online button on Release FormActionsType = PropertyObject Type = ItemTarget Object = RELEASE.ONLINEProperty Name = DISPLAYEDValue = False 27. Pop Customer Specific Msg at OESQL-based ConditionPop a Message BoxSQL-based MessageInsert Get Expression 28. Pop Customer Specific Msg at OECustomer Master Sales Order Form 29. Pop Customer Specific Msg at OEConditionTrigger Event = WHEN-NEW-ITEM-INSTANCE Trigger Object = ORDER.SOLD_TO Condition = (select attribute6 from hz_cust_accounts where cust_account_id=${item.order.sold_to_org_id.value}) is not null 30. Pop Customer Specific Msg at OEActionsType = MessageMessage Type = ShowMessage Text = =select attribute6 from hz_cust_accounts wherecust_account_id=${item.order.sold_to_org_id.value} 31. Pop Customer Address in a Web MapCreate a Menu OptionLaunch From a Menu OptionLaunch SQL-based URLInsert Get ExpressionRequires Two Personalization RecordsCreate Menu OptionLaunch URL 32. Pop Customer Address in a Web Map Sales Order Form Customer Address In Google Map 33. Pop Customer Address in a Web MapHeader - Creating Menu OptionCondition - Creating Menu OptionAccept Default 34. Pop Customer Address in a Web MapActions - Creating Menu OptionType MenuMenu Entry MENU1Menu Label Map It! (or any name you prefer) 35. Pop Customer Address in a Web Map Header Launch URLCondition Launch URLTrigger Event = MENU1Condition = ${item.order.ship_to_address1.value} IS NOT NULL 36. Pop Customer Address in a Web MapActions Launch URLTrigger Event = Builtin Builtin Type = Launch a URL Argument = =SELECT (||${ ip_to_address1_mir.value}||,||${item.order.ship_to_address5_mir2.value}) FROM DUAL 37. Control a Users Discounting Privileges Message Box Call Package to create Message Text Launch Multiple Actions Raise Form_Trigger_Failure Builtin Utilize PL/SQL package in Condition Insert Get Expression 38. Control a Users Discounting PrivilegesAssign Discount Limit to Custom System OptionValidate if UsersDiscount of ListPrice is withinher/his Limit 39. Control a Users Discounting PrivilegesConditionTrigger Event = WHEN-VALIDATE-RECORDTrigger Object = LINECondition = (1 -(${item.line.unit_selling_price.value}/${item.line.unit_list_price.value})) >(XXLCG_FORMS_PERSON_UTIL_PKG.get_discount_limit(FND_GLOBAL.USER_ID)/100) 40. Control a Users Discounting PrivilegesActionsTrigger Event = Message Message Type = Error Message Text = =SELECT You do not have the permission to apply a discount greater than|| XXLCG_FORMS_PERSON_UTIL_PKG.get_discount_limit(FND_GLOBAL.USE R_ID) || % to the original list price of ||TO_CHAR(${item.line.unit_list_price_mir.value},$9,999,999.99)|| . Please contact your sales manager if the discount must be applied. FROM DUAL 41. Control a Users Discounting Privileges Actions Trigger Event = BuiltinBuiltin Type = RAISE FORM_TRIGGER_FAILURE 42. Open Supply/Demand Form from SOLaunch Form Built-InPassing Form ParametersCreate Menu OptionLaunch From Menu OptionInsert Get Expression 43. Open Supply/Demand Form from SO From Sales Order Tools Menu, select Open Item DemandSupply/Demand Form opens passing itemalready queried on Sales Order Line 44. Open Supply/Demand Form from SOCondition - Creating Menu OptionAccept DefaultActions - Creating Menu OptionType = MenuMenu Entry = MENU3Menu Label = Open Item Demand (or whatever you choose)Enabled in Block(s) = LINE 45. Open Supply/Demand Form from SOCondition Launching FormTrigger Event = MENU3 46. Open Supply/Demand Form from SOActions Launching FormType = BuiltinBuiltin Type = Launch a FunctionFunction Code = INV_INVDVDSDParameters = =SELECTITEM_NUMBER=||${item.line.inventory_item.value}|| ORG_ID =||${item.line.ship_from_org_id.value} FROM DUAL 47. Print AR Invoice from the Sales Order Launch SRS Form Builtin Global Parameters Create Menu Option Launch From Menu Option Requires Three Personalizations1. Create Menu Option2. Launch SRS Form3. Default Parameters in SRS Form 48. Print AR Invoice from the Sales OrderFrom Sales Order form, SelectTOOLS > PRINT AR INVOICEThe AR Invoice SRSform will open with theInvoice Numberdefaulted 49. Print AR Invoice from the Sales OrderHeader - Creating Menu OptionCondition - Creating Menu OptionAccept Default 50. Print AR Invoice from the Sales OrderActions - Creating Menu OptionType MenuMenu Entry MENU2Menu Label Print AR Invoice (or any name you prefer) 51. Pri