Customization Reduction with Forms and OA Framework Personalizations

Written by Susan Behn Edited and Presented by Karen Brownfield

• Why
– Business Benefit

• What
– Overview of Personalization Tools

• How
– Forms Personalization Examples – OA Framework Personalization Examples – Migration to other instances

• Where
– References

Business Benefit - $aves Money!
Less Development Time Declarative Menu Driven Business User Friendly Survives patching Adapt terminology to your business without coding Speed up data entry – move or eliminate fields Attach extensions – seamless processing power Add validations – reduced error correction Implement security policies Reduce Upgrade Costs

Reduce Processing Time

Reduce Training Time

Reduce Audit Costs

5.10 • Professional forms only • Not supported in 11g database • Requires Unix access .Overview • Personalizations – declaratively alter behavior or appearance using tools provided by Oracle • Personalization Tools – Forms personalizations • Professional Forms 6i or 10g – OA Framework Personalization – CUSTOM.pll • Programmatic tool prior to 11.

pll still in use.Forms Personalizations • Requires Superuser – may require some sql skills • Post patch/upgrade validation process – Survives most patches / upgrades • Can do most changes formerly done in CUSTOM.pll • Effective immediately – no coding. forms personalizations will fire first for the same event . no compiling • Better environmental security – done through the forms • If CUSTOM.

call other pages/forms (zoom).Forms Personalizations Can… • Speed up data entry – Hide fields. tabs – Set default values – Provide information. execute processes from Tool menu • Improve security – Make fields required – Restrict insert or update • Adapt to your business process – Change prompts. labels – Enforce Uppercase – Alter List of Values (LOV) .

10 Superuser with minimal technical expertise Effective immediately – no coding. no compiling • Done through the forms .OA Framework Personalizations • • • • Used in self-service forms Standard starting with 11.5.

headers.Framework Personalizations Can… • Speed up data entry – Hide Columns – Reorder Columns – Set default values • Improve security – Remove Buttons – Change Field Attributes – make fields required • Adapt to your business process – Change prompts. button names – Add Items (Buttons. Tips and more) . labels. Fields.


Forms Personalizations • Hide Diagnostics menu entry – Set to No to see the menu • Utilities: Diagnostics – Set to No to require apps password .

Accessing Forms Personalization • Access the form or function needing personalization • Help Æ Diagnostics Æ Custom Code Æ Personalize .

Forms Personalization 1 – 100 Reusable Form or Function .

Forms Personalization Condition Tab • Trigger event determines when the rule fires – Use standard trigger events (see next slide) – Can use specific events unique to the form *Caution* • Find these events using Help ÆDiagnostics ÆCustom Code ÆShow Custom Events • Trigger object depends on trigger event – Example: WHEN-NEW-BLOCK-INSTANCE requires block name .

Forms Personalization Standard Trigger Events • WHEN-NEW-FORM-INSTANCE – Security rules. Navigation rules. Visual attributes • WHEN-NEW-BLOCK-INSTANCE – Same as WHEN-NEW-FORM-INSTANCE – Message rules • WHEN-NEW-RECORD-INSTANCE – Default values • WHEN-NEW-ITEM-INSTANCE – Message rules – Default values dependent on entry of another item .

Forms Personalization Standard Trigger Events • WHEN-VALIDATE-RECORD – Populate hidden fields – Additional validations • SPECIALn – Populate tools menu (SPECIAL 1-15) – Populate reports menu (SPECIAL 16-30) – Populate actions menu (SPECIAL 31-45) • MENUn – Populate tools menu (MENU1-15) .

