You are on page 1of 53

Forms Personalization –

New for 11.5.10

Tim Sharpe
Susan Behn
Solution Beacon, LLC Ohio Valley OAUG
October 21, 2005
Cincinnati, Ohio

www.solutionbeacon.com

© 2005 Solution Beacon, LLC. All Rights Reserved.


Introduction

nSolution Beacon, LLC


u Tim Sharpe
u Susan Behn

2
© 2005 Solution Beacon, LLC. All Rights Reserved.
Agenda
n Definitions/Overview

u Extensions
u Customizations
n CUSTOM.pll

n Forms Personalization – demo


n Additional Resources

3
© 2005 Solution Beacon, LLC. All Rights Reserved.
Overview – Extensions
n Extensionsare defined as additional code or objects
added to the E-Business Suite
uA new form created from TEMPLATE.FMB

uNew reports

uInterfaces

uOther new objects

n Forms
6i extensions paper/presentation
Developing Form Extensions for E-Business Suite
Customers
www.solutionbeacon.com/industry_presentations.htm

4
© 2005 Solution Beacon, LLC. All Rights Reserved.
Overview – Customizations
n Customizations are changes to forms, reports or any
other objects delivered with the E-Business Suite
n Methods for customizing applications
u CUSTOM.pll – generally protected during patching

u Forms Personalization – generally protected during

patching
u Direct modification of forms, reports, packages, or

other objects – Not Supported or protected during


patching and not recommended
n New terminology for protected customizations is
“Personalization”

5
© 2005 Solution Beacon, LLC. All Rights Reserved.
Overview – Customizations
WARNING

Customizations, whether they are protected or non


protected, allow you to fundamentally change the
behavior of the application. This could interfere with
intended functionality.

Use with caution!

TEST! TEST! TEST! TEST! TEST!

6
© 2005 Solution Beacon, LLC. All Rights Reserved.
Overview – Customizations

…THEN TEST IT AGAIN!

7
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll
n Libraryavailable in $AU_TOP/resource is modified to
provide customizations to Oracle Application forms
n Use forms builder 6i to modify package body
n Examples
uHide fields, tabs

uMake fields required

uRestrict update or insert

uChange prompts, tab labels

uAlter LOVs

uCreate zooms and tool bar menu selections

uValidate and format

uAlmost anything you can do in PL/SQL

n Reference: Application Developer Guide – Chapter 28

8
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology

n Challenges
uTraditional implementation of customizations in
CUSTOM.pll only allows one developer at a time to
make modifications
uSize limitations can be an issue

uKeeping code modular is difficult

uTesting requirements can be significant for

subsequent modifications to CUSTOM.pll

9
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

n Create
a separate library (.pll) for each form to be
customized
Package Spec

PACKAGE XXXXXAPXVDMVX IS
Procedure event(event_name VARCHAR2);
END;

Package Body

PACKAGE BODY XXXXXAPXVDMVX


IS
PROCEDURE event (event_name VARCHAR2) IS
BEGIN
IF event_name = ‘WHEN-NEW-FORM-INSTANCE’ THEN
\*Make the vendor type field required*\
APP_ITEM_PROPERTY2.SET_PROPERTY(‘VENDOR_TYPE_DISP’,REQUIRED,PROPERTY_TRUE);
END IF;
END event;
END XXXXXAPXVDMVX;

10
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

n Attach your new library to CUSTOM.pll

Navigator view of
CUSTOM.pll

Your new library

11
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

n Add a call to your new library in CUSTOM.pll

Package Body of CUSTOM.pll

Form_name varchar2(30) := name_in(‘system.current_form’);


Begin
If form_name = ‘APXVDMVD’ THEN
xxxxxapxvdmvd.event(event_name);
Elsif form_name = ‘OEXOEORD’ THEN
xxxxxoexoeord.event(event_name);
end if;
end event;

12
© 2005 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – More Examples

\*Force Upper Case for Supplier Name*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.VENDOR_NAME_MIR',CASE_RESTRICTION,UPP
ERCASE);

\* Hide the tax payer id*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.NUM_1099_MIR',DISPLAYED,PROPERTY_OFF)

\*Change the prompt*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.
END_DATE_ACTIVE_MIR',PROMPT_TEXT,’Inactive Date’)

13
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization
n Forms Personalizations declaratively alter the behavior
of Forms
n User must understand Forms and PL/SQL
n Most changes traditionally done using CUSTOM.pll can
be accomplished using Forms Personalization
uMust use CUSTOM.pll to alter LOVs

uCUSTOM.pll allows all PL/SQL capabilities, builtins

and SQL.
n Forms Personalizations are effective immediately - no
compiling
n Forms Personalizations fire prior to CUSTOM.pll for the
same event

14
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization
Profile Options
n Today’s Demo environment – 11.5.10 with CU1 patch
applied
(Forms Personalization in CU1 changed significantly
with CU1 patch)
n Set Profile Option Hide Diagnostics menu entry to No
Yes will hide the diagnostics menu.
n Profile Option Utilities: Diagnostics – if set to No, apps
password is required

