Oracle 11i Concept – Multi Org

Any enterprise has several organization structures. These organizations interact with each other for various purposes. While interacting with other organizations data has to be secure and should be transferred to the correct organization.

What is Multi Org

Multi Org is a feature, which helps us to classify and define various organizations in such a way that hierarchy is maintained and data is secure across organizations. It also decides how transactions flow through different organizations and how those organizations interact with each other.

Types of Organizations

The various organizations that can be defined within Oracle Applications are as follows:

Business Group. The business group represents the highest level in the organization structure, such as the consolidated enterprise, a major division, or an operation company. Oracle Apps provides with a predefined Business Group ‘Setup Business Group’. Reliance Group of Companies is an example of Business Group.

GRE/Legal Entity. The company for which we prepare tax returns. You assign tax identifiers and other legal entity information to this type of organization. If there are several subsidiary companies for which tax returns are filed, each company is a separate legal entity. Reliance Group of Companies consists of several companies like Reliance Industries ltd, Reliance Info-comm, Reliance Energy ltd etc. Each company is a separate Legal Entity.

Note: The Set of Book can contain multiple Legal Entities.

Operating Unit. Each group company will have several branch offices involved with purchasing, order management, shipping execution etc. Each such branch will be an Operating Unit.

It could be a sales office, a division, or a department. An operating unit is associated with a legal entity.

For implementing Oracle Cash Management, Order Management and Shipping Execution, Oracle Payables, Oracle Projects, Oracle Purchasing, Oracle Property Manager, Oracle Receivables and Sales and Marketing Operating Unit is required.

Information is secured by operating unit for these applications. Each user sees information only for their operating unit.

Inventory Organization. An organization for which you track inventory transactions and balances, and/or an organization that manufactures or distributes products. Inventory organization is generally assigned to a manufacturing plant. An operating unit can also be an Inventory Organization. Many branches (operating units) might be Manufacturing Plants and will be attached to an Inventory/Warehouse. Such inventory/warehouses will be Inventory Organizations.

HR Organization. HR organizations represent the basic work structure of any enterprise. They usually represent the functional management, or reporting groups that exist within a business group.

Asset Organization. An asset organization is an organization that allows you to perform asset–related activities for a specific Oracle Assets corporate depreciation book. Any organization (legal entity, operating unit, inventory organization), which has Fixed Assets can be classified as Asset Organization. For implementing Oracle Assets, this type of organization is used.
Secure Access within Multi Org

An individual Operating Unit is assigned to an individual application Responsibility. To see and work with data that is relevant to a specific Operating Unit, users choose the appropriate Responsibility after logging on to Oracle Applications.

The current Multi-Org architecture utilizes database objects like Views to build a security layer that allows you to logically partition all your application data in one database, instead of physically partitioning data with multiple instances and even multiple application installations.

In earlier versions of Oracle Applications data partitioning was done using multiple instances and therefore installation had to be done several times for various operating units.

Note: All Multi Org tables in the database will be suffixed with ‘_ALL’.

HRMS Organization Model

The business group is the largest organization unit you set up in Human Resources to represent your enterprises as an employer. After defining one or more business groups for your enterprise, you set up one or more Government Reporting Entities (GREs) within each business group. The GRE is the organization that federal, state, and local governments recognize as the employer.

Needless to say, HR does not require Operating Units, Inventory Organization and Asset Organization.

Multi Org Setup

The following are the summarized steps for implementing Multi-Org in Oracle Applications or when converting from a Non Multi-Org environment to a Multi-Org environment.

1.1 Develop an Organization Structure

1.2 Define Set of Books

1.3 Define Locations

1.4 Define Business Groups (Optional)

1.5 Define Responsibilities

1.6 Associate Responsibilities with Business Groups

1.7 Define Organizations

1.8 Define Organization Relationships

1.9 Set MO: Operating Unit Profile Option

1.10 Convert to Multi-Org Architecture

1.11 Define Inventory Organization Security

1.12 Define Inter-company Relations


How to set Org_id at back-end

We have a API to set the org_id from the backend.


Note:- Org_id indicates the “Operating Unit” in the Business Structure.

How to I know what Org_id is set at back-end

We can use userenv function to know the Org_id set at backend.