or both . or entry mode.field) • Processing Mode – Whether rule should be invoked in query mode.Forms Personalization Condition Tab • Condition – Optional SQL code fragment to limit scope of rule – References bind variables (:block.

Forms Personalization .Context • Who does this rule apply to? • Level at which rule will apply Site Responsibility User – Use this for testing rules Industry (For future use) Tip: For initial development. set context to your user id .

message. built-in.Forms Personalization Property Actions • • • • Sequence – non unique (1 – 100) Type – property. menu Description – (Optional) Language – use to change prompts for language Prompts change depending on action type .

Example 1: Display Message • What – GL Journal Entry – Remind users to change the period name the first 20 days of the fiscal year • Period name defaults to latest open period • Why – During year end close. the final period is held open longer resulting in journals being keyed to wrong period – Delays in closing resulting in lost time and money – Reduce time for training through use of automated messages .

Example 1: Display Message • How Enter header details Condition is checked when the user accesses the journal name field Message appears Jan 1 – Jan 20 every year .

Example 1: Display Message • Message Types – – – – Show – Informational Message Hint – Appear on status bar Error – Requires user response – raises form_trigger_failure Debug – Only displays if debug mode is set to Show Debug Messages – Warn – Informational message with caution symbol – raises form_trigger_failure .

Example 1: Display Message • Result Click OK to continue .

Example 2: Restrict Data Access • What – Restrict users from entering or retrieving invoice if user is the supplier • Why – Audit control – Theft prevention • How – Requires minimal SQL skills .

Example 2: Restrict Data Access • Enter header and condition tab details • WHEN-NEW-BLOCK-INSTANCE for the invoice block controls access as the invoice header level .

user_id = fnd_profile.employee_id = pv.value('USER_ID') AND fusr. fnd_user fusr WHERE fusr.Example 2: Restrict Data Access • Change the default where clause for the invoice block to prevent retrieval of employee invoices based on user id vendor_id NOT IN (SELECT vendor_id FROM ap_suppliers pv .employee_id ) .

Example 3: Menu Entries • What – Create ability to display invoice id from Tools menu • Why – Invoice approval workflow doesn’t set a user key and thus invoice_id is required to find the workflow .

Example 3: Menu Entries • How – Step 1 – establish the menu entry • Trigger Event = WHEN-NEW-FORM-INSTANCE Use WHEN-NEW-FORMINSTANCE for visual changes Such as establishing menu entries .

Example 3: Menu Entries • Menu action type only displays the menu Use add block button to choose blocks where this menu will be enabled or leave null for all blocks .

Example 3: Menu Entries • Step 2 – create the action for the menu entry Trigger Event = MENU# from previous slide .

Example 3: Menu Entries • Step 2 – create the action for the menu entry Use validate button to check sql fragment .

Example 3: Menu Entries • Result Choose new menu item .

e. Invoice ID is displayed .Example 3: Menu Entries • Result “Message”. i.

Example 4: Masking Data • What – Mask the Supplier tax id on the Invoice Inquiry form • R12 Supplier form masks this ID • Why – Uniformity in securing sensitive data .

Example 4: Masking Data • How – Change form appearance at WHEN-NEWFORM-INSTANCE .

Example 4: Masking Data • CONCEAL_DATA replaces data with asterisks Don’t need to know object name Use Select By Text button to find correct object by prompt .

Example 4: Masking Data • Result • But…. now must prevent data from being seen in LOV .

Example 4b: Block Entry into Field • Add 2nd sequence to same rule to block opening LOV Same rule used to conceal the data .

Example 5: Changing LOVs • What – Remove Supplier Taxpayer ID from the LOV for the Supplier Name on the find window • R12 Supplier form masks this ID • Why – Uniformity in securing sensitive data • How – Requires SQL originally used for LOV .

Example 5: Changing LOVs • Taxpayer ID is on LOVs for Supplier Name in Find windows – Supplier form has moved to OA Framework in R12 .

Example 5: Changing LOVs • Create a new record group replacing tax id with end date Must have the same number of fields as existing Record group .

Example 5: Changing LOVs • Assign the new record group to the LOV used for Supplier name Record group created in previous slide .

Example 5: Changing LOVs • Result • Additional steps – Mask the tax id here and on the find window – Replace the tax id with the end date for the supplier number LOV .

GO_BLOCK – change navigation • EXECUTE_TRIGGER – Execute form trigger.Forms Personalization Other Frequently Used Built-ins • • • • Launch SRS Form – runs concurrent request Launch a Function – call another form Launch a URL DO_KEY – DO_KEY(‘NEXT_BLOCK’) will force query execution for find window • Execute a Procedure – use to execute any plsql code • GO_ITEM. not database trigger – Use after setting default values to ensure internal code executes .

Tips • If you disable a tab page. you may need to disable items on the tab page • Exit and re-open the form to see personalization changes • Help Æ Diagnostics Æ Custom Æ Show Custom Events .Help Æ Diagnostics Æ Custom Code Æ Off .shows what events are firing • Use debug messages before and after events • Apply Now button .see the results – Does not always work if dependant on the results of another action • Turn custom code off .Forms Personalization .

go to the personalization for each form and choose Tools Æ Validate All • Tools ÆAdministration will show personalized forms – Press the Find button with the Form Name blank .Forms Personalization .Upgrades • After upgrades.

OA Framework Personalizations
Profile Options – Impacts Definition
• Personalize Self-Service Defn
– Yes to allow ‘Personalize’ button to appear at the top of the page

• FND: Personalization Region Link Enabled
– Yes to display all the regional links above each region – Minimal to display key regional links

• Disable Self-Service Personal
– Yes will disable all personalizations at any level

• FND:OA:Enable Defaults
– Yes will allow defaulting via personalizations

• FND: Diagnostics
– Turns on ‘About this Page’ • Shows existing personalizations

OA Framework Personalizations Profile Options – Impacts Migration
• FND: Personalization Document Root Path
– Required to migrate personalizations – Set this profile option to a tmp directory with open (777) permissions

• FND Xliff Export Root Path
– Where Xliff files are exported for translated personalizations

• Xliff Import Root Path
– Where Xliff files are uploaded from for translated personalizations

FND: Personalization Region Link Enabled = Yes Personalize Self-Service Defn = Yes FND: Diagnostics = Yes .

OA Framework Examples • • • • • Remove button Change prompt Hide/reorder column Set initial value Display a field .

Example 6: Remove Button • What – Remove the Import Spreadsheet button in iExpenses for responsibility utilized for procurement card transactions • Why – Remove buttons that could lead to errors • No cash or out of pocket transactions for procurement cards .

Example 6: Remove Button ` How – Click Personalize Page button Start with Personalize Page .

Example 6: Remove Button • Biggest challenge – finding the item to personalize – Search – Simple View – Complete View – Expand All – Collapse All – Focus – <ctrl>F .

Example 6: Remove Button • Our favorite – Complete View. then <crtl> F Click pencil to edit . Expand All.

click Apply button Options for personalization change based on object type .Example 6: Remove Button • Set rendered = False.

Remove Button .Results Shown is now null since rendered = false Button is gone .

Personalization Levels / Inheritance • Default/original values are shown in the first column. current value and level in last column • Values inherit the definition from the level immediately above unless changed • Personalizations at lower levels override personalizations at higher levels • Order of precedence from highest to lowest: – – – – Function Site Operating Unit Responsibility Default Current / level .

Personalizations tab .How to find Personalizations • About this Page.

Example 7: Change Prompts • What – Change Job to Job Short Name on Contractor Request in iProcurement • Why – Clarify name of field to avoid confusion and to match terminology used in the business .

Example 7: Change Prompts • How – Click the Personalize Page button and find the Job item using <ctrl> F .

Example 7: Change Prompts • Change Prompt at the desired level – in this case. site level .

Example 7: Change Prompts • Result – prompt changed .

Example 8: Hide/Reorder Columns in a Table • What – Hide the Duplicate column to prevent users from duplicating expense reports – Reorder the columns • Why – Hastily duplicating expense reports increased error rates – For the procurement card usage of iExpenses. this functionality did not apply – Reorder columns to match desired data entry flow for faster entry .

Example 8: Hide/Reorder Columns in a Table • How – Click the Personalize Page butteon – Use strategies on next slide to find the Duplicate column .

Example 8: Hide/Reorder Columns in a Table • The button to duplicate is called a Switcher – Switchers allow a user to “switch” to another function • Finding tip – Look for other columns in same table • Report Total • Purpose Click pencil to edit .

Example 8: Hide/Reorder Columns in a Table Set Rendered = false Duplicate column is gone .

Example 8: Hide/Reorder Columns in a Table • Find the table to reorder table columns Click the reorder icon at the table level .

Example 8: Hide/Reorder Columns in a Table • Check personalization level • Use arrows to move fields up or down .

Example 9: Set Initial Values • What – Set the initial value for the Purpose at the Responsibility level as follows: • Expense report responsibilities – Purpose = ‘Internet Expenses’ • Procurement card responsibilities – Purpose = ‘Procurement card’ • Why – Save time • Streamline data entry – Ensure purpose is correct .

Example 9: Set Initial Values • How – Remember to set profile option FND:OA:Enable Defaults to Yes .

Example 9: Set Initial Values
• Set the initial value based on the responsibility
– In this case, the value is set at the responsibility level

Example 10: Add a Field
• What
– Add Suggested Buyer to first page of Contractor Request and include LOV

• Why
– Field not available for checkout for Contractor – Users want to enter all information for request on the same screen

Example 10: Add a Field
• How

Go to about this page to see if buyer field exists

Example 10: Add a Field • Scroll down to find the view object Expand All Click on PoRequisitionLinesVO This is the view object. This name will be needed later .

Example 10: Add a Field • The suggested buyer id is available for this page • A LOV will translate buyer id to buyer name Scroll down more to find available view attributes .

still same form – If LOV not available somewhere in form. choose Diagnostics . must be created in JDeveloper To find the LOV.Example 10: Add a Field • LOV available on checkout page of Requisition – Note: although not same tab.

Example 10: Add a Field • Finding the LOV – Choose Show Log on Screen with Statement (1) log level – Navigate back to the checkout screen and click on the LOV .

Example 10: Add a Field • Scroll down opened LOV to see the diagnostics • LOV path for suggested buyer is shown below This will be needed later .

Click the Personalize Page button • Find the table layout and click create item icon Click create item icon .Example 10: Add a Field • Return to Create Contractor Request.

Example 10: Add a Field • Enter the following values Select Message Lov Input to make this a LOV validated field Enter any unique name LOV Path from slide 78 .

Example 10: Add a Field • Scroll down and continue entering the following Enter Prompt Enter View Attribute from slide 75 Enter View Object from slide 74 .

but the LOV must be mapped – Define 1st map as shown on next page.Example 10: Add a Field • The item is now created. then click this icon again to create 2nd map as shown on next page Click on the mapping icon .

Example 10: Add a Field • LOV Mappings for Buyer Name and Buyer ID .

Example 10: Add a Field • Click the create icon again shown on slide 79 • Create a Form Value to store the Buyer ID .

Example 10: Add a Field • Result – Buyer with associated LOV .

Other Items That Can Be Added • • • • • • DFFs (if in query) Buttons Text and Images Messages (Data Fields) of many styles Tips Raw Text .

whether they are protected or non protected.Customizations or Personalizations. allow you to fundamentally change the behavior of the application. Use with caution! TEST! TEST! TEST! TEST! TEST! . This could interfere with intended functionality.


lct <filename.ldt> FND_FORM_CUSTOM_RULES • Upload – FNDLOAD <userid>/<password> 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct <filename.lct <filename.Migration to Other Instances Forms Personalizations • Download for a specific form: – FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.ldt> FND_FORM_CUSTOM_RULES form_name=<form name> • Download all personalizations – FNDLOAD <userid>/<password> 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.ldt> .

Migration to Other Instances OA Framework Personalizations • Migrate OA Framework Personalizations from the Functional Administrator Responsibility – Export to directory defined in FND: Personalization Document Root Path – FTP to target instance – Import from Document Root Path directory .

1.References • Oracle Application Framework Personalization Guide • Oracle Applications User Interface Standards for Forms-Based Products • Oracle Applications Developer’s Guide • Oracle Applications System Administrator’s Guide • Oracle Applications User Guide • Oracle Applications Framework Developer’s Guide Release 12.1 – Look for Personalization hints .3 – MOS ID 1107973.

1.1 – Release 12 to 12.Oracle Application Framework Profile Options – 275876.1 – Release 11.2 – 1107970.1.1.3 • See Personalization and Defaulting sections • 279034.10 RUP5 to RUP7 – 395445.1 – Release 12.1 – Forms Personalization .1 .5.1 – Release 12.1 – 975459.My Oracle Support Documents • 1315510.

Sign up to vote on this title
UsefulNot useful