Wednesday, 23 November 2016

Forms Development in Oracle Applications

1.      Down load Template.fmb from AU top/11.5.0/Resource folder.
2.      Delete existing Canvas, Window, Data Block having the name called ‘Block_name’ then Create new Canvas, Window, Data Block.
3.      Assign the Standard Oracle Applications Property classes to the new objects.
4.      Customize the following triggers at form level                                                                a.    Pre_form                                à        Used for New Window                      b.    When_New_Form Instance         à      Used for New Form                            c.     AP_Custom Package                  à        Used for First Window
5.      Compile the form we will get .fmb (Ctrl+K) then execute the form we will get .fmx (Ctrl+T).
6.      Transfer the .fmb into Corresponding path according to module.                                    Ex:-    PO/11.5.0/Froms/US         à        for PO module            .                                               If we have the Custom_top then you have to save this file in custom_top/11.5.0/Forms/US folder.
7.      Select Application Developer Responsibility and Create the Form.
8.      Create the Function attach the Form to Function.
9.      Create Menu attach the Function to Menu.
10.  Create Responsibility attach Menu to Responsibility and Responsibility will be attach to user.
So that user can open Form from Navigator and he can enter the transactions.

Note:-  While changing the form name we will change the property called First Navigation Data Block as user defined data block.
            In the Pre_Form Trigger we will change the action history and we will mention the window name in the block name parameter.
Ex:-  app_window.set_window_position (‘Win9’,’First_window’);
            In the When_New_Form_Instance Trigger we will change instead of template mention on form module name.
Ex:- FDRCSID  $Header:Form9.fmb’
            In the APP_CUSTOM (package source). Here we mention the window name where window = first window name.
Ex:-  if (wnd=’win9’) then
           
From the front end navigations Application Developer is used to Create Form.
           
Navigations: Application Developer
                      
                                              Application
                                         
                                                             Form
            First field is .fmx name.
            Second field is application name where the .fmx is placed (Module name)


Navigations: Application Developer
                      
                                              Application
                                          
                                                             Form
            Here we will give the function name (user define we can give any name) then go to Properties Tab select Type as Form. Go to Form tab and give the user form name.

Adding Calendar to Field:-
1.      Select the filed change list of values property into ENABLE_LIST_LAMP.
2.      Create Item level trigger called KEY_LISTVAL for that field then call the following API.
            Calendar. Show( );

Master / Detail Form:-

            1.   We will develop the Master Block like Normal Form then we will develop one more Block (chaild Block) after giving the Chaild table.                                                              A.    Un check Auto_Join Data Blocks Check Box                                                                  B.    Select Create Relations Ship Button then select based on a Join Condition it will shows all the Master Blocks select one Block then give the Join Condition and select Finish button.
            2.     Change the Property Source as Block and Text_Items.

Custom Table Registration :-   If we want to create table we have to Register the table first without Registration the table can not be use the AOL (Application Object Library) features like Profile, WHO Columns, Flex fields, Concurrent Process, Multi Org

Note:- Connect to Custom_Top (WIP)

1.                  Create table custom_vendors (Vendor_id number(10), Venodr_name varchar2(10), Credit_limit number(10), Created_by number(10), Creation_date date, Last_update_date  date, Last_updated_by number(10));
2.                  Grant allow custom_vendors To APPS;
3.                  CONN             à        APPS/APPS@PROD
4.                  Create public synonym Custom_vemdors for po.custom_vendors;
5.                  Exec  AD_DD.Register_Table (‘PO’,’custom_vendors’,’T’,8’10’90);
6.                  Exec AD_DD.Register_Column (‘PO’,’customer_vendors’,’Vendor_id’,1,’number’,10,’N’,’Y’);                            Note:- Register All Columns.
7.                  COMMIT;




Implementing WHO Columns:-        If WHO Columns wants to populate automatically then we need to used the Standard API at Block level 2 Triggers. They were

1.                  Pre_Insert
2.                  Pre_update
The API is       FND_STANDARD.SET_WHO( );


Descriptive Flex field Form:-