select userenv(‘CLIENT_INFO’) from dual;

Why we need to set org_id at back-end

We usually, set org_id at back-end. So that we can get the org_id records from the Multi Organization views.

What happens if I try to query records from Multi-Origination views without setting Org_id at back-end

It will not fetch any records. As, “where” condition fails (org_id = Userenv(‘CLIENT_INFO’));

Note:- If you set org_id from back-end, then you get org_id value populated by above userenv function.

Is this Multi -Org concept is same for all the Oracle Application versions

No. Above Technical points are applicable only till 11i version. It is different in Release 12.

Unix Commonds and their Usage

1) Editing the FILE:-

*) To come to end of file:- G

*) To delete the single word(can be free space):- dw

*) to delete the current single char:- (Esc and x)

*) To delete the complete line:- dd

*) To right over in the file:- cw

*) To remove the case sensitive:- :set ic

*) To Enable the case sensitive:- :set noic

*) Copy the complete line:- yy

*) Paste what ever copied:- p

2) GUN ZIP the file:-

gzip file_name

Note:- While trying to download gunzip file from server to local machine it should be done in binary mode. Then it can exact using the wipzip software in WINDOWS Operating System.

After gzip, if we want to unzip the file then use the following.

gunzip file_name

2.1) To unzip or gunzip the file :-

gunzip file_name


gunzip XYZ_1.0_5.tar.gz

2.2) To untar the file:-

tar -xvf file_name


tar -xvf XYZ_1.0_5.tar

3) To run the strings for the spawand program:-

strings -a (shell_script_file_name) > (logfile.log)


strings -a GLPURGE > /home/partners-home/hex/preddy/phani1.log

3.1) Basic grep command:-


grep ‘DROP index’ adwork001.log > /home/partners-home/xyz/preddy/dropindex.txt

Note:- grep command is just like the search for some specfic word in your windows file.
In Windows Operating System, we use the (CTRL+F) and then we give the word we want to search. Similarly, grep is used for UNIX or LINUX Operating system. In the above Example, I am searching for the ‘DROP index’ Word in adwork001.log file. And I want all the finding of this search stored in some file. So, I have given the path and file name where it should save.

4) Specfic to some project:-

To check the number lst files:-

ls -altr *.lst | wc -l

Note:- If some folder have some specfic extension files, then we can count the number of that specfic extension files then we can use the above command. In the above example, I am searching for the ‘lst’ extension files count.

To check the number of sql files with hit files :-

grep ‘\.sql’ *.lst | wc -l

Note:- Say, we have some .sql files names in all the lst files in some folder. Then we can use the grep command to count the sql file names.

To check the number of files with hits in the lst file:-

grep ‘Number of files with hits : [1-9]’ *.lst

Note:- You can also give the count of the files with the range. In the above example, I have givne the range from 1 to 9. If it find any number from this range then, it will get in the count.

To create the file of the complete module :-

grep ‘\.sql’ *.lst > lst_sql_’module_name’.txt


grep ‘\.sql’ *.lst > lst_sql_gl.txt

Note:- The above example to do the search and to the search results in some given file name.

5) To find the file in the current folder and subfolder:-

find . -name ‘file_name*.sql’ -print


find -i . -name ‘poXWFUNT*.sql’ -print

Note:- POXWFUNT.sql is the file name which I want to search. ‘i’ in the above command indicates that, search should not be based on case sensitive.

6) To grep the file for a specific word:-

grep -i ‘WORD’ FILE_NAME > log_file_name


grep -i ‘ALTER table’ adwork001.log > altertable.txt

7) To Know the PORT number of Env file:-

setenv | grep PORT

Note:- Run the above command after login to Instance. And you have would have the read privileges for the file. This is mostly useful for people, who are working in the Oracle Application.

7.1) For specfic session we can change the variable value:-

setenv variable_name variable_value

Example :- The following was the current value.


(Used the following command to check the value (setenv | grep OBT)).


The above command has changed the value of the variable.


Note:- If you exit from the session and then variable value will be revert back.

8) To know the path of the log and out files of the application:-


There you will have the log and out folders.

You can also try the following command to know the value of the APPLCSF variable.

env | grep log

9) Turn-on the application server:-

./ start Instance name


./ start XYZ12

