Oracle Preparation Document.doc

31
Contents Forms Devp, Personalization & Customizations ...........4 Form Components......................................4 New Form Development with Sub Functions in Oracle Apps .....................................................4 For Other Personalizations...........................4 Using Message Directory in Form Personalization .....4 Adding DFF fields in Custom Form...................11 Personalization of Form.............................27 Customization of Form...............................27 Form Devp Process...................................27 http://garethroberts.blogspot.sg/

description

Oracle Preparation Document.doc

Transcript of Oracle Preparation Document.doc

Page 1: Oracle Preparation Document.doc

Contents

Forms Devp, Personalization & Customizations.......................................4

Form Components.............................................................................................4

New Form Development with Sub Functions in Oracle Apps...............................4

For Other Personalizations.................................................................................4

Using Message Directory in Form Personalization..............................................4

Adding DFF fields in Custom Form....................................................................11

Personalization of Form...................................................................................27

Customization of Form.....................................................................................27

Form Devp Process..........................................................................................27

http://garethroberts.blogspot.sg/

Page 2: Oracle Preparation Document.doc

Forms Devp, Personalization & Customizations

Form Components

http://docs.oracle.com/cd/E18727_01/doc.121/e12900/T458979T458985.htm#I_ox2Doverfl

New Form Development with Sub Functions in Oracle Apps

http://erpschools.com/articles/sub-functions-in-oracle-application#13468329075222&87002::resize_frame|61-693

Query_Find Form http://erpschools.com/articles/query_find-form-in-oracle-apps#13486518137831&30880::resize_frame|61-693

For Other Personalizations

http://oraclemaniac.com/category/tech-stack/personalization-tech-stack/forms-personalization/

Using Message Directory in Form Personalization

http://oraclemaniac.com/category/tech-stack/personalization-tech-stack/forms-personalization/

Using Message dictionary in Forms Personalization

I have discussed using Message Dictionary in PL/SQL in a previous article. It allows a lot of flexibility in

churning out log messages or in the output. It also allows the administrator to change the message

later on without the need of modifying source code.

As a follow up to the previous article I have demonstrated below the usage of the Message Dictionary

in Forms personalization.

Demonstration

Responsibility: Application Developer

Page 3: Oracle Preparation Document.doc

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.

Page 4: Oracle Preparation Document.doc

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

Page 5: Oracle Preparation Document.doc

10

11 +---------------------------------------------------------------------------+

12

13 Writing file /d03/appltest/testappl/XXCUST/11.5.0/mesg/US187494.tmp

14Moving file /d03/appltest/testappl/XXCUST/11.5.0/mesg/US.msb to /d03/appltest/testappl/XXCUST/11.5.0/mesg/US187494.old.

15Moving 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                Request ID : 19187494

31          Number of copies : 0

32                   Printer : noprint

33

34 +--------------------------------------+

35

36 Finished executing request completion options.

Page 6: Oracle Preparation Document.doc

37

38 +---------------------------------------------------------------------------+

39 Concurrent request completed successfully

40 Current system time is 14-MAY-2012 16:57:53

41

42 +---------------------------------------------------------------------------+

Let’s 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

Page 7: Oracle Preparation Document.doc

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

Page 8: Oracle Preparation Document.doc

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.

Page 9: Oracle Preparation Document.doc

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.

Adding DFF fields in Custom Form

http://oraclemaniac.com/2012/08/15/how-to-add-a-descriptive-flexfield-dff-in-a-custom-oracle-apps-form/

How to add a Descriptive Flexfield (DFF) in a custom Oracle Apps form

In a previous article we have discussed how a custom DFF is registered in Oracle Apps. In this article I

have demonstrated the process to add the DFF to a custom form.

Step 1: Create the custom table

We have created a custom table with the following script,

01 CREATE TABLE xx_supplier_blacklist ( blacklist_id NUMBER NOT NULL PRIMARY KEY,

02                             supp_number VARCHAR2(30),

03                             supp_name VARCHAR2(240),

04                             address   VARCHAR2(1000),

05                             LOCATION VARCHAR2(2),

Page 10: Oracle Preparation Document.doc

06                             supp_lob      VARCHAR2(240),

07                             blklist_flag  VARCHAR2(3),

08                             reason_blklist  VARCHAR2(240),

09                             reason_details VARCHAR2(1000),

10                             date_blklist   DATE,

11                             date_remove  DATE,

12                             reason_blk_remove VARCHAR2(240),

13                             detail_reason_remove VARCHAR2(1000),

14                             linkage VARCHAR2(3) ,

15                             attribute_category  VARCHAR2(150),

16                             attribute1  VARCHAR2(240),

17                             attribute2  VARCHAR2(240),

18                             attribute3  VARCHAR2(240),

19                             attribute4  VARCHAR2(240),

20                             attribute5  VARCHAR2(240)

21                             )

22 /

We will use the attribute columns as our DFF segments

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.

