• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content




personalization example

personalization example



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    personalization personalization Presentation Transcript

    • Enhance the UserExperience with Form Personalizations Jeff Lollar, Lucidity Consulting Group September 2007
    • Goals of this PresentationKnow what Form Personalizations areDevelop the mindset that Form Personalizations can offer Creative SolutionsPosition to Implement Solutions with some Trial and ErrorDemonstrate several popular and “inspiring” Forms Personalizations
    • What are Personalizations A means to build enhancements to Oracle Application Forms Execute an ACTION when a CONDITION is satisfied Form Personalizations, not Page/OAF Personalizations Substitute for the CUSTOM.pll (with limitations) Common Examples: Require Fields, Default Values, Pop Message Boxes,etc
    • Limitations of Form PersonalizationsNot used by Pages/OAF (This is a different type of Personalization)Executed at Form Level (No impact on API’s or Table Validations)In most cases, only a few triggering events are availableLimited Capabilities Ex. Cannot add new items (fields, buttons, etc) to the form
    • How to Create a Personalization1. Access Setup Form2. Enter Condition3. Enter Action4. Save & Test
    • Access Setup Form1. Navigate to the Form you wish to implement a Personalization for2. HELP > DIAGNOSTIC > CUSTOM CODE > PERSONALIZE
    • Access Setup Form
    • Access Setup FormImpacting System Options“Hide Diagnostics menu entry” No – Diagnostics menu is accessible (access Forms Personalizations)“Utilities:Diagnostics” No – Must provide APPS password in order to access Diagnostics
    • Enter ConditionProvide the Condition that must be satisfied in order for the Action to take placeThe HeaderTriggering Event & ObjectCondition StatementContext
    • Enter ConditionEnter the HeaderUse Sequence for Organization and Enable or Disablecontrolling prioritization Apply at the Form or Function Level Provide a clear description (A function is a particular instance of a form assigned to a Responsibility’s Menu)
    • 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)
    • Enter Condition Condition Statement If Condition evaluates to TRUE then Actions are Control if rule should be processed. Can leverage SQL functions, processed in Query-Mode operators, and bind variables Test your condition using data in current formInsert variables that reference Helps with inserting Bindattribute values of objects (items, Variables (BLOCK.ITEM)windows, globals, ets)
    • Enter ConditionContext RegionRestrict Personalization to a particularUserResponsibilityIndustry (reserved for future per Metalink Doc Id 395117.1) Example of restricting by user
    • Enter ActionEnter Action This is WHAT the Personalization does Four Basic Types Sequence that Enable for a particular 1. Property Actions take language order 2. Message 3. Builtin 4. Menu Select Type. This determines Enable or Disable fields presented in region on the right.
    • Enter ActionPropertySet a Value for a particular Property on a Particular Object.Ex. Make “Payment Terms” field required. Based on Object Example: Item, Type Selected, Block, Window, identify Canvas, 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
    • 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
    • Enter ActionBuiltin Launch SRS Form – Open the “Submit Concurrent Request” form Launch a Function – Open a registered application function such as those assigned 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 implicit Commit. 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
    • Enter ActionMenuCreate Menu Options Under Toolbar HeadingsRequires additional personalization at condition of Selection What the user will see Assigned to an Unique Option Control in what blocks Menu Option Display or not a line is enabled above Menu Option
    • Save & Test1. Save Work2. Close Form Being Personalized3. Reopen & Test
    • DemonstrationSeveral Form PersonalizationsRanging from Simple to AdvancedFor each: Identify the Personalization Functionality Leveraged Walkthrough the Setups
    • ExamplesHide the “Online” button on the Release FormPop a Customer Specific Message when entering SO for CustomerOpen a Customers Address in a Google Map
    • More ExamplesControl a Users Discounting PrivilegesOpen the “Item Supply/Demand” form from the Sales Order and pass parametersPrint the AR Invoice from within the Sales Order Form
    • Hide “Online” button on Release FormDemonstrateSet Property ValueSimple! A Great Example of an Easy Personalization that is Very Effective!
    • Hide “Online” button on Release Form Before After
    • Hide “Online” button on Release Form HeaderConditionAccept Default
    • Hide “Online” button on Release FormActions•Type = Property •Object Type = Item •Target Object = RELEASE.ONLINE •Property Name = DISPLAYED •Value = False
    • Pop Customer Specific Msg at OESQL-based ConditionPop a Message BoxSQL-based MessageInsert ‘Get’ Expression
    • Pop Customer Specific Msg at OE Customer Master Sales Order Form
    • Pop Customer Specific Msg at OECondition•Trigger 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
    • Pop Customer Specific Msg at OEActions•Type = Message •Message Type = Show •Message Text = =select attribute6 from hz_cust_accounts where cust_account_id=${item.order.sold_to_org_id.value}
    • Pop Customer Address in a Web MapCreate a Menu OptionLaunch From a Menu OptionLaunch SQL-based URLInsert ‘Get’ ExpressionRequires Two Personalization Records Create Menu Option Launch URL
    • Pop Customer Address in a Web Map Sales Order Form Customer Address In Google Map
    • Pop Customer Address in a Web MapHeader - Creating Menu OptionCondition - Creating Menu OptionAccept Default
    • Pop Customer Address in a Web MapActions - Creating Menu Option•Type – Menu •Menu Entry – MENU1 •Menu Label – Map It! (or any name you prefer)
    • Pop Customer Address in a Web Map Header – Launch URLCondition – Launch URL•Trigger Event = MENU1•Condition = ${item.order.ship_to_address1.value} IS NOT NULL
    • Pop Customer Address in a Web MapActions – Launch URL•Trigger Event = Builtin •Builtin Type = Launch a URL •Argument = =SELECT (http://maps.google.com/maps?f=q&hl=en&geocode=&q=||${item.order.sh ip_to_address1_mir.value}||,||${item.order.ship_to_address5_mir2.value}) FROM DUAL
    • 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
    • Control a Users Discounting Privileges Assign Discount Limit to Custom System Option Validate if User’s Discount of List Price is within her/his Limit
    • Control a Users Discounting PrivilegesCondition•Trigger Event = WHEN-VALIDATE-RECORD•Trigger Object = LINE•Condition = (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)
    • Control a Users Discounting PrivilegesActions•Trigger 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
    • Control a Users Discounting Privileges Actions •Trigger Event = Builtin •Builtin Type = RAISE FORM_TRIGGER_FAILURE
    • Open Supply/Demand Form from SOLaunch Form Built-InPassing Form ParametersCreate Menu OptionLaunch From Menu OptionInsert ‘Get’ Expression
    • Open Supply/Demand Form from SO From Sales Order Tools Menu, select “Open Item Demand”Supply/Demand Form opens passing itemalready queried on Sales Order Line
    • Open Supply/Demand Form from SOCondition - Creating Menu OptionAccept DefaultActions - Creating Menu Option•Type = Menu •Menu Entry = MENU3 •Menu Label = Open Item Demand (or whatever you choose) •Enabled in Block(s) = LINE
    • Open Supply/Demand Form from SOCondition – Launching FormTrigger Event = MENU3
    • Open Supply/Demand Form from SOActions – Launching Form•Type = Builtin •Builtin Type = Launch a Function •Function Code = INV_INVDVDSD •Parameters = =SELECT ITEM_NUMBER=||${item.line.inventory_item.value}|| ORG_ID = ||${item.line.ship_from_org_id.value} FROM DUAL
    • Print AR Invoice from the Sales Order “Launch SRS Form” Builtin Global Parameters Create Menu Option Launch From Menu Option Requires Three Personalizations 1. Create Menu Option 2. Launch SRS Form 3. Default Parameters in SRS Form
    • Print AR Invoice from the Sales Order From Sales Order form, Select TOOLS > PRINT AR INVOICEThe AR Invoice SRSform will open with theInvoice Numberdefaulted
    • Print AR Invoice from the Sales OrderHeader - Creating Menu OptionCondition - Creating Menu OptionAccept Default
    • Print AR Invoice from the Sales OrderActions - Creating Menu Option•Type – Menu •Menu Entry – MENU2 •Menu Label – Print AR Invoice (or any name you prefer)
    • Print AR Invoice from the Sales OrderHeader – Launch SRS FormCondition - Launch SRS FormTrigger Event – MENU2Condition -(XXLCG_FORMS_PERSON_UTIL_PKG.get_line_invoice_num(${item.line.line_id.value}) IS NOT NULL)
    • Print AR Invoice from the Sales OrderActions – Launch SRS Form•Type – Property •Object Type – Global Variable •Target Object – XX_PRINT_AR_INV_PARAM_VAR (or what value you chose) •Property Name – VALUE •Value - =SELECT Transaction Number...||XXLCG_FORMS_PERSON_UTIL_PKG.get_line_invoice_num(${item.l ine.line_id.value})||.||XXLCG_FORMS_PERSON_UTIL_PKG.get_line_invoice_nu m(${item.line.line_id.value})||......No. FROM dual
    • Print AR Invoice from the Sales OrderActions – Launch SRS Form•Type – Builtin •Builtin Type – Launch SRS Form •Program Name – Invoice Print Selected Invoices (select the desired request)
    • Print AR Invoice from the Sales OrderHeader – Default Parameters in SRS FormCondition - Default Parameters in SRS Form•Trigger Event – WHEN-NEW-ITEM-INSTANCE•Trigger Object – WORK_ORDER.PARAMETERS•Condition - (${item.work_order.user_concurrent_program_name.value} = InvoicePrint Selected Invoices) AND (${global.xx_print_ar_inv_param_var.value} IS NOTNULL)
    • Print AR Invoice from the Sales OrderActions – Default Parameters in SRS Form•Type – Property •Object Type – Item •Target Object – WORK_ORDER.PARAMETERS •Property Name – VALUE •Value - =SELECT nvl(${global.XX_PRINT_AR_INV_PARAM_VAR.value},${item.work_order.para meters.value}) FROM dual
    • In Conclusion…Form Personalizations provide the means to easily extend your forms with minimal technical developmentGoes beyond requiring fields and popping message boxesGet out there and try enhancing your users’ experience
    • Additional Information “Form Personalizations in Oracle Applications (Release 12) “ Metalink Doc Id: 395117.1 “Information About the Oracle Applications Form Personalization Feature in 11i “ Metalink Doc Id: 279034.1 Metalink in general www.oaug.org Google web search for “Oracle Form Personalization”
    • Q&A Contact Information Jeff Lollar Lucidity Consulting Group jlollar@luciditycg.com www.luciditycg.com