Professional Documents
Culture Documents
Oracle Form Personalization by Dinesh Kumar S PDF
Oracle Form Personalization by Dinesh Kumar S PDF
Form Personalization
2
Form Personalization – by Dinesh Kumar S
Using Custom.pll: This method can be used to implement custom validation which cannot be
done using above method.
To restrict the access the following below profile options should be set.
The profile “Utilities: Diagnostics” is set as “No” it will ask for Database Password to open
personalization form.
4
Form Personalization – by Dinesh Kumar S
Se
q Level
1 Form Personalization
2 Custom.pll
• Rules
• Conditions
• Context
• Actions
Rules:
Note** Seq number from 1 to 100 are re-usable. We cannot give sequence number more than 100.
6
Form Personalization – by Dinesh Kumar S
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 menu’s, use only Menu1 – Menu15
for custom menu. We can use the existing Special Menu’s provided by Oracle but cannot create new
one.
• Tool Menu
• Report Menu
• Action Menu
8
Form Personalization – by Dinesh Kumar S
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.
It’s not a Hierarchy. It is similar to profile options.
It’s 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:
This is used to set the property of the objects [Window, Block and Item].
Sequence Order in which actions will be performed within a rule.
Type Type of action that is executed.
Types of Actions:
Property
Message
Builtin
Menu
10
Form Personalization – by Dinesh Kumar S
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.
12
Form Personalization – by Dinesh Kumar S
Action Type-Message:
• There are four message types available like Show, Hint, Error, Debug, and Warn.
14
Form Personalization – by Dinesh Kumar S
16
Form Personalization – by Dinesh Kumar S
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
Form Personalization – by Dinesh Kumar S
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
Form Personalization – by Dinesh Kumar S
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 ( ).
22
Form Personalization – by Dinesh Kumar S
24
Form Personalization – by Dinesh Kumar S
Note** it is similar to Excel formula functionality, if we want to access any in built functions like
concatenate, sum, vlookup etc. we need to use = before the formula.
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…”
button,
Global Variables:
Local Variables:
26
Form Personalization – by Dinesh Kumar S
Syntax:
Turn-ON:
Navigate: Help Diagnostics Custom Code Show Custom Events
Turn-OFF:
Navigate: Help Diagnostics Custom Code Normal
When the Form is run, similar note will be displayed when an event occurs.
Below are the tables which stores custom information at form level.
28
Form Personalization – by Dinesh Kumar S
Form Personalization
(Exercises)
Property 1: PROMPT_TEXT
Personalization Steps:
30
Form Personalization – by Dinesh Kumar S
Seq 20
Description Action Type : Property
Level Form Level
Note** Start practicing by setting up the context level as “Site”. In my examples I have used user
level.
Action Information:
Actions Value
Seq 10
Type Property
Description Change Label name
Language All
32
Form Personalization – by Dinesh Kumar S
Result:
Log in as “D_USER1”.
Property 2: REQUIRED
34
Form Personalization – by Dinesh Kumar S
Conditions:
Actions:
Result:
Property 3: ENABLED
36
Form Personalization – by Dinesh Kumar S
Conditions:
Actions:
Result:
Property 4: DISPLAYED
38
Form Personalization – by Dinesh Kumar S
Conditions:
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.
40
Form Personalization – by Dinesh Kumar S
Conditions:
Actions:
Result:
Condition:
Actions:
42
Form Personalization – by Dinesh Kumar S
Result:
Description: Notify user when he/she trying to access IN-ACTIVE user details.
44
Form Personalization – by Dinesh Kumar S
Condition:
Actions:
Result:
Close the form & Re-open then query for the user.
46
Form Personalization – by Dinesh Kumar S
Warning:
Show:
Error:
Hint:
48
Form Personalization – by Dinesh Kumar S
Description: Changing the Special Menu Label Name. We will be using Item Master Form.
Condition:
Actions:
50
Form Personalization – by Dinesh Kumar S
Result:
Rule:
Condition:
52
Form Personalization – by Dinesh Kumar S
Actions:
Result:
Block: USER
Block: USER_RESP
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:
54
Form Personalization – by Dinesh Kumar S
Actions:
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 I’m giving the user details in the HTML Page and submitting it to other HTML page.
HTML PAGE 1:
HTML PAGE 2:
56
Form Personalization – by Dinesh Kumar S
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.
In Actions Tab Click button to get the value of the form field.
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.
Description: When user enters the form a warning message will be displayed.
If Clicked,
OK - It will enter into Query Mode
CANCEL - It will enter the form normally.
Condition:
Actions:
Action 1:
58
Form Personalization – by Dinesh Kumar S
Action 2:
Action Summary: So we have defined two actions, which will be executed sequentially.
Result:
60
Form Personalization – by Dinesh Kumar S
You can view the valid available form functions in below form.
Description: When a New Responsibility is created, we need to assign that responsibility to user. This
is achieved by enabling a special menu and when user clicks the menu it will call the user form.
We are going to find the user form function name from the “System Administrator” responsibility
root menu.
62
Form Personalization – by Dinesh Kumar S
Menu Details:
Function Details:
Condition:
Actions:
64
Form Personalization – by Dinesh Kumar S
Condition:
Actions:
Result:
66
Form Personalization – by Dinesh Kumar S
Description: In our previous exercise we have enabled a SPECIAL 3 menu item for User Form.
When the menu is clicked it should open a SRS Form to submit a concurrent program to validate the
user created (or) existing user.
Condition:
Actions:
PS: Please refer the ConcPG_Executable.SQL File provided along with the material.
68
Form Personalization – by Dinesh Kumar S
Parameter Information:
Note** Don’t 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.
70
Form Personalization – by Dinesh Kumar S
Result:
72
Form Personalization – by Dinesh Kumar S
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
ERASE (‘GLOBAL.Variable_name’);
Description: In the example (Built-in Type: Launch SRS Form) we have launched SRS windows to
submit the concurrent program. But the program parameter is given manually by user. Using Global
variable, the parameter will be populated automatically [ZOOM Functionality].
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:
74
Form Personalization – by Dinesh Kumar S
Action 3:
Default value:
76
Form Personalization – by Dinesh Kumar S
Click Ok.
Result:
Now SRS window will automatically open by populating the parameters details automatically.
78
Form Personalization – by Dinesh Kumar S
Description: In the above exercise (Built-in Type: Launch SRS Form) we have validated the user
by submitting the concurrent program. Now in this exercise we will be directly executing the
procedure to validate the user.
PS: Please refer the Execute_Proc_Block.SQL File provided along with the material.
Follow the same steps [Part 1 & Part 3] from above exercise.
Condition:
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.
In Form Arguments:
If we give additional single quote in between the code then the syntax becomes incomplete.
80
Form Personalization – by Dinesh Kumar S
’
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 pipe’s ( ).
For Example,
| | para_1 | |
‘‘ ‘| | para_1 | |’ ’’
='declare
begin
D_FORM2.VALIDATE_USER ('''||${item.user.user_name.database_value}||''');
end'
Action2:
82
Form Personalization – by Dinesh Kumar S
Result:
Description: We will be restricting the List of values for Data Group Name field.
Item Property:
84
Form Personalization – by Dinesh Kumar S
Now we need to find the Original Record Group Query used for field
“DATA_GROUP_APPLICATION_NAME”.
86
Form Personalization – by Dinesh Kumar S
Open the record Group property & check for the SQL statement.
Query identified.
88
Form Personalization – by Dinesh Kumar S
Rule:
Condition:
Actions:
Action 1:
90
Form Personalization – by Dinesh Kumar S
Action 2:
Result:
Oracle Extensions
(Custom.pll)
92
Form Personalization – by Dinesh Kumar S
i. Form Personalization
ii. Modifying Custom.pll
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.
File Location
/
AU/11.5.0/forms/US
TEMPLATE.fmb /
.PLL Files /AU/11.5.0/Resource
94
Form Personalization – by Dinesh Kumar S
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
Trigger Events:
Components Description
Object Group The Template refers to pre-defined platform independent standard
Reference object groups in APPSTAND form.
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 Block Some sample data block objects [Detail Block & Block Name] are
attached.
96
Form Personalization – by Dinesh Kumar S
Step 1: Open the form Builder and Download below library files and attach the libraries.
APPCORE.pll
APPDAYPK.pll
FNDSQF.pll
For R12:
For 11i:
98
Form Personalization – by Dinesh Kumar S
100
Form Personalization – by Dinesh Kumar S
102
Form Personalization – by Dinesh Kumar S
104