Creating a Custom Application in Applications 11i
a) Grant all privilege from each custom data object to the APPS schema.
b) Create a synonym in APPS for each custom data object
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 xxmz
mkdir xxmz/11.5.0
mkdir xxmz/11.5.0/admin
mkdir xxmz/11.5.0/admin/sql
mkdir xxmz/11.5.0/admin/odf
mkdir xxmz/11.5.0/sql
mkdir xxmz/11.5.0/bin
mkdir xxmz/11.5.0/reports
mkdir xxmz/11.5.0/reports/US
mkdir xxmz/11.5.0/forms
mkdir xxmz/11.5.0/forms/US
mkdir xxmz/11.5.0/$APPLLIB
mkdir xxmz/11.5.0/$APPLOUT
mkdir xxmz/11.5.0/$APPLLOG
mkdir xxmz
mkdir xxmz/11.5.0
mkdir xxmz/11.5.0/admin
mkdir xxmz/11.5.0/admin/sql
mkdir xxmz/11.5.0/admin/odf
mkdir xxmz/11.5.0/sql
mkdir xxmz/11.5.0/bin
mkdir xxmz/11.5.0/reports
mkdir xxmz/11.5.0/reports/US
mkdir xxmz/11.5.0/forms
mkdir xxmz/11.5.0/forms/US
mkdir xxmz/11.5.0/$APPLLIB
mkdir xxmz/11.5.0/$APPLOUT
mkdir xxmz/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 (follow the existing model in the file) 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 $APACHE_TOP/Jserv/etc
3. Create new tablespace for database objects
create tablespace xxmz datafile '/emea/oracle/visuk09/visuk09data/xxmz.dbf' size 10M default storage(initial 10k next 10k)
4. Create schema
create user xxmz identified by xxmz
default tablespace xxmz
temporary tablespace temp
quota unlimited on xxmz
quota unlimited on temp;
grant connect, resource to xxmz;
default tablespace xxmz
temporary tablespace temp
quota unlimited on xxmz
quota unlimited on temp;
grant connect, resource to xxmz;
5. Register your Oracle Schema.
Login to Applications with System Administrator responsibility
Navigate to Application-->Register
Application = xxmz Custom
Short Name = xxmz
Basepath = xxmz_TOP
Description = xxmz Custom Application
Navigate to Application-->Register
Application = xxmz Custom
Short Name = xxmz
Basepath = xxmz_TOP
Description = xxmz Custom Application
6. Register Oracle User
Navigate to Security-->Oracle-->Register
Database User Name = xxmz
Password = xxmz
Privilege = Enabled
Install Group = 0
Description = xxmz Custom Application User
Database User Name = xxmz
Password = xxmz
Privilege = Enabled
Install Group = 0
Description = xxmz Custom Application User
7. Add Application to a Data Group
Navigate to Security-->Oracle-->DataGroup
Data Group = xxmzGroup
Description = xxmz Custom Data Group
Click on "Copy Applications from" and pick Standard data Group, then add the following entry.
Application = xxmz Custom
Oracle ID = APPS
Description = xxmz Custom Application
Data Group = xxmzGroup
Description = xxmz Custom Data Group
Click on "Copy Applications from" and pick Standard data Group, then add the following entry.
Application = xxmz Custom
Oracle ID = APPS
Description = xxmz 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 (which is defined at a later stage)
Navigate to Security-->responsibility-->Request
Group = xxmz Request Group
Application = xxmz Custom
Code = xxmz
Description = xxmz Custom Requests
We will not define any requests to add to the group at this stage, but you can add some now if required.
Navigate to Security-->responsibility-->Request
Group = xxmz Request Group
Application = xxmz Custom
Code = xxmz
Description = xxmz 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 (which is defined at a later stage) We will create two menus, one for Core Applications and one for Self Service.
Navigate to Application-->Menu
Menu = xxmz_CUSTOM_MENU
User Menu Name = xxmz Custom Application
Menu Type =
Description = xxmz Custom Application Menu
Seq = 100
Prompt = View Requests
Submenu =
Function = View All Concurrent Requests
Description = View Requests
Seq = 110
Prompt = Run Requests
Submenu =
Function = Requests: Submit
Description = Submit Requests
Menu = xxmz_CUSTOM_MENU_SSWA
User Menu Name = xxmz Custom Application SSWA
Menu Type =
Description = xxmz Custom Application Menu for SSWA
Navigate to Application-->Menu
Menu = xxmz_CUSTOM_MENU
User Menu Name = xxmz Custom Application
Menu Type =
Description = xxmz Custom Application Menu
Seq = 100
Prompt = View Requests
Submenu =
Function = View All Concurrent Requests
Description = View Requests
Seq = 110
Prompt = Run Requests
Submenu =
Function = Requests: Submit
Description = Submit Requests
Menu = xxmz_CUSTOM_MENU_SSWA
User Menu Name = xxmz Custom Application SSWA
Menu Type =
Description = xxmz 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 = xxmz Custom
Application = xxmz Custom
Responsibility Key = xxmzCUSTOM
Description = xxmz Custom Responsibility
Available From = Oracle Applications
Data Group Name = xxmzGroup
Data Group Application = xxmz Custom
Menu = xxmz Custom Application
Request Group Name = xxmz Request Group
Responsibility Name = xxmz Custom SSWA
Application = xxmz Custom
Responsibility Key = xxmzCUSTOMSSWA
Description = xxmz Custom Responsibility SSWA
Available From = Oracle Self Service Web Applications
Data Group Name = xxmzGroup
Data Group Application = xxmz Custom
Menu = xxmz Custom Application SSWA
Request Group Name = xxmz Request Group
Responsibility Name = xxmz Custom
Application = xxmz Custom
Responsibility Key = xxmzCUSTOM
Description = xxmz Custom Responsibility
Available From = Oracle Applications
Data Group Name = xxmzGroup
Data Group Application = xxmz Custom
Menu = xxmz Custom Application
Request Group Name = xxmz Request Group
Responsibility Name = xxmz Custom SSWA
Application = xxmz Custom
Responsibility Key = xxmzCUSTOMSSWA
Description = xxmz Custom Responsibility SSWA
Available From = Oracle Self Service Web Applications
Data Group Name = xxmzGroup
Data Group Application = xxmz Custom
Menu = xxmz Custom Application SSWA
Request Group Name = xxmz Request Group
11. Add responsibility to user
Navigate to Security-->User-->Define
Add xxmz Custom responsibility to users as required.
Add xxmz 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 xxmz_TOP directory appropriate for the type of object. For example forms would be located in $xxmz_TOP/forms/US or package source code in $xxmz_TOP/admin/sql for example.
Database Objects, such as tables, indexes and sequences should be created in the xxmz schema, then you need to
Create the source code files in the xxmz_TOP directory appropriate for the type of object. For example forms would be located in $xxmz_TOP/forms/US or package source code in $xxmz_TOP/admin/sql for example.
Database Objects, such as tables, indexes and sequences should be created in the xxmz schema, then you need to
a) Grant all privilege from each custom data object to the APPS schema.
For example: logged in as xxmz user
grant all privileges on myTable to apps;
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 xxmz.myTable;
Other database objects, such as views and packages should be created directly in the APPS schema.
Also refer the blog post: How to build an Application in oracle apps
create synonym myTable for xxmz.myTable;
Other database objects, such as views and packages should be created directly in the APPS schema.