Oracle Form Personalization - by Dinesh Kumar S
March 25, 2017 | Author: dineshcse86gmailcom | Category: N/A
Short Description
Download Oracle Form Personalization - by Dinesh Kumar S...
Description
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Form Personalization
2
Form Personalization – by Dinesh Kumar S What is Form Personalization? The Form Personalization feature allows you to declaratively alter the behavior of Forms-based screens, including changing properties, executing built-ins, displaying messages, and adding menu entries. Why Form Personalization? Before Version 11.5.10 forms can be personalized only by modifying CUSTOM.PLL, and it involves many drawbacks. When to use Custom.pll and Direct Personalization? Direct Personalization (Core Apps): In this method, form can be personalized only for few events (Triggers).
Using Custom.pll: This method can be used to implement custom validation which cannot be done using above method.
Accessing Form Personalization: To access form personalization window follow the below steps. Step 1: Open the Form to be customized. Step 2: Navigate: Help Diagnostics Custom Code Personalize
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Restrict Form Personalization Access: By Default Personalization menu will be available to all users. To restrict the access the following below profile options should be set. Profile Name
Value
Level Enabled
Utilities:Diagnostics
Yes / No
Site / Application / Responsibility / User.
Hide Diagnostics menu entry
Yes / No
Site / Application / Responsibility / User.
Profile Name
Description
Utilities:Diagnostics
The Utilities:Diagnostics profile option allows Forms users to examine (and change) individual database records. Setting Utilities:Diagnostics to "No" requires the user to enter the APPS password prior to using the Diagnostics Examine, which should mitigate their ability to change data within the database.
Hide Diagnostics menu entry
This profile option determines whether users can access the Diagnostics menu entry from the Help menu. If this profile is set to Yes, the Diagnostics menu is hidden from the user. Yes – To view Oracle Delivered Personalization. Sometimes there will be conflict when custom personalization applied. So if you want to enable custom personalization then set this profile as “No”. No/NULL – when creating new/custom personalization.
FND: Enable Industry Editing
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 Provide Oracle Database password.
Personalization form successfully opened.
How to Disable Form Personalization’s?
Navigate: Help Diagnostics Custom Code OFF
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Form Personalization Sequence: Oracle form libraries will apply personalization in the below order. Se q Level 1 Form Personalization 2 Custom.pll
Components involved in Form Personalization: The major components involved in form personalization are, • • • •
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 Description Level Enabled
Sequence Order to execute the rule when a form is opened. User description. Either Form Level (or) Form Function Level. 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.
6
Form Personalization – by Dinesh Kumar S
Conditions: It decides when the Rule should be executed based on the below factors. o o o o
Trigger Event (Mandatory) Trigger Object Condition Processing Mode (Mandatory)
Trigger Event:
Event @ Which the rule to be processed.
The following Events lists are available, o o o o o o o
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:
It Fires in response to Navigational Events. It occurs at different level of the form builder object hierarchy (Form, Block, Record, and Item).
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Below are the 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
Usage: Possible Scenarios Security Rules, Navigation Rules, Visual Attributes. Message Rules + Same as WHEN-NEW_FORM-INSTANCE. Default values Message Rules + Default values dependent on another item. Populate Hidden Fields + additional Validations.
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 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. Special Triggers are sub classified as, • • •
Tool Menu Report Menu Action Menu 8
Form Personalization – by Dinesh Kumar S
Tool Menu:
Menu1 – Menu15 Special 1 – Special 15
Report Menu:
Special 16 – Special 30
Action Menu:
Special 31 – Special 45
Conditions (Cont….): Condition Field:
This field let you to create a SQL Expression. Empty / True - Actions will be performed. False - Action will not be performed.
It can refers to, o o o o
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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S 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.
Note** Context: Industry for Future use. 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.
Select by Text Button: This will list out all the items and its type. Such that the selected item details will be populate in target object field.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
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: •
This action type is used to display custom message during runtime.
•
There are four message types available like Show, Hint, Error, Debug, and Warn.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Action Type – Builtin: •
It allows execution of standard builtin i.e. API’s related to AOL.
The following Builtin types available,
:
Allows SRS (Submit Concurrent Request) to be run in a context of a specific program. This takes single argument of program name. No additional security is applied to this program name, all the programs are available to the user.
14
Form Personalization – by Dinesh Kumar S
This is formally called FND_FUNCTION.EXECUTE. The function can be selected either by its internal name (or) by user friendly name.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
This is formally called FND_UTILITIES.OPEN_URL. This builtin allows opening a HTML page. By default the target is '_BLANK', which will open a new browser window. We can also define user defined URL targets.
This type is used to perform form related actions.
16
Form Personalization – by Dinesh Kumar S
It allows a PL/SQL stored procedure to be executed. Similar to PL/SQL Procedure execution the syntax to be given. For Example, Package_name.Procedure_name(arg1, arg2); The entire string will be evaluated before being sent to the server for processing.
To move the cursor to any items inside any block this builtin is used.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
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.
18
Form Personalization – by Dinesh Kumar S
It allows execution of trigger within a form.
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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
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 Action Type – Menu:
There are two types of menu entry available,
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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
,
Many blocks can be added by separating it with a comma ( ). Do all forms have same Special Menus? No, The special menu varies based on the forms. Different types of Special Menu’s? Tool Menu, Action Menu, Report Menu. What are the special Menu’s we can use in Form Personalization? Only Tool Menu [Special 1 to Special 15].
22
Form Personalization – by Dinesh Kumar S How to identify which Special Menu is enabled for the form? Open the form & navigate to; Form Name: Purchase Order Form Navigation: Help Diagnostics Custom Code Personalize Now Create a Dummy Rule & in Action Type select Menu.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Now we will check for Location Form. Only one Special Menu is enabled.
Now we will check for Master Item Form.
24
Form Personalization – by Dinesh Kumar S
How Strings are
Evaluated /Processed in forms? Strings used in property can be used literally or validated/evaluated at runtime. Equal-to (=) Operator 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. Similarly in form personalization, 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. Using Bind/Global Variables 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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S When click the
button,
Global Variables:
Used to pass values between forms. Max. length is 255
Local Variables: 26
Form Personalization – by Dinesh Kumar S
When you need to refer a variable multiple types. Specific to local form. Max. length 4000 bytes.
Using SELECT Statement Syntax:
=SELECT FROM Note** Do not end the statement with semi colon (;). Track Form Events: Turn-ON: Navigate:
Help Diagnostics Custom Code Show Custom Events
Turn-OFF: Navigate:
Help Diagnostics Custom Code Normal
After enabling the following message will be displayed.
When the Form is run, similar note will be displayed when an event occurs.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Form Personalization Tables: Below are the tables which stores custom information at form level. Table Name FND_FORM_CUSTOM_RULES
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
Holds the Actions for a specified Rule - used by FNDCUSTM.fmb and APPCORE to apply customizations. FND_FORM_CUSTOM_SCOPES The Scopes for which the FND_FORM_CUSTOM_RULES apply. FND_FORM_CUSTOM_PARAMS Parameters to Pass to a CP when executed using Form Customizations. FND_FORM_CUSTOM_PROP_LIST Lookup table for the Properties which can be altered. FND_FORM_CUSTOM_PROP_VALUES The Values available for items with argument type of L - Lookup.
How to View Form Details?
Navigation:
Help About Oracle Applications.
28
Form Personalization – by Dinesh Kumar S
Form Personalization (Exercises)
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Action Type: Property Property 1: PROMPT_TEXT Description: Changing the Prompt Name of the field “User Name”.
Personalization Steps: Before Personalizing get the Item/Block Information. Navigate: Help Diagnostics Properties Item
30
Form Personalization – by Dinesh Kumar S
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
Change should reflect in both Query & non-Query Mode.
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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
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
User Name Field is a Text Type Item. BLOCK_NAME.ITEM_NAME This is the property we are going to change. New Prompt Name.
32
Form Personalization – by Dinesh Kumar S Result: Log in as “D_USER1”.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Property 2: REQUIRED Description: Making Field Text as mandatory.
Step 1: Get Object Property.
34
Form Personalization – by Dinesh Kumar S Conditions:
Actions:
Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Property 3: ENABLED Description: Restricting access to the tab.
Step 1: Get Object Property
36
Form Personalization – by Dinesh Kumar S Conditions:
Actions:
Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Property 4: DISPLAYED Description: Hide the field from User.
Step 1: Get Object Property
38
Form Personalization – by Dinesh Kumar S Conditions:
Actions:
Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S 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.
Step 1: Get Object Property
40
Form Personalization – by Dinesh Kumar S Conditions:
Actions:
Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Action Type: Message Message Type: Note Description: Notify user when he/she is about to access User Form. Condition:
Actions:
42
Form Personalization – by Dinesh Kumar S Result: Open the User Form in System Administrator responsibility.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Message Type: Note Description: Notify user when he/she trying to access IN-ACTIVE user details.
Step1: Get the Property of the Item.
44
Form Personalization – by Dinesh Kumar S Condition:
Actions:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Result: Close the form & Re-open then query for the user.
46
Form Personalization – by Dinesh Kumar S Difference between Message Types: Warning:
Show:
Error:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Hint: Shows the message @ Status Bar.
48
Form Personalization – by Dinesh Kumar S
Action Type: Menu Menu: Rename Special Menu Label Description: Changing the Special Menu Label Name. We will be using Item Master Form.
Let’s Rename the Categories Special Menu.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Condition:
Actions:
50
Form Personalization – by Dinesh Kumar S
Result: Query for the test Item.
Now go to Tools Menu.
Note** the personalization on SPECIAL Menu can be applied only @ WHEN-NEW-FORMINSTANCE.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Menu: Creating New Menu Item Description: Create a New Menu Item.
Rule:
Condition:
52
Form Personalization – by Dinesh Kumar S Actions: SPECIAL 3 Tool Menu We are enabling only BLOCK USER.
Result: Block: USER
Block: USER_RESP
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Action Type: Built-in
Built-in Type: Launch a URL 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
Note** the special menu created is based on trigger “WHEN-NEW-FORM-INSTANCE”. Rules:
Condition:
54
Form Personalization – by Dinesh Kumar S Actions:
Result:
How to use Parameterized URL? Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
In HTML we can send the details of page information from one page to other by using the below methods. • •
GET – In this method we can see the details in URL. POST – In this method form details are hidden.
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 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.
In Actions Tab Click
button to get the value of the form field.
The URL will be as below. 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.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Built-in Type: DO_KEY Description: When user enters the form a warning message will be displayed. If Clicked, OK CANCEL
-
It will enter into Query Mode 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: Now Open User Form.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S When Clicked OK; Form enters into Query Mode.
When Clicked CANCEL; Form enters into Non-Query Mode.
60
Form Personalization – by Dinesh Kumar S Built-in Type: Launch a Function
Note** Function here refers to Form Functions not PL/SQL functions. You can view the valid available form functions in below form. Navigation: System Administrator Application Function 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. Step 1: Collect the Form Function Details We are going to find the user form function name from the “System Administrator” responsibility root menu.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Navigation: System Administrator Application Menus
62
Form Personalization – by Dinesh Kumar S Menu Details:
Function Details:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Now we will see how to implement our requirement. Part-1: Creating a Special Menu
Condition:
Actions:
64
Form Personalization – by Dinesh Kumar S Part-2: Creating an action event when special menu is created.
Condition:
Actions:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Result: Create a New Responsibility and assign it to user.
When clicked “Assign to User” it opens user form.
66
Form Personalization – by Dinesh Kumar S Built-in Type: Launch SRS Form 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. Part-1: Enabling a Special Menu
Condition:
Actions:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Part-2: Creating a Concurrent Program Package Name: Procedure Name: Description:
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
Now create a Program and attach the executable.
68
Form Personalization – by Dinesh Kumar S Navigation: System Administrator Concurrent Program Define
Parameter Information:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S 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:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Request Successfully Submitted.
Now open the pat & download the log file.
Open the file.
72
Form Personalization – by Dinesh Kumar S Built-in Type: Global variables
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.
How to access Global variables?
: 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.
The control will be passed from one from to another.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S 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]. We are going to make small changes in below order, 1) Part-3: Creating action even for the menu i.e. when clicked it should launch SRS form 2) Part-2: Creating a Concurrent Program
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
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Action 3:
Part-2: Creating a Concurrent Program We need to modify the parameter details of the concurrent program “”
Default value:
76
Form Personalization – by Dinesh Kumar S
Select :GLOBAL.G_USR_NAME from dualWhen saved, the following message is triggered.
Click Ok. Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Now SRS window will automatically open by populating the parameters details automatically.
Submit the concurrent program. Program Executed successfully.
78
Form Personalization – by Dinesh Kumar S Built-in Type: Execute a Procedure 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. In Part-3 we will be making the changes. Condition:
Actions: Action1:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Note: How to give argument for built-in type “Execute a Procedure”? Normal PL/SQL block definition in SQL Developer / TOAD / SQL PLUS:
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 let’s 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
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,
Q2) How to use parameters?
||
The Parameter should always prefix and suffixed with double pipe’s ( ). For Example,
| | para_1 | | Final String by combining Q1 & Q2,
‘‘ ‘| | para_1 | |’ ’’ Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Full Argument Code:
='declare begin D_FORM2.VALIDATE_USER ('''||${item.user.user_name.database_value}||'''); end'
Action2:
82
Form Personalization – by Dinesh Kumar S Result:
Check the Log File:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Built-in Type: Execute a Procedure 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”.
How to find Record Group details? We need to download the .FMB file and check the same.
How to find the Form Details? Navigation: help About Oracle Applications. Now get the Form Details and download it from the server.
The details of responsibility form. Form Name: .fmx file Path: .fmb file Path:
FNDSCRSP /11.5/fnd/11.5.0/forms/US/FNDSCRSP.fmx /11.5/au/11.5.0/forms/US
Now identify the LOV.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
86
Form Personalization – by Dinesh Kumar S
Open the properties of LOV and find the record group.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Record group identified.
Open the record Group property & check for the SQL statement.
Query identified.
88
Form Personalization – by Dinesh Kumar S
New SQL Query:
SELECT APPLICATION_NAME, DESCRIPTION, APPLICATION_ID FROM FND_APPLICATION_VL WHERE APPLICATION_NAME IN ('PURCHASING', 'MANUFACTURING','APPLICATION OBJECT LIBRARY') ORDER BY APPLICATION_NAME Rule:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Condition:
Actions: Action 1:
90
Form Personalization – by Dinesh Kumar S Action 2:
Result:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Oracle Extensions (Custom.pll)
92
Form Personalization – by Dinesh Kumar S
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?
It is Standard Oracle Form PL/SQL Library. This is oracle Built-in Feature to modify Oracle standard Form functionality.
How form Level triggers are initiated from 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.
Where is libraries file stored? The .Fmb & .Pll files are stored in $AU_TOP. File TEMPLATE.fmb .PLL Files
Location / AU/11.5.0/forms/US / /AU/11.5.0/Resource
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
What are different libraries available? Libraries Type Core
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
It contains PL/SQL packages controlling AOL Objects like KFF, CP, Messages, Currencies etc. It allows application to incorporate regional features without modifying the base oracle form. the GLOBAL library calls regional libraries JE, JL & JA.
GLOBE.pll JE.pll JL.pll JA.pll GHR.pll
Contains Even Dispatcher Codes specific to HRMS.
94
Form Personalization – by Dinesh Kumar S
What is the importance of TEMPLATE.fmb?
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
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Trigger Events:
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
Form Personalization – by Dinesh Kumar S
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 Step 2: Download CUSTOM.pll from location /AU/11.5.0/Resource. Step 3:Modify CUSTOM.pll file [CUSTOM*(Package Body)@]. Step 4: Compile the Package & Save the changes. Step 5: Upload the file to location /AU/11.5.0/Resource Step 6: Generate .PLX executable file using below command. For R12: FRMCMP_BATCH MODULE=CUSTOM.PLL USERID=/@ MODULE_TYPE=LIBRARY COMPILE_ALL=YES For 11i: F60GEN MODULE=CUSTOM.PLL USERID=/@ OUTPUT_FILE=./CUSTOM.plx MODULE_TYPE=LIBRARY
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Example of using CUSTOM.pll Description: We are going to make a text field to accept only UPPER Case Letters only. Responsibility: Form: Form Name: Location:
System Administrator Document Sequences FNDSNDSQ oracle\visappl\fnd\11.5.0\forms\US\FNDSNDSQ.fmx
Follow the below steps. Step 1: Enable Show custom events Navigation: Help Diagnostics Custom Code Show Custom Events.
98
Form Personalization – by Dinesh Kumar S Step 2: Gather Information Get Field Info.
Trap the event:
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Step 3: Coding in CUSTOM.pll Now open TEMPLATE.fmb and attach the CUSTOM.pll.
100
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S Now open CUSTOM.pll package body and insert the code.
Now compile the code.
102
Form Personalization – by Dinesh Kumar S Note** don’t forget to update the version history in CUSTOM.pll
Step 4: Upload the CUSTOM.pll to $AU_TOP/resource Step 5: Generate CUSTOM.pll Execute the command from right location.
Log out & login to view the changes.
Form Personalization – by Dinesh Kumar S
Form Personalization – by Dinesh Kumar S
104
View more...
Comments