1) XYZ12 is the Instane name.
2) After turnning the Database and concurrent manager up. still the application front end will not open. The you need to run the above script from the applmgr user

To login to different user:-

sudo su – applmgr

Note:- applmgr is the superuser name. This username can depends on the DBA, what they have given at your Instance.

9.1) If you are getting 500 Internal error message after bounce back then try this:-

Try to restart your application and restart your manage and see if it resolve the issue.

For the 12 Release, the above solution may not work. After you cleared _pages in R12, you’ll need to recompile because the default mode is ‘justrun’ instead of ‘recompile’ as was in 11i.

I did the following while applmgr in my Instance XYZ12 env and the login now works:

1. cd $FND_TOP/patch/115/bin
2. ./ –compile –flush -p 2

(You can check if you are able to open the application or not). If you are still facing the issue then try rebounce the application and see if it resolve the issue).

3. /home/applmgr/ bounce xyz12

(./ bounce zyx12)

You need to run the above script in the applmgr user

sudo su – applmgr

10) To start or stop the Internal concurrent manager:-


./ start apps/apps

./ stop apps/apps

Note:- This need to be run from applmgr user

sudo su – applmgr

11) To stop the database or start the database:-

cd $ORACLE_HOME/appsutil/scripts/xyz12_server/

Note:- The above path is specfic to my server Instance.

To stop the database:- adstopdb.sql*

To start the database:- adstrtdb.sql*

Note:- This need to be run from Oracle user.

sudo su – oracle

12) Converting all the tabs to space in the file:-

By setting the following options in your ~/.vimrc file,
when you use tabs, spaces are actually entered into the file,
although it “feels” like there are tabs because backspaces work as they would with tabs.

You’ll never have to worry about differing tabstop standards again.
Try it out, I promise you’ll be completely sold!

set softtabstop=4
set expandtab
set shiftwidth=4

Note also that if you want to convert a file with tabs to all spaces, set the above options and then use:


13) To know the Operating system on server (unix):-



2007.08.06-3:18:03 preddy@oscar[6]/home/partners-home/xyz/phani/xyz_23Jul/abc/la/utils > uname


14) To know the Operating system on server from database:-

dbms_output.put_line(‘Port String: ‘||dbms_utility.port_string);

15) Admin utility to compile all the invalid objects:-

i) This utility is avilable for the applmgr user. Use the following command to login with applmgr user.

>>sudo su – applmgr

ii) Choose the Intance and then use the following command to run the adadmin utility.


{ Note:- It will ask for the $APPL_TOP path. If the default path is not the correct one then provide the correct path.
It will ask for the Log file name. (Default name willl be (adadmin.log)).
It will ask if you can be notified by email if a failure occurs. (Default will be set for NO).
It will ask for the Batchsize (Default is 1000).
It will ask for the correct database name.
It will ask to enter the password for your ‘SYSTEM’ ORACLE schema.(“manager” will be the password).
(manager password will be only one you enter manually. Rest of things you take the default values.)
It will ask to enter the ORACLE password of Application Object Library (default will be [APPS]).

iii) To will give the menu with different options.

We will choose the “Compile/Reload Applications Database Entities menu” option. It will be 3 option normally.

iv) To will again give the other set of menu optins.

We will choose “Compile APPS schema” option to compile all the Invalid objects in APPS schema.

(Note:- You can also use $ORACLE_HOME/rdbms/admin/utlrp.sql (which will compile all invalid objects thru SVRMGRL.)).

17) To know apps password:-

cd $ORACLE_HOME/reports60/server

more CGIcmd.dat

You will find userid=APPS/apps_pass@Instance_name

Note:- If you have the FTP access for server files. Then we can know the Apps password.

18) QUOTA:-

Say employees are allocated a certain amount of disk space on the file system for their personal files, say 1000Mb. If you go over your quota, you are given some ‘n’ days to remove excess files.

To check your current quota and how much of it you have used. For that you can use the following command.

> quota -v

19) DF:-

To find out how much space is left on the fileserver, use the following command.

> df .

20) DU:-

The du command outputs the number of kilobyes used by each subdirectory. Useful if you have gone over quota and you want to find out which directory has the most files. From your home-directory, use the following command.

> du -s *

