personalization
-
Upload
sanodia77 -
Category
Economy & Finance
-
view
2.955 -
download
3
description
Transcript of personalization
Enhance the User Experience with Form
PersonalizationsJeff Lollar, Lucidity Consulting Group
September 2007
Goals of this Presentation
Know 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
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 availableLimited CapabilitiesEx. Cannot add new items (fields, buttons,
etc) to the form
How to Create a Personalization
1. Access Setup Form2. Enter Condition3. Enter Action4. Save & Test
Access Setup Form
1. Navigate to the Form you wish to implement a Personalization for
2. HELP > DIAGNOSTIC > CUSTOM CODE > PERSONALIZE
Access Setup Form
Access Setup Form
Impacting 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 Condition
Provide the Condition that must be satisfied in order for the Action to take place
The HeaderTriggering Event & ObjectCondition StatementContext
Enter Condition
Enter the Header
Use Sequence for Organization and controlling prioritization
Enable or Disable
Apply at the Form or Function Level(A function is a particular instance of a form assigned to a Responsibility’s Menu)
Provide a clear description
Enter Condition
Triggering EventWHEN-NEW-FORM-INSTANCEWHEN-NEW-BLOCK-INSTANCEWHEN-NEW-RECORD-INSTANCEWHEN-NEW-ITEM-INSTANCEWHEN-VALIDTE-RECORDMENU(N) – 1-15SPECIAL(N) – 1-45
Triggering ObjectRequired depending on Triggering EventBLOCK.FIELD (validated)
Enter Condition
Helps with inserting Bind Variables (BLOCK.ITEM)
Condition Statement
Test your condition using data in current form
Insert variables that reference attribute values of objects (items, windows, globals, ets)
Control if rule should be processed in Query-Mode
If Condition evaluates to TRUE then Actions are processed. Can leverage SQL functions, operators, and bind variables
Enter Condition
Context RegionRestrict Personalization to a particularUserResponsibilityIndustry (reserved for future per Metalink Doc Id 395117.1)
Example of restricting by user
Enter Action
Enter Action This is WHAT the Personalization does Four Basic Types
1. Property2. Message3. Builtin4. Menu
Enable for a particular language
Enable or DisableSelect Type. This determines fields presented in region on the right.
Sequence that Actions take order
Enter Action
PropertySet a Value for a particular Property on a
Particular Object.Ex. Make “Payment Terms” field required.
Based on Object Type Selected, identify particular Object
The new value to assign to the property. SQL may be used here
The Property of the Object that will be edited. Example: Displayed, Value, Prompt, etc
Example: Item, Block, Window, Canvas, etc
Enter Action
MessageMessage TypeShow – A message with an “OK” buttonHint –Message Line (lower left corner)Error – Aborts after message boxDebug – only if “Show Debug Messages” is checkedWarn – Aborts if user selects “Cancel”
Message TextSQLBind Variables
Enter Action
Builtin 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 Action
MenuCreate Menu Options Under Toolbar
HeadingsRequires additional personalization at
condition of Selection What the user will see
Control in what blocks Menu Option is enabledDisplay or not a line
above Menu Option
Assigned to an Unique Option
Save & Test
1. Save Work2. Close Form Being Personalized3. Reopen & Test
Demonstration
Several Form PersonalizationsRanging from Simple to AdvancedFor each:Identify the Personalization Functionality
LeveragedWalkthrough the Setups
Examples
Hide the “Online” button on the Release Form Pop a Customer Specific Message when
entering SO for CustomerOpen a Customers Address in a Google
Map
More Examples
Control 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
Hide “Online” button on Release Form
DemonstrateSet Property ValueSimple!
A Great Example of an Easy Personalization that is Very Effective!
Before
After
Hide “Online” button on Release Form
Header
ConditionAccept Default
Hide “Online” button on Release Form
Actions•Type = Property
•Object Type = Item•Target Object = RELEASE.ONLINE•Property Name = DISPLAYED•Value = False
Hide “Online” button on Release Form
Pop Customer Specific Msg at OE
SQL-based ConditionPop a Message BoxSQL-based MessageInsert ‘Get’ Expression
Pop Customer Specific Msg at OE
Customer Master
Sales Order Form
Pop Customer Specific Msg at OE
Condition•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 OE
Actions•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 OptionLaunch From a Menu OptionLaunch SQL-based URLInsert ‘Get’ ExpressionRequires Two Personalization RecordsCreate Menu OptionLaunch URL
Pop Customer Address in a Web Map
Sales Order Form
Customer AddressIn Google Map
Pop Customer Address in a Web Map
Header - Creating Menu Option
Condition - Creating Menu OptionAccept Default
Pop Customer Address in a Web Map
Actions - 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 URL
Condition – Launch URL•Trigger Event = MENU1•Condition = ${item.order.ship_to_address1.value} IS NOT NULL
Pop Customer Address in a Web Map
Actions – 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.ship_to_address1_mir.value}||','||${item.order.ship_to_address5_mir2.value}) FROM DUAL
Control a Users Discounting Privileges
Message BoxCall Package to create Message TextLaunch Multiple Actions“Raise Form_Trigger_Failure” BuiltinUtilize PL/SQL package in ConditionInsert ‘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 Privileges
Condition•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 Privileges
Actions•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.USER_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-InPassing Form ParametersCreate Menu OptionLaunch From Menu OptionInsert ‘Get’ Expression
Open Supply/Demand Form from SO
From Sales Order Tools Menu, select “Open Item Demand”
Supply/Demand Form opens passing item already queried on Sales Order Line
Open Supply/Demand Form from SO
Condition - Creating Menu OptionAccept Default
Actions - 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 SO
Condition – Launching FormTrigger Event = MENU3
Open Supply/Demand Form from SO
Actions – 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 Option2. Launch SRS Form3. Default Parameters in SRS Form
Print AR Invoice from the Sales Order
From Sales Order form, Select TOOLS > PRINT AR INVOICE
The AR Invoice SRS form will open with the Invoice Number defaulted
Print AR Invoice from the Sales Order
Header - Creating Menu Option
Condition - Creating Menu OptionAccept Default
Print AR Invoice from the Sales Order
Actions - Creating Menu Option•Type – Menu
•Menu Entry – MENU2•Menu Label – Print AR Invoice (or any name you prefer)
Print AR Invoice from the Sales Order
Header – Launch SRS Form
Condition - 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 Order
Actions – 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.line.line_id.value})||'.'||XXLCG_FORMS_PERSON_UTIL_PKG.get_line_invoice_num(${item.line.line_id.value})||'......No.' FROM dual
Print AR Invoice from the Sales Order
Actions – 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 Order
Header – Default Parameters in SRS Form
Condition - 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} = 'Invoice Print Selected Invoices') AND (${global.xx_print_ar_inv_param_var.value} IS NOT NULL)
Print AR Invoice from the Sales Order
Actions – 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.parameters.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 boxesGet 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 “ MetalinkDoc Id: 279034.1
Metalink in generalwww.oaug.orgGoogle web search for “Oracle Form
Personalization”