Form Personalization
Using Custom.pll: This method can be used to implement custom validation which cannot be
done using above method.
Value
Level Enabled
Utilities:Diagnostics
Yes / No
Yes / No
Profile Name
Description
Utilities:Diagnostics
The profile Utilities: Diagnostics is set as No it will ask for Database Password to open
personalization form.
Rules
Conditions
Context
Actions
Rules:
Seq
Description
Level
Enabled
Note** Seq number from 1 to 100 are re-usable. We cannot give sequence number more than 100.
Conditions:
It decides when the Rule should be executed based on the below factors.
o
o
o
o
Trigger Event:
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD
MENU1 to MENU15
SPECIAL1 to SPECIAL45
Navigational Triggers:
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
Trigger
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD
Usage
Once When Form Starts up.
Each time the cursor moves to New
Block.
Each time the cursor moves to a New
Record.
Each time the cursor moves to a New
Item.
Each time the current records have any
change that needs to be validated.
Trigger
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD
Trigger Object
N/A
Block Name
Block Name
Block Name. Item
Name
Block Name
Special Triggers:
Two types of Special Triggers available,
Menu1 Menu15
Special1 Special45 (Reserved for Oracle Development Team)
Note**
Never user Special 1 Special 45 Menus for developing custom menus, use only Menu1 Menu15
for custom menu. We can use the existing Special Menus provided by Oracle but cannot create new
one.
Special Triggers are sub classified as,
Tool Menu
Report Menu
Action Menu
8
Tool Menu:
Menu1 Menu15
Special 1 Special 15
Report Menu:
Special 16 Special 30
Action Menu:
Special 31 Special 45
Conditions (Cont.):
Condition Field:
SQL Functions
Logical Operators [AND, OR etc.]
References to Bind Variables [:Block.Item, :System, :Global]
Server Side functions without OUT Parameter.
Processing Mode:
The below modes are available to process the profile option. This decides whether the
personalization rule should be applied in Query mode or not.
When two rules have same trigger event and the actions that change the same property, the rule
with higher sequence number will perform last and this validation is final.
Its not a Hierarchy. It is similar to profile options.
Its the scope to define who should be target of personalization.
This is a critical path where we enable users to access/restrict the form.
Types of Actions:
Property
Message
Builtin
Menu
10
Allows selecting specific property of the object & setting up its value.
Object Type:
All the Object Types available in Form Builder will be listed here.
Target Object:
Based on the Object Type, the valid Objects available of that type will be listed. Target Object is
dependable LOV to Object Type.
12
Action Type-Message:
There are four message types available like Show, Hint, Error, Debug, and Warn.
14
16
To move the cursor to any items inside any block this builtin is used.
To navigate to any block inside the form this builtin in used. By default it will point to the first
item of the block.
18
If the form Execute triggers completed successfully it will result in TRUE, if any validation
fails then this trigger will be raised.
When the Form screen is not synchronized with client and middle tier at form startup this helps
to synchronize the same.
The CUSTOM library is an Oracle Forms Developer PL/SQL library. It allows you to take full
advantage of all the capabilities of Oracle Forms Developer, and integrate your code directly
with Oracle E-Business Suite without making changes to Oracle E-Business Suite code.
The as-shipped CUSTOM library is located in the AU_TOP/resource directory.
If we want to personalize the LOV (i.e. Modifying list of value) by creating a new Record
Group this type is used.
If we want to set any profile value this built-in type can be used.
20
MENU 1 MENU 15
SPECIAL 1 SPECIAL 45
Menu Entry:
The Menu, we want to active in the form.
If we select a Menu which is already in use by Base form then form personalization will
override that menu.
When the use selects the entry it will fire MENU# trigger.
Menu Label:
User Defined Label name given to the menu.
Check Box: Render Line before Menu
It will add a separator line to distinguish with existing menu entries.
Icon Name:
An optional Icon name can be added to the toolbar to archive the same functionality as Special Menu.
Enabled in Block(s):
Specify the block to which the menu entry to be visible.
22
24
button,
Global Variables:
Local Variables:
26
Turn-OFF:
Navigate:
When the Form is run, similar note will be displayed when an event occurs.
Description
The Rules for the form customizations. A rule must have 1 or
more FND_FORM_CUSTOM_SCOPES and a rule may have 1 or
more FND_FORM_CUSTOM_ACTIONS .
FND_FORM_CUSTOM_ACTIONS
Navigation:
28
Form Personalization
(Exercises)
Personalization Steps:
Before Personalizing get the Item/Block Information.
Navigate: Help Diagnostics Properties Item
30
Seq
Description
Level
20
Action Type : Property
Form Level
Condition
Details
Comments
The change should be reflected when the form is
opened. So choose this trigger event.
N/A
Trigger Event
Trigger Object
Condition
Processing
Mode
WHEN-NEW-FORM-INSTANCE
Both
Context
Level
Value
Details
User
D_USER1
Comments
Change will be reflected only for this user.
Valid user name.
(Optional)
Note** Start practicing by setting up the context level as Site. In my examples I have used user
level.
Action Information:
Actions
Seq
Type
Description
Language
Object Type
Target object
Property Name
Value
Value
10
Property
Change Label name
All
Item
USER.USER_NAME
PROMPT_TEXT
Oracle ID
32
34
Actions:
Result:
36
Actions:
Result:
38
Actions:
Result:
40
Actions:
Result:
Actions:
42
44
Actions:
Result:
Close the form & Re-open then query for the user.
46
Show:
Error:
48
Condition:
Actions:
50
Result:
Query for the test Item.
Rule:
Condition:
52
Result:
Block: USER
Block: USER_RESP
Condition:
54
Result:
In HTML we can send the details of page information from one page to other by using the below
methods.
Let consider GET method for this example. A simple web page with First Name & Last name.
Now Im giving the user details in the HTML Page and submitting it to other HTML page.
HTML PAGE 1:
HTML PAGE 2:
56
Note** the above given URL is simple scenario to make you understand. Try with a valid one.
Condition:
Actions:
Action 1:
58
Action Summary: So we have defined two actions, which will be executed sequentially.
Result:
Now Open User Form.
60
62
Function Details:
Condition:
Actions:
64
Condition:
Actions:
66
Condition:
Actions:
D_FORM
VALIDATE_USER
It validates the user details & stores the log information in a file.
PS: Please refer the ConcPG_Executable.SQL File provided along with the material.
Now create an Executable.
Navigation: System Administrator Concurrent Program Executable
68
Parameter Information:
Condition:
Actions:
Note** No need to give parameter information, since its opening SRS we need to give the
required details in that form.
70
72
Global Variables
Global Variables in Forms are variables which are accessible through out the application [i.e. in
the current active session] until we reset or delete it.
The values of the Global variables are preserved until active form session.
The data type of Global Variables is always CHAR. If we initializing or assigning a Number,
Date data type values we need to use TO_CHAR function to assign the same. Implicit
Conversion happens but sometimes it fails.
We can store up to 4000 bytes of character data in Oracle 10g, whereas in Forms 6i it was
limited up to 255 bytes of character data.
We can define/declare Global variables in any of the PL/SQL blocks which we use in Form
development (or) during form personalization.
: GLOBAL.Variable_Name
How to Remove (or) Erase Global Variables?
By using built-in function
ERASE( ).
Example,
ERASE (GLOBAL.Variable_name);
What is Zoom Functionality?
Directly going from one form to another (i.e. calling one from another form) on button click
event.
Part-3: Creating action even for the menu i.e. when clicked it should launch SRS form
1) First we must create Global variable & initialize the same.
2) Use the same built-in and Message and no changes. Only part we need to change is the
sequence of the action.
Action 2:
74
Action 3:
Default value:
76
Click Ok.
Result:
78
Actions:
Action1:
In Form Arguments:
= Declare
Begin
End
Note: It should start with = (equal-to), then PL/SQL blocks should be within Single Quotes ( ).
Also after keyword End there should not be any semi colon.
Now lets see how to pass parameters to procedure.
In Form Arguments:
We are giving the argument within single quote (
arg_1)
As we know we already start & end with single quote for PL/SQL block in form arguments.
If we give additional single quote in between the code then the syntax becomes incomplete.
80
Q1) How to give additional Single Quotes ( ) in arguments for strings parameters?
This is similar to Excel functionality in CONCATENATE function for joining two strings with a
comma.
In similar way, we need to give additional single quote within 2 Single Quotes before and after.
In Form Argument,
||
The Parameter should always prefix and suffixed with double pipes ( ).
For Example,
| | para_1 | |
Final String by combining Q1 & Q2,
| | para_1 | |
Form Personalization by Dinesh Kumar S
='declare
begin
D_FORM2.VALIDATE_USER ('''||${item.user.user_name.database_value}||''');
end'
Action2:
82
Item Property:
84
FNDSCRSP
/11.5/fnd/11.5.0/forms/US/FNDSCRSP.fmx
/11.5/au/11.5.0/forms/US
86
Open the record Group property & check for the SQL statement.
Query identified.
88
Actions:
Action 1:
90
Result:
Oracle Extensions
(Custom.pll)
92
What is Custom.pll?
Using TEMPLATE.fmb, in these template files form level triggers are defined and in-turn in
calls Custom.pll.
HRMS module has its own template file HRTEMPLT.fmd. Also, the triggers trapped in
Custom.pll for HRMS Module will be different than other modules.
Location
/
AU/11.5.0/forms/US
/
/AU/11.5.0/Resource
Application
.Pll File
APPCORE.pll
CUSTOM.pll
FNDSQF.pll
VERT.pll
APPFLDR.pll
GLOBE.pll
JA.pll
JE.pll
JL.pll
TEMPLATE.fmb
APPCORE2.pll
GHR.pll
HRKPI.pll
PQH_GEN.pll
FV.pll
GMS.pll
PSA.pll
PSB.pll
IGILUTIL.pll
IGILUTIl2.pll
OPM.pll
Description
Standard Application Toolbars
For Form Customization
Related to AOL Objects like KFF, CP, Messages etc.
Specify Inustry Features
Packages related to Folder Blocks
To enable Global Regional Features
Asia Pacific Region
Europe, Middke East, Africa Region
Latin America Region
Used to call form triggers.
Similar to APPCORE.pll used to attach it to custom.pll.
Global Human Resources Libraries
Human Resource Knowledge Provider libraries
Public Sector human Resource
Financial libraries
Encumbrances
Public Sector Application.
Public Sector budgeting
Internation Public Sector
Internation Public Sector
Processing Mfg.
Impt Libraries
APPCORE.pll
APPCORE2.pll
Usage/Description
Contains PL/SQL Packages controlling Form behavior like Menu,
Toolbar etc. and also Runtime behavior like enabling, disabling
fields.
FNDSQF.pll
GLOBE.pll
JE.pll
JL.pll
JA.pll
GHR.pll
94
Collection of special libraries and trigger events, which modify the behavior of the form.
It is located @ $AU_TOP/forms/US.
Components of TEMPLATE.fmb
Components
Object Group
Reference
Libraries
Triggers
Data Block
Description
The Template refers to pre-defined platform independent standard
object groups in APPSTAND form.
We can attach any .pll libraries to template.
it contains 22 Form level triggers which included Navigational, Key,
Pre form, Post form triggers.
Some sample data block objects [Detail Block & Block Name] are
attached.
96
System Administrator
Document Sequences
FNDSNDSQ
oracle\visappl\fnd\11.5.0\forms\US\FNDSNDSQ.fmx
98
100
102
104