oracle form personalization - by dinesh kumar s

Upload: dineshcse86gmailcom

Post on 01-Mar-2016

70 views

Category:

Documents


2 download

DESCRIPTION

Oracle Form Personalization - by Dinesh Kumar S This material explains about applying personalization in oracle forms. I have tried to cover all possible functionalities with examples and screenshots. This personalisation is common to both R12 & 11i.

TRANSCRIPT

  • 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 EnabledUtilities:Diagnostics Yes / No Site / Application / Responsibility / User.Hide Diagnostics menu entry Yes / No Site / Application / Responsibility / User.Profile Name DescriptionUtilities: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.FND: Enable Industry Editing 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. 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 Personalizations?

    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.Seq Level1 Form Personalization2 Custom.pllComponents 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 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.

    6

  • Form Personalization by Dinesh Kumar S

    Conditions:

    It decides when the Rule should be executed based on the below factors.

    o Trigger Event (Mandatory)o Trigger Objecto Conditiono Processing Mode (Mandatory)

    Trigger Event:

    Event @ Which the rule to be processed.

    The following Events lists are available,

    o WHEN-NEW-FORM-INSTANCEo WHEN-NEW-BLOCK-INSTANCEo WHEN-NEW-RECORD-INSTANCEo WHEN-NEW-ITEM-INSTANCEo WHEN-VALIDATE-RECORDo MENU1 to MENU15o 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 Usage Trigger ObjectWHEN-NEW-FORM-INSTANCE Once When Form Starts up. N/AWHEN-NEW-BLOCK-INSTANCE Each time the cursor moves to New Block. Block NameWHEN-NEW-RECORD-INSTANCE Each time the cursor moves to a New Record. Block NameWHEN-NEW-ITEM-INSTANCE Each time the cursor moves to a New Item. Block Name. Item NameWHEN-VALIDATE-RECORD Each time the current records have any change that needs to be validated. Block NameTrigger Usage: Possible ScenariosWHEN-NEW-FORM-INSTANCE Security Rules, Navigation Rules, Visual Attributes.WHEN-NEW-BLOCK-INSTANCE Message Rules + Same as WHEN-NEW_FORM-INSTANCE.WHEN-NEW-RECORD-INSTANCE Default valuesWHEN-NEW-ITEM-INSTANCE Message Rules + Default values dependent on another item.WHEN-VALIDATE-RECORD 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 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

  • Form Personalization by Dinesh Kumar S

    Tool Menu: Menu1 Menu15Special 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 SQL Functionso 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.

    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.

    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.

    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. APIs 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 MenuIt 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 Menus?Tool Menu, Action Menu, Report Menu.

    What are the special Menus 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 DescriptionFND_FORM_CUSTOM_RULES 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 20Description Action Type : PropertyLevel Form LevelCondition Details CommentsTrigger Event WHEN-NEW-FORM-INSTANCE The change should be reflected when the form is opened. So choose this trigger event.Trigger Object N/ACondition (Optional) Processing Mode Both Change should reflect in both Query & non-Query Mode.Context Details CommentsLevel User Change will be reflected only for this user.Value D_USER1 Valid user name.

    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 ValueSeq 10Type PropertyDescription Change Label nameLanguage AllObject Type Item User Name Field is a Text Type Item.Target object USER.USER_NAME BLOCK_NAME.ITEM_NAMEProperty Name PROMPT_TEXT This is the property we are going to change.Value Oracle ID 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.

    Lets 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-FORM-INSTANCE.

    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 Im 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 - It will enter into Query ModeCANCEL - 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: D_FORMProcedure Name: VALIDATE_USERDescription: 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** 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.

    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:

    = DeclareBegin

    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

  • 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 pipes (||).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:

    ='declarebeginD_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: FNDSCRSP .fmx file Path: /11.5/fnd/11.5.0/forms/US/FNDSCRSP.fmx .fmb file Path: /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 Personalizationii. 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 Location

    TEMPLATE.fmb /AU/11.5.0/forms/US/.PLL Files /AU/11.5.0/Resource

    Form Personalization by Dinesh Kumar S

  • Form Personalization by Dinesh Kumar S

    What are different libraries available?Libraries Type .Pll File DescriptionCore APPCORE.pll Standard Application Toolbars CUSTOM.pll For Form Customization FNDSQF.pll Related to AOL Objects like KFF, CP, Messages etc. 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 RegionApplication TEMPLATE.fmb Used to call form triggers. APPCORE2.pll Similar to APPCORE.pll used to attach it to custom.pll. 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.Impt Libraries Usage/DescriptionAPPCORE.pllAPPCORE2.pll 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.GLOBE.pllJE.pllJL.pllJA.pll

    It allows application to incorporate regional features without modifying the base oracle form. the GLOBAL library calls regional libraries JE, JL & JA.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 DescriptionObject Group Reference The Template refers to pre-defined platform independent standard 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

    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: System AdministratorForm: Document SequencesForm Name: FNDSNDSQLocation: 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** dont 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