Page 11: Oracle Preparation Document.doc

Step 3: Register the DFF

You will find the registration steps in this article

The registered DFF will be this,

Segments

Page 12: Oracle Preparation Document.doc

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.

Page 13: Oracle Preparation Document.doc

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.

Page 14: Oracle Preparation Document.doc

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

Page 15: Oracle Preparation Document.doc

Notice the DFF text item on the canvas.

Now create a procedure in the form as given below,

01 PROCEDURE xx_supplier_blacklist_dff (event VARCHAR2)

02 IS

03 BEGIN

04    IF (event = 'WHEN-NEW-FORM-INSTANCE')

05    THEN

06      fnd_descr_flex.define (BLOCK                         => 'XX_SUPPLIER_BLACKLIST', -- Name of the DFF

07                              FIELD                         => 'DFF',

08                              appl_short_name               => 'CUSTOM',

09                              desc_flex_name                => 'BLACKLIST_FLEX'

10                             );

11    ELSE

12       NULL;

13    END IF;

Page 16: Oracle Preparation Document.doc

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 following

line,1 FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');

Page 17: Oracle Preparation Document.doc

Save the form and compile it on the server.

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

The code in the procedure is,

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

Page 18: Oracle Preparation Document.doc

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

Page 19: Oracle Preparation Document.doc

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

Page 20: Oracle Preparation Document.doc

Form Tab

Form: Supplier Blacklist form

Save and close the form. Now the form is registered.

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).

Page 21: Oracle Preparation Document.doc

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,

Page 22: Oracle Preparation Document.doc

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).

Page 23: Oracle Preparation Document.doc

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.

Page 24: Oracle Preparation Document.doc

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,

Page 25: Oracle Preparation Document.doc

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/

Form Devp Process

FORM PROCESS

1)We Will download the TEMPLETE.fmb from AU_TOP\Resource Folder

Application Utilities

2)Open with Forms6i builder and delete the existing Block Canvas Window

3)Create New Block , Canvas , Window attach oracle apps Property classes

4)Develop the form as per client requirement

Page 26: Oracle Preparation Document.doc

Note:We will change the Property called "First Navigaction Data Block" as Datablock Name

in the Module Properties.

II)Customize folloiwng two triggers

1) Pre-Form -New Window Name

2) WHEN-NEW-FORM-INSTANCE -New form Name

3) APP_Custom package -New Window Name

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

9)Goto Applicaton Developer and create Form

10)create Function attach form to the function

11)Create Menu attach function menu

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 : .fmx name

Application Name : Application name where .fmx is located

Page 27: Oracle Preparation Document.doc

User Form Name : 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 : Any valid Name

Enter the Seqno : Unique Number

Prompt : Any Text

Function : Attach the User Function NAme whatever we have create

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

Page 28: Oracle Preparation Document.doc

11i & R12 Differences

11i Version 11.5.10.2

R12 Latest Version 12.1.3

AP

http://docs.oracle.com/cd/E18727_01/doc.121/e12900/T458979T458985.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,

Page 29: Oracle Preparation Document.doc

Module R12 R11i

AP

Sub ledger Accounting(SLA) No

Multi Organization Access Control (MOAC) No

* Supplier become as a TCA Party. * Supplier Define in AP.* Supplier Site as a TCA Party Site for each distinct Address * Supplier Contact copy For Each Supplier Site

Supplier HTML Form Supplier Oracle Form

Payment manager Batch Payment

* Invoice Lines as a new additional line added in Invoice screen. * Had only distributions line * Allocate freight and special charges are define to the lines on the invoice

* Allocation of freight and special charges are define at the distribution level only

GL

4c,  Currency, COA, Calendar, Account convention 3C Currency, COA, Calendar (Set of books)

Sub ledger Accounting(SLA) No

Multi Organization Access Control (MOAC) No

Advance Search of journal No

AR

Sub ledger Accounting(SLA) No

Multi Organization Access Control (MOAC) No

Customer master No

AP-AR Netting NoBalance forward billing Consolidated billing (Proxima payment term)

Credit card Charge back No

EB tax No

Automated Refunds No

Daily revenue No

Revenue Contingencies No

Deferred COGS and Revenue matching No

Legal Entity at transaction type and Batch source and Auto invoice No

Copy invoice No

FARoll back depreciation No

Sub ledger Accounting(SLA) NoMulti Organization Access Control (MOAC) No

CM* Bank and Branch become part of TCA Parties

* 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

* Internal Bank Account in Cash Management which is defines by a Legal Entity. Here the Operating units have their own rights * Bank Define At Operating Unit Level

http://dillipkumarjena.blogspot.sg/2012/09/11i-vs-r12-difference-module-wise.html

P2P Data Flow : http://dillipkumarjena.blogspot.sg/

Tables & Query : http://dillipkumarjena.blogspot.sg/2012/11/key-tables-for-oracle-purchase-and-p2p.html

Supplier Tables in R12 TCA: