Professional Documents
Culture Documents
Oracle Preparation Document
Oracle Preparation Document
Forms Devp, Personalization & Customizations................................3 Form Components.......................................................................3 New Form Development with Sub Functions in Oracle Apps.......3 For Other Personalizations...........................................................3 Using Message Directory in Form Personalization.......................3 Using Message dictionary in Forms Personalization..........................................3 Adding DFF fields in Custom Form.............................................10 How to add a Descriptive Flexfield (DFF) in a custom Oracle Apps form...........10 Personalization of Form ............................................................25 Customization of Form ..............................................................26 Form Devp Process ..................................................................26 11i & R12 Differences.....................................................................29 AP.............................................................................................. 29
http://garethroberts.blogspot.sg/
Form Components
http://docs.oracle.com/cd/E18727_01/doc.121/e12900/T458979T45898 5.htm#I_ox2Doverfl
Navigation: Application > Messages Create new message Name: XX_TEST Current Text Message: This is a test message for &USER_NAME
Save and close form. Generate the message Responsibility: Application Developer Click on View > Requests in the menu to execute a concurrent program. Select Generate Messages program.
Enter the parameters as shown and submit the program. When the program completes check the program log.
01 +---------------------------------------------------------------------------+ 02 Application Object Library: Version : 11.5.0 03 04 Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved. 05 06 FNDMDGEN module: Generate Messages 07 +---------------------------------------------------------------------------+ 08 09 Current system time is 14-MAY-2012 16:57:53 10
11 +---------------------------------------------------------------------------+ 12 13 Writing file /d03/appltest/testappl/XXCUST/11.5.0/mesg/US187494.tmp 14 15 Moving file /d03/appltest/testappl/XXCUST/11.5.0/mesg/US.msb to /d03/appltest/testappl/XXCUST/11.5.0/mesg/US187494.old. Moving file /d03/appltest/testappl/XXCUST/11.5.0/mesg/US187494.tmp to /d03/appltest/testappl/XXCUST/11.5.0/mesg/US.msb.
16 Processed a total of 209 messages 17 +---------------------------------------------------------------------------+ 18 Start of log messages from FND_FILE 19 +---------------------------------------------------------------------------+ 20 +---------------------------------------------------------------------------+ 21 End of log messages from FND_FILE 22 +---------------------------------------------------------------------------+ 23 24 +---------------------------------------------------------------------------+ 25 Executing request completion options... 26 27 +------------- 1) PRINT 28 29 Printing output file. 30 31 32 33 34 +--------------------------------------+ 35 36 Finished executing request completion options. 37 38 +---------------------------------------------------------------------------+ 39 Concurrent request completed successfully 40 Current system time is 14-MAY-2012 16:57:53 Request ID : 19187494 Number of copies : 0 Printer : noprint -------------+
41 42 +---------------------------------------------------------------------------+
Lets personalize the PO form to display the message Go to Purchasing Form in Purchasing responsibility.
Click on Help > Diagnostics > Custom Code > Personalize Create a new Personalization
Click on Actions Sequence 10 Type: Builtin Description: Retrieve the msg Builtin Type: Execute a procedure Argument: FND_MESSAGE.SET_NAME(XXCUST, XX_TEST)
Sequence 20 Type: Builtin Description: Set the USER token Builtin Type: Execute a Procedure
Argument: fnd_message.set_token (USER_NAME, fnd_profile.value(USERNAME)) Sequence 30 Type: Builtin Description: Set the ORG token Builtin Type: Execute a Procedure Argument: fnd_message.set_token (ORG_ID, fnd_profile.value(ORG_ID))
Sequence 40 Type: Message Description: Display the msg Message Type: Show Message Text: =FND_MESSAGE.GET
Save and close the form. Close the PO form as well. Test it. Open the PO form.
Now the message is displayed on screen from the message dictionary. The message can be altered from the Message form without having to change the personalization any more. You can display messages from the message dictionary in Oracle Apps forms as well. Check the other article.
LOCATION VARCHAR2(2),
06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 /
reason_blk_remove VARCHAR2(240), detail_reason_remove VARCHAR2(1000), linkage VARCHAR2(3) , attribute_category attribute1 attribute2 attribute3 attribute4 attribute5 ) VARCHAR2(150),
Step 2: Register the custom table We need to register the custom table in Oracle since we need to add the attributes, attribute1..attribute5 as DFF. You can refer to this article for registering the table. Once the table is registered you can check it on the front end.
Step 3: Register the DFF You will find the registration steps in this article The registered DFF will be this,
Segments
Click on Segments
Step 4: Configure Forms Builder Forms builder has to be configured for developing Oracle Apps forms. You can find the steps in this article.
Step 5: Develop the custom form for Oracle Apps You can follow the steps to develop a custom for Oracle Apps in this article.
We have created a new block named, XX_SUPPLIER_BLACKLIST . Add a new field in the block for the DFF. We have named the field, DFF.
The important properties to be set are, Subclass Information: TEXT_ITEM_DESC_FLEX Required: No Canvas: <Set the name of the Canvas manually since the item was created manually> Database Item: No Insert Allowed: Yes Update Allowed: Yes List of Values: ENABLE_LIST_LAMP Validate From List: No
Now create a procedure in the form as given below, 01 PROCEDURE xx_supplier_blacklist_dff (event VARCHAR2) 02 IS 03 BEGIN 04 05 06 07 08 09 10 11 12 13 ELSE NULL; END IF; IF (event = 'WHEN-NEW-FORM-INSTANCE') THEN fnd_descr_flex.define (BLOCK => 'XX_SUPPLIER_BLACKLIST', -- Name of the DFF FIELD appl_short_name desc_flex_name ); => 'DFF', => 'CUSTOM', => 'BLACKLIST_FLEX'
14 END;
Now we need to add the call to this function when the form is initiated. Therefore we need to call the procedure from WHEN-NEW-FORM-INSTANCE . Open the WHEN-NEW-FORM-INSTANCE trigger. Add the following line to call the inbuilt procedure, 1 xx_supplier_blacklist_dff ('WHEN-NEW-FORM-INSTANCE');
Finally we need to raise the event to call the DFF when the DFF field is clicked on. This will ensure that the DFF segments will be displayed. Create a trigger, WHEN-NEW-ITEM-INSTANCE , on the block item named, DFF, and add the
Note: Oracle apps provides the API named, FND_FLEX, for Descriptive flexfield events. You can to write all the block level triggers to have consistent normal behaviour of the descriptive flexfield. WHEN-VALIDATE-ITEM: FND_FLEX.EVENT(WHEN-VALIDATE-ITEM ); PRE-QUERY: FND_FLEX.EVENT(PRE-QUERY); POST-QUERY: FND_FLEX.EVENT(POST-QUERY); WHEN-VALIDATE-ITEM: FND_FLEX.EVENT(WHEN-VALIDATE-RECORD); WHEN-NEW-ITEM-INSTANCE: FND_FLEX.EVENT(WHEN-NEW-ITEM-INSTANCE); PRE-INSERT: FND_FLEX.EVENT(PRE-INSERT); PRE-UPDATE: FND_FLEX.EVENT(PRE-UPDATE); You will find a new procedure in the Program Units section
PROCEDURE xx_supplier_blacklist_dff (event VARCHAR2) IS BEGIN IF (event = WHEN-NEW-FORM-INSTANCE) THEN fnd_descr_flex.define (BLOCK => XX_SUPPLIER_BLACKLIST, Name of the DFF FIELD => DFF, Field name appl_short_name => XXCUST, Custom Applications
desc_flex_name => BLACKLIST_FLEX ); ELSE NULL; END IF; END; This procedure has been generated by Oracle for invoking the flex field window and its functionality.
Step 6: Register the form Now we need to register the form in Oracle Applications Responsibility: Application Developer Navigation: Application > Form Enter the form details Form: XX_SUPPLIER_BLACKLIST Application: Custom Applications User Form Name: Supplier Blacklist form Description: Supplier Blacklist form
Register the form function Navigation: Application > Function Description Tab
Enter the following: Function: XX_SUPPLIER_BLACKLIST User Function Name: Supplier Blacklist Func Description: Supplier Blacklist function
Properties Tab
Type: Form
Form Tab
Step 7: Attach the form function to a menu/responsibility After the form and the form functions are created we need to attach the form function to a menu that is attached to a responsibility. Once this is done the form will be accessible to us from that responsibility and other responsibilities which use that menu. We would like to access the form from the responsibility named, IN AP Manager (HO) . Let us open the responsibility form. Responsibility: System Administrator Navigation: Security > Responsibility > Define Query for responsibility, IN AP Manager (HO).
Note the Menu name. It is AP_NAVIGATE_GUI12 . Navigate to Application > Menu. Query for User Menu Name = AP_NAVIGATE_GUI12.
Scroll down to the bottom of the lines and add a line. Enter, Seq: 55 Prompt: Blacklist Function: Supplier Blacklist Func Description: Supplier Blacklist Function
Save and close the form. You will get a popup message saying that the menu us being recompiled. Now the form function is attached to the menu and will be accessible to us from the responsibility.
Test the form Log in to Oracle and go to the responsibility, IN AP Manager (HO) as we had attached the form to the menu of this responsibility (Step 7).
Note the function, Blacklist, at the bottom of the navigation menu. Click on this function.
The form opens up. Now click on the DFF field on the bottom right.
Now the DFF form has also opened. Let us enter some values in the form as shown below.
Save the form. Query the data from the table and let us see if the data has been entered properly into the attribute columns. In this case we have setup only ATTRIBUTE1 as the DFF segment (Step 2). Run the following query, 1 select blacklist_id, supp_number, supp_name, attribute_category, attribute1 from xx_supplier_blacklist
We can see that the DFF value has been entered properly into the table. The form is now enabled to use the DFF segment(s). You can make as many changes on the DFF segments and it will reflect on the form just like any Oracle seeded form.
Personalization of Form
Customization of Form
Oracle R12 Form 10G Customization
http://www.oracleport.com/category/oracle-r12-form-customiztion/
2)Open with Forms6i builder and delete the existing Block Canvas Window 3)Create New Block , Canvas , Window attach oracle apps Property classes
Note:We will change the Property called "First Navigaction Data Block" as Datablock Name in the Module Properties.
5)Save the form we will get (.fmb) 6)compile the form we will get(.fmx) (File => Administration => Compile File)
7)Move the .fmb into au_top\11.5.0\Forms\US\ .fmb 8)Move the .fmx into CuS_top\11.5.0\Forms\US\ .fmx
12)Attach Menu to the responsibility , Responsibility will be attached to the user so that user can open the form and enter/Query the Data.
1)Form Createion : Application Developer=> Application=>Form Form Name Application Name User Form Name : .fmx name : Application name where .fmx is located : We can give any form Name
2)Function Creation: For single form we can create Multiple Functions and we can pass the Parameters. Function Name : Enter any uniquie Name
User Function Name: Enter any uniquie Name Goto Properties tab select Form type = FORM Goto the form tab attach the Form what ever we have created.
Save and Copy the User function name attach to the Menu.
3)open the Menu Enter menu name : Any valid Name User Menu Name Enter the Seqno : Any valid Name : Unique Number
Prompt
: Any Text
4)Copy the User menu name and attach to the Responsibility in system administrator.
TEMPLETE.fmb : It is pre-defined .fmb contains the existing functionality which will suport for all the Menu,Toolbar, and Other Oracle Applciations features. that is the Reason we have to start form development with TEMPLETE.fmb
AP
http://docs.oracle.com/cd/E18727_01/doc.121/e12900/T458979T45898 5.htm#I_ox2Doverfl
Objects 11i R12
Tables
Added:
AP_INVOICE_LINES_ALL, AP_SUPPLIERS, AP_SUPPLIER_CONTACTS, AP_SUPPLIER_SITES_ALL, AP_INVOICES_ALL1_DFV, AP_INVOICE_LINES_ALL_DFV Removed: AP_AE_HEADERS, AP_AE_HEADERS_V, AP_AE_LINES, AP_AE_LINES_V,
Modu le R12
Sub ledger Accounting(SLA) Multi Organization Access Control (MOAC) * Supplier become as a TCA Party. * Supplier Site as a TCA Party Site for each distinct Address Supplier HTML Form Payment manager * Invoice Lines as a new additional line added in Invoice screen. * Allocate freight and special charges are define to the lines on the invoice 4c, Currency, COA, Calendar, Account convention Sub ledger Accounting(SLA) Multi Organization Access Control (MOAC) Advance Search of journal Sub ledger Accounting(SLA) Multi Organization Access Control (MOAC) Customer master AP-AR Netting Balance forward billing Credit card Charge back EB tax Automated Refunds Daily revenue Revenue Contingencies Deferred COGS and Revenue matching Legal Entity at transaction type and Batch source and Auto invoice Copy invoice Roll back depreciation Sub ledger Accounting(SLA) Multi Organization Access Control (MOAC)
R11i No No * Supplier Define in AP. * Supplier Contact copy For Each Supplier Site Supplier Oracle Form Batch Payment * Had only distributions line * Allocation of freight and special charges are define at the distribution level only 3C Currency, COA, Calendar (Set of books) No No No No No No No Consolidated billing (Proxima payment term) No No No No No No No No No No No * Internal Banks defined in AP and that is shared by AP,AR,CE, Payroll and Treasury and they are bank accounts often copy in multiple Operating Units
AP
GL
AR
FA
CM
* Bank and Branch become part of TCA Parties * Internal Bank Account in Cash Management which is defines by a Legal Entity. Here the Operating units have their own rights