Form Personalization
Form Personalization
Form Personalization
customized.
Step 2: Navigate: Help Diagnostics Custom Code Personalize
Restrict Form Personalization Access:
To restrict the access the following below profile options should be set.
Se Level
q
1 Form Personalization
2 Custom.pll
Rules
Conditions
Context
Actions
Rules:
It is the Header Details of the Rule.
You can enable / Disable / Delete a rule.
Once Rules are defined, when the target function is run then the
Rules are automatically applied as events occur within that form.
Seq Sequence Order to execute the rule when a
form is opened. Description User description.
Level Either Form Level (or) Form
Function Level. Enabled Indicates
whether the rule is active or not.
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.
Trigger Event:
o WHEN-NEW-FORM-INSTANCE
o WHEN-NEW-BLOCK-INSTANCE
o WHEN-NEW-RECORD-INSTANCE
o WHEN-NEW-ITEM-INSTANCE
o WHEN-VALIDATE-RECORD
o MENU1 to MENU15
o SPECIAL1 to
SPECIAL45 Navigational
Triggers:
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
Special Triggers:
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.
Tool Menu
Report Menu
Action Menu
45
Conditions (Cont.):
Condition Field:
o SQL Functions
o Logical Operators [AND, OR etc.]
o References to Bind Variables [:Block.Item, :System, :Global]
o 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.
Context:
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.
Actions:
Property
Message
Builtin
Menu
Action Type-Property:
Allows selecting specific property of the object & setting up its value.
This will list out all the items and its type. Such that the selected item details will
be populate in target object field.
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.
Action Type-Message:
This action type is used to display custom message during runtime.
There are four message types available like Show, Hint, Error, Debug, and
Warn.
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.
SQL DDL Statements can be executed using this builtin type.
It allows execution of trigger within a form.
When the Form screen is not synchronized with client and middle tier at
form startup this helps to synchronize the same.
If we want to set any profile value this built-in type can be used.
Action Type Menu:
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.
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.
Many blocks can be added by separating it with a comma (,).
enabled.
Now we will check for Master Item Form.
How Strings are
If we are given a string without = operator the exact value of the string will be
used at runtime.
If we are giving a string with = operator that means we are going to used
complex functions like SQL Operators and in-built functions like NVL, DCODE
etc.
The best way to use bind variable in condition block is by clicking button Insert
GET Expression
Below valid object Types are available to insert Get Expression.
When click the
button,
Global Variables:
Used to pass values between forms.
Max. length is 255
Local Variables:
When you need to refer a variable multiple types.
Specific to local form.
Max. length 4000 bytes.
Syntax:
Turn-ON:
Navigate: Help Diagnostics Custom Code Show Custom Events
Turn-OFF:
Navigate: Help Diagnostics Custom Code
be displayed.
When the Form is run, similar note will be displayed when an event occurs.
Form Personalization Tables:
Below are the tables which stores custom information at form level.
Property 1: PROMPT_TEXT
Personalization Steps:
Actions Value
Seq 10
Type Property
Description Change Label name
Language All
Log in as D_USER1.
Property 2: REQUIRED
Actions:
Result:
Property 3: ENABLED
Actions:
Result:
Property 4: DISPLAYED
from User.
Actions:
Result:
Property 5: TOOLTIP_TEXT
Description: Enable tool tip for the responsibility. When the responsibility is
selected the user name will be displayed as tool tip.
Actions:
Result:
Action Type: Message
Condition:
Actions:
Result:
Description: Notify user when he/she trying to access IN-ACTIVE user details.
Condition:
Actions:
Result:
Close the form & Re-open then query for the user.
Difference between
Show:
Error:
Hint:
Description: Changing the Special Menu Label Name. We will be using Item
Master Form.
Actions:
Result:
Rule:
Condition:
Actions:
Result:
Block:
USER
Block: USER_RESP
Action Type: Built-in
Description: When the SPECIAL Menu is clicked the URL will be launched. We
will be using the special menu created in above exercise.
Block: USER
Rules:
Condition:
Actions:
Result:
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:
Generated Web URL as below;
http://www.w3schools.com/tags/demo_form_method.asp?
fname=Dinesh&lname=Kumar
Now we need to pass the form item value in the same manner. Consider we are
sending user Oracle Id information via URL.
http://www.w3schools.com/tags/demo_form_method.asp?
fname=:USER.USER_NAME& lname=
:USER.USER_STATUS
Note** the above given URL is simple scenario to make you understand. Try with
a valid one.
Built-in Type: DO_KEY
Condition:
Action
s:
Action
1:
Action 2:
Result:
in below form.
We are going to find the user form function name from the System
Administrator responsibility root menu.
Navigation: System Administrator Application Menus
Menu Details:
Function Details:
Now we will see how to implement our requirement.
Condition:
Actions:
Part-2: Creating an action event when special menu is created.
Condition:
Actions:
Result:
Condition:
Actions:
Part-2: Creating a Concurrent Program
Parameter Information:
Note** Dont forget to add this Concurrent program in REQUEST GROUP.Part-3:
Creating action even for the menu i.e. when clicked it should launch SRS form
Rule:
Condition:
Actions:
Note** No need to give parameter information, since its opening
SRS we need to give the required details in that form.
Result:
Request Successfully Submitted.
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.
: GLOBAL.Variable_Name
Directly going from one form to another (i.e. calling one from another
form) on button click event.
1) Part-3: Creating action even for the menu i.e. when clicked it should
launch SRS form
Part-3: Creating action even for the menu i.e. when clicked it should launch SRS
form
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:
Action 3:
Default value:
Select :GLOBAL.G_USR_NAME from dualWhen
saved, the following message is triggered.
Click Ok.
Result:
Now SRS window will automatically open by populating the parameters
details automatically.
successfully.
Built-in Type: Execute a Procedure
PS: Please refer the Execute_Proc_Block.SQL File provided along with the
material.
changes.
Condition:
Actions:
Action1:
Note: How to give argument for built-in type Execute a Procedure?
In Form Arguments:
=Declare
Begi
n
End
In Form Arguments:
In similar way, we need to give additional single quote within 2 Single Quotes
before and after.
In Form Argument,
| | para_1 | |
| | para_1 | |
Full Argument Code:
='decl
are
begin
D_FORM2.VALIDATE_USER ('''||$
{item.user.user_name.database_value}||'''); end'
Action2:
Result:
Description: We will be restricting the List of values for Data Group Name
field.
Item Property:
Now we need to find the Original Record Group Query
used for field DATA_GROUP_APPLICATION_NAME.
FNDSCRSP
.fmx file Path: /11.5/fnd/11.5.0/forms/US/FNDSCRSP.fmx
.fmb file Path:
/11.5/au/11.5.0/for
Open the record Group property & check for the SQL statement.
Query identified.
New SQL Query:
Rule:
Condition:
Action
s:
Action
1:
Action 2:
Result:
Oracle Extensions
(Custom.pll)
What are different Methods to handle Form Level Customization /
Personalization?
There are two methods;
i. Form Personalization
ii. Modifying Custom.pll
What is 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.
File Location
/ AU/11.5.0/forms/US
/
TEMPLATE.fmb
.PLL Files /AU/11.5.0/Resource
What are different libraries available?
Librari
es .Pll File Description
Core APPCORE.pll Standard Application Toolbars
CUSTOM.pll For Form Customization
FNDSQF.pll Related to AOL Objects like KFF, CP, Messages
VERT.pll Specify Inustry Features
APPFLDR.pll Packages related to Folder Blocks
GLOBE.pll To enable Global Regional Features
JA.pll Asia Pacific Region
JE.pll Europe, Middke East, Africa Region
JL.pll Latin America Region
Applicatio TEMPLATE.f Used to call form triggers.
APPCORE2.pl Similar to APPCORE.pll used to attach it to
GHR.pll Global Human Resources Libraries
HRKPI.pll Human Resource Knowledge Provider libraries
PQH_GEN.pll Public Sector human Resource
FV.pll Financial libraries
GMS.pll Encumbrances
PSA.pll Public Sector Application.
PSB.pll Public Sector budgeting
IGILUTIL.pll Internation Public Sector
IGILUTIl2.pll Internation Public Sector
OPM.pll Processing Mfg.
It is located @ $AU_TOP/forms/US.
Components of TEMPLATE.fmb
Trigger Events:
Compone Description
nts
Object The Template refers to pre-defined platform
Group independent standard object groups in APPSTAND
Libraries We can attach any .pll libraries to template.
Triggers it contains 22 Form level triggers which included
Navigational, Key, Pre form, Post form triggers.
Data Some sample data block objects [Detail Block &
Block Block Name] are attached.
Steps involved in modifying CUSTOM.pll
Step 1: Open the form Builder and Download below library files and attach the
libraries.
APPCORE.pll
APPDAYPK.pll
FNDSQF.pll
For R12:
FRMCMP_BATCH MODULE=CUSTOM.PLL
USERID=<USERID>/<PWD>@<INSTANCE> MODULE_TYPE=LIBRARY
COMPILE_ALL=YES
For 11i:
CUSTOM.pll