Monday, October 22, 2007

Creating a Custom Application in Oracle Applications 11i

Print this post
Custom Applications are required if you are creating new forms, reports, etc.   
This allows you to segregate your custom written files from the standard seeded functionality that
Oracle Applications provide.
Customizations can therefore be preserved when applying patches or upgrades to your environment. 
1)  Make the directory structure for your custom application files.
               cd $APPL_TOP
               mkdir fz
               mkdir fz/11.5.0
               mkdir fz/11.5.0/admin
               mkdir fz/11.5.0/admin/sql
               mkdir fz/11.5.0/admin/odf
               mkdir fz/11.5.0/sql
               mkdir fz/11.5.0/bin
               mkdir fz/11.5.0/reports
               mkdir fz/11.5.0/reports/US
               mkdir fz/11.5.0/forms
               mkdir fz/11.5.0/forms/US 
               mkdir fz/11.5.0/$APPLLIB
               mkdir fz/11.5.0/$APPLOUT
               mkdir fz/11.5.0/$APPLLOG 
2)  Add the custom module into the environment
Apply ADX.E.1 and add the entry to topfile.txt as a standard product top entry .   
Customised environment variables can be added to AutoConfig by using the filename specificed by s_custom_file, 
which is then called from the APPSORA.env file. 
If using Forms Listener Servlet, you may also need to add $CUSTOM_TOP to formsservlet.ini in
3)  Create new tablespace for database objects
     create tablespace FZ datafile '/u01/oracle/visdata/fz.dbf' size 10M default storage(initial 10k next 10k)
4)  Create schema
               create user fz identified by fz
                               default tablespace fz
                               temporary tablespace temp
                               quota unlimited on fz
                               quota unlimited on temp;
               grant connect, resource to fz;
5)  Register your Oracle Schema. 
     Login to Applications with System Administrator responsibility
     Navigate to Application-->Register
               Application = FZ Custom
               Short Name  = FZ
               Basepath    = FZ_TOP
               Description = FZ Custom Application
6)  Register Oracle User
     Naviate to Security-->Oracle-->Register
               Database User Name = FZ
               Password           = FZ
               Privilege          = Enabled
               Install Group      = 0
               Description        = FZ Custom Application User
7)  Add Application to a Data Group
     Navigate to Security-->Oracle-->DataGroup
               Data Group  = FZGroup
               Description = FZ Custom Data Group
      Click on "Copy Applications from" and pick Standard data Group, then add the following entry.
               Application = FZ Custom
               Oracle ID   = APPS
               Description = FZ Custom Application
8)  Create custom request group
     This will act as a placeholder for any custom reports we wish to make available for the Custom Responsibility 
      Navigate to Security-->responsbility-->Request
               Group       = FZ Request Group
               Application = FZ Custom
               Code        = FZ
               Description = FZ Custom Requests
       We will not define any requests to add to the group at this stage, but you can add some now if required.
9)  Create custom menu
      This will act as a placeholder for any menu items we wish to make available for the Custom Responsibility. 
      We will create two menus, one for Core Applications and one for Self Service.
       Navigate to Application-->Menu
               Menu           = FZ_CUSTOM_MENU
               User Menu Name = FZ Custom Application
               Menu Type      = <leave blank>
               Description    = FZ Custom Application Menu
               Seq         = 100
               Prompt      = View Requests
               Submenu     = <leave blank>
               Function    = View All Concurrent Requests
               Description = View Requests
               Seq         = 110
               Prompt      = Run Requests
               Submenu     = <leave blank>
               Function    = Requests: Submit
               Description = Submit Requests
               Menu           = FZ_CUSTOM_MENU_SSWA
               User Menu Name = FZ Custom Application SSWA
               Menu Type      = <leave blank>
               Description    = FZ Custom Application Menu for SSWA 
10)  Create new responsibility.   One for Core Applications and One for Self Service (SSWA)
       Navigate to Security-->Responsibility-->Define
               Responsibility Name       = FZ Custom
               Application               = FZ Custom
               Responsibility Key        = FZCUSTOM
               Description               = FZ Custom Responsibility
               Available From            = Oracle Applications
               Data Group Name           = fzGroup
               Data Group Application    = FZ Custom
               Menu                      = FZ Custom Application
               Request Group Name        = FZ Request Group
               Responsibility Name       = FZ Custom SSWA
               Application               = FZ Custom
               Responsibility Key        = FZCUSTOMSSWA
               Description               = FZ Custom Responsibility SSWA
               Available From            = Oracle Self Service Web Applications
               Data Group Name           = fzGroup
               Data Group Application    = FZ Custom
               Menu                      = FZ Custom Application SSWA
               Request Group Name        = FZ Request Group
11)  Add responsibility to user
       Navigate to Security-->User-->Define
       Add FZ Custom responsibility to users as required.
12)  Other considerations
       You are now ready to create your database Objects, custom Reports, Forms, Packages, etc
Create the source code files in the FZ_TOP directory appropriate for the type of object.   For example forms
would be located in $FZ_TOP/forms/US or package source code in $FZ_TOP/admin/sql for example.
Database Objects, such as tables, indexes and sequences should be created in the FZ schema, then you need to 
               a) Grant all privilege from each custom data object to the APPS schema.
                               For example :  logged in as FZ user
                                              grant all privileges on myTable to apps;
               b) Create a synonym in APPS for each custom data object
                               For example :  logged in as APPS user
                                              create synonym myTable for fz.myTable;
Other database objects, such as views and packages should be created directly in the APPS schema.


abdulqader said...

I have a question here, why we should create views and packages in apps schema?

Anonymous said...


How should we create a custom top in R 12
Are all the steps same as 11i


Anonymous said...

Hi Famy,

How to create Database link Oracle Applicarion .


Anonymous said...

Hi, We have created a custom top by following the steps mentioned in the blog.When trying to run any custom concurrent program using the custom application, the program is getting errored out with message as "PLS-00201: identifier 'FND_CONCURRENT.INIT_SQL_REQUEST' must be declared"

Can you please let me know what is the problem ?