15
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Access
n Accessthe form or function needing personalization
n Help à Diagnostics à Custom Code à Personalize

16
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization

17
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Rules
n Personalization Rule Header
uSequence
tRules run in sequence

tSequence numbers (1-100) are not unique

uDescription – free form entry

uLevel – Form or Function (CU1 patch)

uDebug mode

tOff

tStep-by-Step – shows events impacted by rule

(CU1 patch)
tShow Debug Messages – shows messages with

type = debug
uEnabled – checked

18
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Trigger Events

n Use generic trigger events available in most forms

n Use specific events unique to the form (with caution)

n Find
events using Help àDiagnostics àCustom Code
àShow Custom Events

n Trigger Events are not validated from the LOV

19
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Trigger Events – Generic to almost all forms

n WHEN-NEW-FORM-INSTANCE
uSecurity rules
uNavigation rules

uVisual attributes

uAvoid message rules at this level

n WHEN-NEW-BLOCK-INSTANCE
uSame as WHEN-NEW-FORM-INSTANCE

uMessage rules

n WHEN-NEW-RECORD-INSTANCE
uDefault values

20
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Trigger Events – Generic to almost all forms
n WHEN-NEW-ITEM-INSTANCE
uMessage rules

uDefault values dependent on entry of another item

n WHEN-VALIDATE-RECORD
uPopulate hidden fields

uAdditional validations

n SPECIALn
uPopulate tools menu (MENU1-15) (CU1 patch)

uPopulate tools menu (SPECIAL 1-15)

uPopulate reports menu (SPECIAL 16-30)

uPopulate actions menu (SPECIAL 31-45)

21
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Trigger Events – Generic to almost all forms

n ZOOM – recommend using MENUn or SPECIALn rather


than zoom
n KEY-Fn

22
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Trigger Object

n Required if LOV is available


n Requires Block Name
uWHEN-NEW-BLOCK-INSTANCE

uWHEN-NEW-RECORD-INSTANCE

uWHEN-VALIDATE-RECORD

n Requires Block.field name


uWHEN-NEW-ITEM-INSTANCE

n May be required for other events specific to form

23
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Conditions
n Optional SQL code fragment to limit scope of rule
n References bind variables (:block.field)
n Examples
uUse to limit scope based on profile option values

uGL Journal Entry – Remind users to change the

period name the first 10 days of the fiscal year

24
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Conditions Tab
Context – who does this rule apply to?
n Multiple scope rows are allowed
n Level at which the rule will apply Tip: For initial
uSite development,
uResponsibility set scope to
uUser – Use this for testing rules
your user id
uIndustry (For future use)

n Value – choose from LOV

25
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions
n Sequence
u Rules will run in sequence
uSequence number not unique

n Type
uProperty

uMessage

uBuilt-in

uMenu

n Description
n Language – use when changing prompts for a specific
language
n Enabled – checked

26
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions
n Property Type Fields
uObject Type

tItem , Window, Block, Tab Page, Parameter

tRadio Button, View, :GLOBAL Variable, Canvas

tLOV, Local Variable (CU1 patch)

uTarget Object – LOV will include valid values for

most types
uProperty Name – LOV available

uValue

n Use Select by Text button to select the target object


by prompt name
n Use Get Value button to get the current value

27
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Strings
n Rulesfor fields that accept strings
uStart with =

tString evaluated at run time

tCan use bind variables, operators, etc

tCan use server side functions without out

variables
tPrior to CU1 patch, SQL statements starting with

=Select require “A” alias (=Select meaning A


from fnd_lookups where…_
uDoes not start with =

tString is taken as a literal exactly as you type it

28
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions Example
Force Upper Case for the Vendor Name
n Type = Property
n Object Type = Item
n Target Object = VNDR.VENDOR_NAME_MIR
n Property Name = CASE_RESTRICTION
n Value = UPPERCASE

29
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions Example
Change the window title
n Type = Property
n Object Type = Window
n Target Object = VENDOR
n Property Name = TITLE
n Value = Suppliers (Oracle Open World)

30
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Actions Example
Prevent Insert in the Bank Accounts Tab
(require users to do this in Bank setup)
n Type = Property
n Object Type = Block
n Target Object = VNDR_USES
n Property Name = INSERT_ALLOWED
n Value = False

31
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Variables
Global Variables
n Used to pass values between forms
n Max length is 255 bytes
n Prepend the name of the variable with XX

Local variables
n Used when you need to refer to a variable multiple
times
n Specific to local form
n Max length is 4000 bytes
n Prepend the name of the variable with XX

32
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions Example
Set a global variable to the value of the email address in
FND_USERS and display this value in a message

n Type = Property
n Object Type = :GLOBAL Variable
n Target Object = XX_USER_EMAIL
n Property Name = VALUE
n Value = =SELECT Nvl(Email_Address,'NO_EMAIL')
FROM fnd_user
WHERE user_id = fnd_global.user_id

33
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions Example
n :GLOBAL Variable

n Message

34
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Messages
n Message Type Fields
uMessage Type

tShow – Informational Message

tHint – Appear on status bar

tError – Requires user response

tDebug – Only displays if debug mode is set to

Show Debug Messages


tWarn – Informational message with caution

symbol
uMessage Text

n Do not use messages for WHEN-NEW-FORM events

35
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Message Examples
n Debug message

n Training reminders

36
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Menu Example
Create a menu entry to submit payment history report
n Type = Menu (Prior to CU1 patch, Type = Special)
n Menu Entry = MENU1 – MENU15 or SPECIAL1-45
n Menu Label = Supplier Payment History
n Icon = null
n Enabled in Blocks = VNDR, SITE
uSeparate by comma

uUse Add Block Button to choose blocks

n Note – this action only displays the menu entry.

37
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Activate the menu entry to execute the concurrent
request Supplier Payment History
n Trigger Event = MENU1

38
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Activate the menu entry to run Supplier Payment
History Report
n Type = Builtin
n Builtin Type = Launch SRS Form (CU1 patch)
n Program Name = Supplier Payment History

n Note: Parameters are not automatically passed

39
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Supplier Payment History Report – Passing Parameters
n Create a new rule with a sequence before menu
execute
n Trigger event = MENUn or SPECIALn

n Set :GLOBAL variable to value of parameters for report

40
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins
Supplier Payment History Report – Passing Parameters
n Create a new rule for the Requests: Submit form

Different syntax
required

41
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Open a url
n Trigger Event = WHEN-NEW-FORM-INSTANCE
n Establish menu entry

n Trigger Event = MENU2

CU1 Patch
42
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Launch a function (CU1 patch) to view payment history
form
n Establish the Menu entry
uTrigger Event = WHEN-NEW-FORM-INSTANCE

uAction Type = Menu

uMENU3 = Payment History

43
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Launch a function to view payment history form
n Trigger Event = MENU3
n Set the :GLOBAL Variable
n Launch a Function

44
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Launch a function – target function rules
n Populate query find variable if the global variable is
not null
uTrigger Event = WHEN-NEW-ITEM-INSTANCE

uTrigger Object = use the first item on the form

45
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Launch a function – target function rules
n Populate query find variable if the global variable is
not null
uTrigger Event = WHEN-NEW-BLOCK-INSTANCE

uAction Type = Property

CU1 Patch
46
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins Example
Launch a function – target function rules
n Execute the DO_KEY(‘NEXT_BLOCK’) built in to force
query execution
uTrigger Event = WHEN-NEW-BLOCK-INSTANCE

uAction Type = Builtin

47
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Built-ins
Other Builtins

n GO_BLOCK

n GO_ITEM

n RAISE_FORM_TRIGGER_FAILURE

n FORMS_DDL

n EXECUTE_TRIGGER (CU1 patch)

n SYNCHRONIZE (CU1 patch)


48
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Tips
n If you disable a tab page, make sure the user cannot
still navigate to the items on the tab page
n You may need to exit and re-open the form to see
personalization changes
n Use Help à Diagnostics à Custom à Show Custom
Events to determine what events are firing
n See MetaLink note 279034.1 for special rules for forms
with folders
n After upgrades, go to the personalization for each
form and choose Tools à Validate All
n Use debug message before and after events
n Initialize global variables to null in the navigator form
using the WHEN-FORM-NAVIGATE trigger event

49
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Tips
n Use the Validate button to validate strings
uConditions will return true, false or error

uValues will return the resulting string or an error

n Use the Apply Now button to apply the action now


and see the results (does not always work if
dependant on the results of another action)
n Use the Insert ‘Get’ Expression button to get any
property of an item (CU1 patch)
n Turn custom code off to confirm any form problem is
due to custom code Help à Diagnostics à Custom
Code à Off
n Set global values to null in the navigator form using
the WHEN-FORM-NAVIGATE trigger
50
© 2005 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Moving to another instance
n Download for a specific form:
FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES form_name=<form
name>
n Download all personalizations
FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES

n Upload
FNDLOAD <userid>/<password> 0 Y UPLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
51
© 2005 Solution Beacon, LLC. All Rights Reserved.
Other Sources of Information
n Oracle
Applications User Interface Standards for
Forms-Based Products

n Oracle Applications Developer’s Guide

n Oracle Applications System Administrator’s Guide

n Oracle Applications User Guide

n MetaLink note 279034.1 – Forms Personalization

n www.solutionbeacon.com – newsletters, free tools,


white papers and presentations, Vision access
52
© 2005 Solution Beacon, LLC. All Rights Reserved.
Thank you!

If you have any questions or comments please contact:

Tim Sharp tsharpe@solutionbeacon.com


Susan Behn sbehn@solutionbeacon.com

For free Release 11i Tools and helpful information,


please visit our website at:

www.solutionbeacon.com

Real Solutions for the Real World.


53
© 2005 Solution Beacon, LLC. All Rights Reserved.

You might also like