The -s flag will display only a summary (total size) and the * means all files and directories.

21) GZIP:-

This reduces the size of a file, thus freeing valuable disk space. This is compress the file. Is it similar to the Winzip in the Windows Operating system.


> ls -l phani.txt

note the size of the file using ls -l , then to compress phani.txt, use the following command.

> gzip phani.txt

This will compress the file and place it in a file called phani.txt.gz

To see the change in size, use ls -l again.

To expand the file, use the gunzip command.

> gunzip phani.txt.gz

This is similar to the Unzip the file in your Windows Operating system.

22) ZCAT:-

zcat will read gzipped files without needing to uncompress them first.

> zcat phani.txt.gz

If the text scrolls too fast for you, pipe the output though less .

> zcat phani.txt.gz | less

23) FILE:-

File classifies the named files according to the type of data they contain, for example ascii (text), pictures, compressed data, etc.. To report on all files in your home directory, use the following command.

> file *

24) DIFF:-

This command compares the contents of two files and displays the differences. Say you have a file called file1 and you edit some part of it and save it as file2. To see the differences use the following command.

> diff file1 file2

25) ECHO:-

echo $variable_value

The value of the environment variable can get from the echo command.


echo $APPL_TOP

In the above command we get the APPL_TOP variable value set in the environment file. APPL_TOP is the environment variable in the environment file.

26) General Commands:-

Command Meaning
ls list files and directories
ls -a list all files and directories
mkdir make a directory
cd directory change to named directory
cd change to home-directory
cd ~ change to home-directory
cd .. change to parent directory
pwd display the path of the current directory
cp file1 file2 copy file1 and call it file2
mv file1 file2 move or rename file1 to file2
rm file remove a file
rmdir directory remove a directory
cat file display a file
less file display a file a page at a time
head file display the first few lines of a file
tail file display the last few lines of a file
grep ‘keyword’ file search a file for keywords
wc file count number of lines/words/characters in file
command > file redirect standard output to a file
command >> file append standard output to a file
command < file redirect standard input from a file
command1 | command2 pipe the output of command1 to the input of command2
cat file1 file2 > file0 concatenate file1 and file2 to file0
sort sort data
who list users currently logged in
* match any number of characters
? match one character
man command read the online manual page for a command
whatis command brief description of a command
apropos keyword match commands with keyword in their man pages
ls -lag list access rights for all files
chmod [options] file change access rights for named file
command & run command in background
^C kill the job running in the foreground
^Z suspend the job running in the foreground
bg background the suspended job
jobs list current jobs
fg %1 foreground job number 1
kill %1 kill job number 1
ps list current processes
kill 26152 kill process number 26152

Table level Data flow for Order to Cash Flow

In this blog I have highlight some of the KEY tables involved in Order to Cash table. There are lot of database table involves in this flow , but I have highlighted the key table and link between these tables.It help the consultant while desiging the reports &queries.

These tables are
















Few steps about complete Order to cash flow in Oracle Order Management

Few steps about complete Order to cash flow in Oracle Order Management.

* Create Order – Book It

* Go to &apos;Release Sales Order&apos;

o Set the Required fields as shown below

o Order = Unreleased

o Order Number = Enter Order #

o Clear Schedule Ship dates and Requested Dates

o Go to Inventoty Tab and Enter Warehouse , based on your setup it will pull all the information

o Press Concurrent Button

* Go To “Shipping transaction form”

o Enter Order Number, Press Find

o Makes sure Line status = Staged/Pick Confirmed

o Go to Delivery tab and Press “Ship Confirm&apos;

o Note Down Deliver #

o Press Ok


* Above step submit the concurrent programs, wait for Concurrent Program “Interface Trip Stop” to complete

* Goto Sales Order and Check Line Status ,It should be “Shipped”.

* Go to View > request . Submit Concurrent Program “Workflow background Process”

o with Item Type = OM Order Line

o Process Deferred = Yes

o Process Timeout = No.

* Query Order line again , Staus Sould be “Closed”

* System will Trigger the AutoInvoice concurrent Program OR you have to Manually submit it

* Goto Transaction (Receivable)

o Go to Find Window

o Enter Sales Order # in Sales Order Number Field

o Press Find

* System should dispaly your Invoice