Add DFF to the Form:-  

1.           We have to develop the form based on the DFF Table and Select all the Attributes Columns.
2.           Take one Text Item in the Canvas change the property ‘Data base Item’ as ‘No’.
3.           Define the Package Specification and Body which is going to useful to define DFF.
4.           In Package Specification we have to do these things.                                                   Package P_DFF is                                                                                                                 Procedure P_Proc  (Event  Varchar2);                                                           End;
5.           In Package Body we have to do these things.                                                               Package body P_DFF is                                                                                                             Procedure P_Proc (Event VArchar2 ) is                                                                  Begin                                                                                                                   If event =’when_new_form_instance’ then                                                       fnd_Descr_Flex.define (Block           à        ‘po_vendors_all’,                                                                Field            à        ‘DTEXT’                                                                                     Apps_short_name           à        ‘PO’,                                                                               Desc_Flex_Name           à        ‘po_headers’);                         End if;                                                                                                                 End;                                                                                                        End;
6.           Call this Package Procedure at Form level when_new_form_instance trigger                   P_DFF.P_Proc (when_new_form_instance’);                                        
7.           Call the following API from ‘when_new_item_instance trigger it will [populate the DFF.                                                                                              FND_FLEX.EVENT (‘When_New_Item_Instance); 

Note:-    while using existing DFF in the form we have do some important step is at the time of creation of data block wizard we have to copy all fields existing in the database table and at the time of layout wizard creation we can select fields according to user requirement


Custom Descriptive Flex field:-
1.             We will register the table with DFF Attribute columns by using AD_PP Package.
2.             We will register the DFF from Application Developer.

Navigations:
                      
                                              Flex field
                                          
                                                             Descriptive
                                                                                                                                                                                     Register
Here we will give the application name and DFF Name and we give the table name, table Application then select the Structure Column it will be used for context field and select the columns button where we will enable attributes. Take the DFF Title and define the Segments from Segments form then compile the DFF once DFF is compiled successfully then we will call this DFF from custom form. By using following API’s.
1.      FND_DESCR_FLEX.DEFINE
2.      FND_FLEX.EVENT

Calling the another form the Existing form:-      By using FND_FUNCTION.EXECUTE API we will call another form from the existing form.

Syntax:-    FND_FUNCTION.EXECUTE (FUNCTION_NAME ‘NAME OF THE FUNCTION’, OPEN_FLAG ‘’,OTHER_PARAMS  ‘’,);

1.      Develop the 2 forms by using template.fmb and register add to the menu.
2.      Select first form canvas define the button select WHEN_BUTTON_PRESSED trigger call the second form and pass the parameter                                            
Syntax:-FND_FUNCTION.EXECUTE (FUNCTION_NAME => ‘Second Form Function Name’, OPEN_FLAG => ‘Y/N’, OTHER_PARAMS => Parameter Name = || :Block Name.Column Name);                                               
EX:-  FND_FUNCTION.EXECUTE (FUNCTION_NAME => ‘2FORM’,OPEN_FLAG => ‘Y’, OTHER_PARAMS => ‘P1’= || :PO_VENDORS.VENDOR_ID);
3.      Select Second form parameters define the parameter then go to Data Block select user defined (Existing) Data block write PRE_QUERY trigger.              
Syntax:-  :Block_name.columnname := :PARAMETER. parameter name;
            :PO_VENDOR_SITES_ALL.VENDOR_ID := :PARAMETER.P1;                    This trigger will fire before query execution and it will retrieve the values based on the parameter.
4.      Go to WHEN_NEW_FORM_INSTANCE trigger in Second form defineing the following code..                                                                                                               GO_BLOCK (‘DATABLOCK NAME’);                                                                  EXECUTE_QUERY;                                                                                         

            Ex:-    GO_BLOCK (‘PO_VENDOR_SITES_ALL’);                                                        EXECUTE_QUERY;

Note:- The Second form is to attach same menu which was attached to the first form and don’t give the prompt filed while registering the Second Form.

No comments:

Post a Comment