You are on page 1of 12

MULTI - ORG

What is multi org architecture?


A. The multi-org architecture is meant to allow multiple companies or subsidiaries to
store their records within a single database. The multiple organization architecture
allows this by partitioning data through views in the APPS schema. Multi-org also
allows you to maintain multiple sets of books. Implementation of multi-org generally
includes defining more than one Business Group.

How do I know if I am using multi org?


A. Run the SQL statement:
Select multi_org_flag from fnd_product_groups;

The result 'Y' means your database is setup for multi-org.

What relationships can be defined in a multi org environment?


A. Relationships are defined among inventory organizations, operating units, legal
entities, business groups, and sets of books to create a multilevel company
structure:
Business Groups separate major segments of a business. Each can have its own set
of books. Each Group will also have a structure of other organizations classifications
assigned to it.
Legal Entities post to a Set of Books
Operating Units are part of a Legal Entity
Inventory Organizations are part of an Operating Unit
Inventory Organizations define and maintain items used by other manufacturing
modules (Order Entry, Purchasing, MRP, etc.). They also collect and pass data to the
Financials modules.

I want to setup additional organizations. Do I have to setup multi-org?


A. No, you do not have to setup multi-org to have multiple organizations. Multi-org
is only required if you intend to have multiple sets of books.

Is there any documentation on how to setup an organization?


A. Refer to "Oracle Manufacturing Implementation Manual" part#A50765.
Refer to "Multiple Organizations in Oracle Applications" part#A58478 for Release 11
and part#50771 for Release 10.
Also refer to note 76440.1 or OSS802 for Organization setup steps.

When my organization hierarchy changes, can I move an organization from


one set of books or legal entity to another?
A. No, you should not try to move an organization from one set of books or legal
entity to another because your data may not be valid for the new set of books or
legal entity. Instead, you should disable the old organization and create a new
organization for the appropriate set of books or legal entity. The new organization
will contain your new data and the disabled organization will act as an "old" or "
history" entity that stores past transactions.

How can I setup a child org to be its own costing organization?


A. Steps:
Change the attribute control for "default category set" to organization level
Change the attribute control for "costing enabled" to organization level
Change the attribute control for "inventory asset value" to organization control
Then you can make a child organization it's own costing organization by entering
the organization name in the column labeled "Costing Organization"

How can I define organization restriction?


A. Use the Organization Access form (INVSDORA) to restrict the list of organizations
displayed for each responsibility level. Refer to Oracle Inventory User's Guide for
steps and important notes. **WARNING** --- If you populate any rows in this form,
you MUST populate a row for EACH responsibility that requires access to that
Organization.

What responsibility do I need to use to setup organization?


A. Use the General Ledger responsibility to define the Set of Books. Use the
Inventory Responsibility to define Organizations and other related information such
as Inventory Key Flex-fields, Locations, Workday calendar, other Organization
Classifications, and other inventory information.

What are the main profile options relating to Organization setup and what
are they used for?
A.
HR: User Type = HR User
This is necessary to allow the Inventory responsibility to complete the organization
setup. Setting the profile to a value of 'User' as opposed to 'Payroll & User' will
restrict the Inventory user from accessing any Payroll information if Oracle Payroll
is installed.

HR: Business Group = {the users Business Group name}

This points the responsibility to the appropriate Business Group. When multiple
Business Groups are defined, you must associate each responsibility with one and
only one Business Group. A responsibility can not see organization data from more
than one Business Group.

MO: Operating Unit = {the users Operating Unit name}

Used primarily in a multiorg environment. This points the responsibility to the


appropriate Operating Unit. Set the site level to the desired default operating unit. If
there is more than 1 Operating Unit Defined, this profile option must be set at the
responsibility level for each responsibility.

===================================================
=====================

RELATED DOCUMENTS
-----------------
Organization Setup Patchlist: Note 108930.1
Organization Setup Steps: Note 76440.1
Organization Setup Trouble Shooting: Note 109668.1

===================================================
=====================

1. Description of problem (what is the issue, expectations, actions taken to expect


results) including errors messages, upgrade or new install.

2. Steps to reproduce issue including navigation path.


3. Version of the following files and forms:
Define Organization form PERWSDOR
Organization Parameters form INVSDOIO
Location form PERWSLOC
Organization Access form INVSDORA

4. In which instance(s) is this issue occurring (test/prod/both)?

5. When was the last time this function/process worked, and what has changed
since that time?

6. List which patch set level you are currently on for this application and any other
recent patches or customizationswhich could affect this issue?

7. How many organizations are defined?

8. Using the Define Organization form, what Organization classifications are shown:
A. Business Group
B. GRE / Legal entity
C. Operating Unit (required for multi-org only)
D. Inventory Organization:
(Select the 'Others' button for the following information:}
1. Under Accounting Information has the following been entered:
Set of Books, Legal Entity, Operating Unit (dependent)
2. Under Inventory Information has the following been entered; Org Code, Item
Master Org and Calendar, costing Org and method, and Account information
(this is located in the costing, inter-org, and other accounts zones), other settings
are optional based on the features the customer intends to use.

9. Profile Options to check:


HR:User Type = HR User
HR:Business Group = <Users Business Group>
MO:Operating Unit = <Users Operating Unit>

10. Organization Access - If this form is used, the org has to be defined for all
responsibilities using the organization in question. Has this been completed?

TROUBLE SHOOTING
----------------------------------------------------------------------------
Q1. Defining new organization and getting these errors when saving:

frm-40735 pre insert trigger raised unhandled exception ora-06512


ora-06512: at "apps.fnd_flex_key_api" , line 2548
ora-06512: at "apps.pjm_install", line 198
ora-06512: at "apps.pjm_install", line 070
ora-06512: at line 1

This can be fixed two ways.

A1(a). Apply patch 851461.

A1(b). If the user wants to set up the Master Inventory organization as projects
enabled. Follow the steps below:
Navigate to Inventory/setup/organizations/parameters, setup the projects alternative
region as project enabled (and cost collection enabled if appropriate). Save.

The child organization should now save without any difficulty. See also Note
1018012.102

Q2. Newly defined organization is not showing on the List Of Values (LOV) when
querying in other forms such as Organization PERWSDOR, or Location PERWSLOC.

A2. Was the correct responsibility used to define the organization?


Make sure the responsibility is set to the appropriate operating unit by setting the
MO: Operating Unit profile option for each responsibility. See also New Organizations
Do Not Show in List of Values.

If this is a fresh install, the responsibility used to define an organization must be


assigned to the appropriate business group. Ensure that th e responsibility points to
correct Business Group (HR:Business Group Profile) before defining the organization.
The new organization will only be visible in the business group assigned to the
responsibility that was used to create the organization.

Q3. The organization form, PERWSDOR, does not show set of books information?

A3. The legal entity is a higher level than set of books; therefore, this field should
be entered first. This will enable the set of books values to be listed. **Note: The set
of books must be tied to the legal entity before proceeding.

Steps:
Setup/ organizations/organizations form
Select an Inventory organization from the organization classifications zone.
Click "Others" button and select accounting information.
Click in the flexfield window.
The Accounting Information window appears enter the Legal Entity before the Set of
Books field.
See also Note 1061426.6

Q4. Setting Up Inventory Organization and attempting to access the Accounting


Information gives an error: "Value 1 = Invalid".

A4. This error occurs when the Set of Books for the Legal Entity Accounting has not
been defined for the GRE/Legal Entity organization classification.

Steps:
Inventory/Setup/Organization/Organization choose organization and then GRE/Legal
Entity classification.

Click on "Others" button and choose Legal Entity Accounting from the list.
When form appears place cursor in the Set of Books field and choose the correct set
of books from the List of Values.

Save this change. Now navigate back to the Inventory Organization classification
and click "Others" and pick the Accounting Information. The error should no longer
occur and the Set of Books field should now be populated. See also Note 1056838.6
Q5. When navigating to the Location Form (PERWSLOC), the following error occurs
when the form opens: HR_50022_USER_TYPE_NOT_SET

A5. Issue is resolved by defining the HR: User Type system profile option.

Login as System Administrator and navigate to Profile -> System.


Check the Site and Application box and populate the Application field with Oracle
Inventory. Then place the cursor in the Profile field and enter HR:User% and click
Find. On the System Profile Values form, click on the List of Values in the Application
field and select HR User. Save changes, exit application, and log back in. See also
Note 1059521.6/ 2105360.6

Q6. Several organizations have been setup but they do not appear in any list of
values. Also when attempting to define Organization Parameters specifically, the
calendars that have been defined do not appear in a List of Values.

A6. The workday calendar needs to be built.

After setting up the Workday Calendar, it is necessary to compile or " Build" the
workday calendar. If this is not done, the calendar cannot be selected in the
Calendar field in Setup/Organization/Organization Parameters. Therefore,
Organization Parameters setup cannot be completed and the organization in
question will not appear in a List of Values. See also Note 1060857.6/ 2106716.6

Q7. How can I build or extend a calendar for the next few years and how is it
assigned to the organization?

A7. Inventory/Setup/Organizations/Calendar -> query up the calendar that you have


assigned to your organizations and then change the 'To' date in the section
Calendar Date Range. Then go to Special Menu/Build to build the calendar.
Then navigate to Inventory/Setup/Organizations/Parameters. Go to the Calendar
Field and do a List Of Values. Select/reselect the desired calendar and then Save
your work.

If changes are made to the calendar, then it is not necessary to change the calendar
that is assigned to the organization. Simply reselect the calendar name in the
parameters form and save it. Changes to the exception list of a calendar can be
made any time that they are needed, but the calendar should be re-built after
making any changes to it.

Q8. Unable to create a new Organization with costing method "AVERAGE COSTING"
because the only option to choose from is "Standard" in Release 10.

A8. Apply patches 693499(client), and 693561(server). Alternatively, apply INV


patchset C or higher. See also Note 1073927.6/ 2119527.6

Q9. Trying to build the workday calendar and the concurrent request gets error:
Ora-01854: julian date must be between 1 and 5373484.
As per the log this occurs when building the shift calendar portion of the process.

A9. This is fixed by applying patch 840000, which will update your module
bmcpcl.opp to version 50.54. See also Note 1067645.6/ 2113405.6

Q10. The organization parameters form will not allow deletion of demand class.
A10. Demand class information is used for ATP and MRP planning, this information
updates a number of tables involved in planning and forecasting. Current
functionality of form does not allow deletion of demand class for this reason. See
also Note 1061435.6/ 2107295.6.

What are the common concurrent manager issue in applications release 10?

Common Concurrent Manager Issues in Release 10

The concurrent manager is the heart of background processing within Oracle


Applications, and is by no means trivial to control or diagnose. This bulletin attempts
to pull together common problems encountered by the concurrent manager. It is
arranged first by error number, and then follows with a list of more general solutions
to problems.

Error: APP-00902 usdsop cannot redirect standard output

1.Make certain that the OS login for the user trying to start the concurrent manager
is the owner of the applications code, or has been given the appropriate permission
to run startmgr and batchmgr. This can be done by a) making the startmgr script
setuid for applmgr, b) changing the group permissions on the scripts and placing
users any users in that group who should be able to bring up the concurrent
manager.

2.Check to see that the permissions are correct on all of the log directories.

a) If $APPLCSF is set so that log and out files are written to a common directory, then
make sure the user can write to $APPLCSF/$APPLLOG.

b) Check the permissions on $FND_TOP/$APPLLOG. This should be done whether or


not $APPLCSF is set because the internal manager log file will always be written to
$FND_TOP/$APPLLOG.

c) If $APPLCSF is not set, check the permissions on all of the $<prod>_TOP/


$APPLLOG directories. Note: Although the log directories are not used when
$APPLCSF is set, they must still exist under each product.

3.Check that the value of $APPLLOG is less than 8 characters in length.

Error: APP-00912 Child process XXXXX exited with status 0. Manager not activated.

The internal concurrent manager will only start up those managers which have a
control code of A (for Activate) or R (for restart). Login to the applications with the
System Administrator responsibility and follow the menu path: \Navigate
Concurrent Manager Administer. For each manager which needs to be started, tab
over to the Control column and select Activate. You will still see the above message
for any managers not activated and, although listed in the logfile, it is not a
critical error. Exiting with status 0 is an indication that a program exited cleanly.
See chapter 8 of the System Administration manual for more information.

Error: APP-00988 ORACLE error encountered.

This is a generic error and precedes an Oracle error. See the section on ORACLE
errors for specific examples.
Error: APP-01080 afpeot: Cannot initialize concurrent request information for
request ID XXXX.

1. Check that APPLLOG, APPLOUT, and if set, APPLCSF, are pointing to valid
directories. If APPLCSF is not set, then then there must be a sub-directory for
$APPLLOG and $APPLOUT under each <product>_TOP directory. Shutdown the
concurrent manager, start with a clean environment (it may be easiest to logout and
back in again, and rerun the APPLSYS.env file), and bring the concurrent manager
up again.

NOTE: The account that started the concurrent manager must have privilege to read
and write to the APPLLOG and APPLOUT sub-directories.

2. The environment variable REP_PATH should only include $AU_TOP/$APPLPLS. In


previous releases it pointed to other directories, and by default when the
APPLSYS.env file is created it sets REP_PATH to also append previous values of the
variable to itself (REP_PATH=$AU_TOP/$APPLPLS:$REP_PATH). Therefore, if the
environment file is read several times before starting the concurrent manager,
REP_PATH grows to be longer than a single directory path, even though it is the
same directory being listed multiple times.

Error: APP-01086 Can not set profile option value

Check that the correct $ORACLE_SID, or $TWO_TASK, is being pointed to, and also
check that $FNDNAM and $GWYUID are correct.

Error: APP-01114 AFPCAL received failure code while running CPMGR

This is a generic error message which is usually at the end of a list of several
applications errors. These include but are not limited to:

1. APP-01227 XXXXXX encountered ORA-XXXX

a. AFPCMT encountered ora-3114: not connected to oracle

Check to make sure the database is actually up, and that the correct ORACLE_SID is
being used.

b. APP-01227 AFPCSQ encountered ORA-1005: null password

Check to see that the database is up and the values are correct for ORACLE_SID,
FNDNAM, and GWYUID. Check the PMON method being used by the concurrent
manager. Often using the RDBMS method will avoid these errors.

c. APP-01227 AFPGCP encountered oracle error SQL-02112 select into returns too
many rows

Check that there is only one row in sys.dual and system.dual.

d. APP-01227 AFPGMG encountered oracle error ORA-00923: FROM keyword not


found where expected

i. Check the permission on the $APPLLOG directories. Note that they need to be
correct for all the $APPLLOG directories, and not just under $FND_TOP.
ii. If the sql statement being executed involves recursive SQL, this could be base
bug 246213.

iii. Check the pmon method being used, and try using the LOCK pmon method
instead.

2. If there is no log file at all, but this error message appears when trying to start the
concurrent manager, check the following:

a. The permissions are correct on all the $APPLLOG directories, and they actually
exist. This includes each of the $<prod>_TOP directories, and not just FND_TOP.

b. There aren't any terminated requests in the table FND_CONCURRENT_REQUESTS.


Execute the following SQL statement as the applsys user:

select count(*) from fnd_concurrent_requests where status_code='T';

c. Although the startmgr script is supposed to clean out any requests that have a
status of 'Terminating', it occasionally balks before doing so. The solution is to
either remove these requests from the table:

delete from fnd_concurrent_requests where status_code='T'; or change the status to


'Terminated':

update fnd_concurrent_requests set status_code='X', phase_code='C' where


status_code='T';

3. APP-01227 AFPCMT encountered an ORACLE error. ORA-01012: not logged on


APP-01227 AFPSMG encountered an ORACLE error. ORA-01012: not logged on
APP-01227 AFPGSR encountered an ORACLE error. ORA-03113: end-of-file on
communication channel

Most likely the database was shutdown or crashed while the concurrent manager
was still running. Shutdown the concurrent managers, bring up the database, and
then bring the concurrent managers back up.

Error: APP-01125 Concurrent manager encountered an error while running XXXX

Check that the executable XXXX actually exists, and is in the correct location.
Attempt to run the executable from the command line and see if the problem
persists. Specifically compare the arguments passed on the command line and
the arguments used by the concurrent request (this should be in the request logfile).
Finally, try relinking the executable.

Error: APP-01144 Error while finding the status of the concurrent manager.

1. You may have a corrupt or missing view, or be missing some grants and/or
synonyms. Check that the applsys user has access to: V$PROCESS, V$SESSION,
DBMS_LOCK, DBMS_PIPE, STANDARD. Other Applications oracle ids also need access
to these views and packages. If the view is in fact missing or invalid, rebuild it. From
the operating system, as the applmgr user type: FNDLIBR FND FNDCPBWV
applsys/fnd SYSADMIN 'System Administrator' SYSADMIN or as the applsys user run
the following SQL statement
Create View Fnd_V$Process as (Select P.Addr, P.Pid, S.Process Spid, S.Osuser
Username, P.Serial#,
S.Terminal, S.Program, P.Background, P.Latchwait, S.Lockwait From V$process P,
V$session S Where P.Addr = S.Paddr );

2. As the applsys user run the following SQL statement:

select object_name from user_objects where status='INVALID';

If any of the FND_CONCURRENT% objects are invalid, run the following PL/SQL
scripts (from $FND_TOP/install/sql) as the applsys user:

AFPFPROS.pls, AFPFPROB.pls, AFCPDCPS.pls, AFCPDCPB.pls, AFCPUTLS.pls,


AFCPUTLB.pls

NOTE: Run the scripts in the above order.

Error: APP-01167 The internal concurrent manager encountered an error.

This is another generic error which may be followed by Oracle errors, or:

APP-01054 Distributed concurrent manager enabled, lock PMON method requested


APP-01114 AFPCAL received failure code while running FNDCPMGR

Make certain that $APPLDCP is set to off or, if using distributed concurrent
processing, change the PMON method to LOCK by running afimpmon.sql from
$FND_TOP/sql.

Error: APP-01266 in AFPPRT

Check that there aren't any requests with a status code of 'Terminating' in the table
fnd_concurrent_requests by executing the following SQL statement as the applsys
user:

select count(*) from fnd_concurrent_requests where status_code='T';

If this returns anything other than 0, then run:

delete from fnd_concurrent_requests where status_code='T';


OR
update fnd_concurrent_requests set status_code='X', phase_code='C' where
status_code='T';

Error: ORA-12705 in FDXLNG

This occurs because the value of nls_language is NULL in the table


FND_CONCURRENT_REQUESTS. To fix this make certain that the environment
variable $APPLLNG is set and correct (usaeng in most cases), and also execute the
following SQL statement as the applsys user:

Update Fnd_Concurrent_Requests
Set Nls_Language = Substr(Userenv('Language'),1,
Instr(Userenv('LANGUAGE'),'_')-1),
Nls_Territory = Substr(Userenv('Language'),
Instr(Userenv('LANGUAGE'),'_')+1,
Instr(Userenv('LANGUAGE'),'.')-
Instr(Userenv('LANGUAGE'),'_')-1)
Where Nls_Language is null or Nls_Territory is NULL;

ORA-942 Table or view does not exist (when starting up the ICM)

1. Check that the APPLDCP is set to off, unless parallel concurrent processing is
being used. Specifically DBMS_LOCK needs to be accessible by the applsys user
when APPLDCP is ON.

2. Check that the view FND_V$PROCESS exists, and that the applsys user has access
to V$PROCESS, V$SESSION, DBMS_LOCK, DBMS_PIPE, STANDARD, and, if using
distributed concurrent processing, V$THREAD.

1. The concurrent manager continuously spawns new processes although there is no


obvious activity in terms of concurrent requests.

Change the PMON method to OS. This can be done by running afimpmon.sql from
$FND_TOP/sql as the APPLSYS user. Be sure to shut down the concurrent manager
before running this script. WARNING: Using OS PMON method is not support in
10.4.

2. The concurrent manager starts from the command line, but not from the
Administer Concurrent Manager screen.

a. This is generally a problem with permissions on the $FND_TOP/$APPLLOG


directory. Check to make sure that its writable by the user that started the
concurrent manager, and even more importantly make sure the directory is not a
symbolic link. When starting the manager from within Applications, it incorrectly
verifies that this directory exists, but a symbolic link returns the wrong response to
the query.

b. As the applsys user run the following SQL statement:

select object_name from user_objects where status='INVALID';

If any of the FND_CONCURRENT% objects are invalid, run the following PL/SQL
scripts (from $FND_TOP/sql) as the applsys user:

AFPFPROS.pls, AFPFPROB.pls, AFCPDCPS.pls, AFCPDCPB.pls, AFCPUTLS.pls,


AFCPUTLB.pls

NOTE: Run the scripts in the above order.

3. When starting the concurrent manager FNDLIBR dumps core.

Try relinking FNDLIBR, if that does not check to see if there are pending requests. If
possible, make certain there aren't any jobs in pending status, and then try to bring
the manager up. This is especially true if there are a high number of requests with a
status of pending because the concurrent manager reads in all pending requests on
startup. To delete pending requests execute the following statement as APPLSYS
user:

4. The specialization rules that were just recently defined are not taking effect.
Try bouncing the CM to make sure that all the current rules are being implemented.

5. On VMS starting the manager results in an error indicating that the user should
verify they are logged in as the applmgr user, when in fact the user already is. Make
sure that the queue for concurrent requests exists. By default this queue is called
FND$STDMGR.

6. When navigating to the concurrent requests screen (\Navigate Concurrent


Requests from the System Administrator Responsibility) it justs sits there and hangs.

This is most likely due to base bug 246213. Make certain this patch has been
applied. It is actually a 7.1.3 RDBMS bug which affects complicated views.

7. Although $APPLCSF is set, the internal concurrent manager log is being written to
$FND_TOP/$APPLLOG.

This has been logged as bug 259415. At this time there is no patch for this, but it
can be modified by changing the startmgr (or startmgr.com) script to use $APPLCSF
instead of $FND_TOP when creating the logfile.

8. All the concurrent managers are running, and the concurrent manager has been
successfully bounced several time, but all the requests have a status of 'Inactive'
and 'No Manager'.

Check that there aren't any pending requests at all. If an run-alone immediate
concurrent program is submitted, but the program is not registered in any of the
concurrent libraries then the status will be set to 'Inactive' and 'No Manager'
because none of the managers could run it. Any requests that follow this request
will then be unable to run until the original request completes.

9. The concurrent manager forms within application indicate that the concurrent
manager is down, when in fact it is running and processing requests without any
problems.

This is a bug when using the LOCK pmon method. It is fixed in 10.4.1 and the
workaround is to use RDBMS or OS pmon method.

10. Terminated concurrent processes that are "spawned" do not die, although the
View Concurrent Requests screen says that have been Terminated. Also, after some
time the Concurrent Requests screen will changed the status to 'Completed Normal'.

This is bug 249158, and is known to occur on at least HP. A patch is available.

11. How to recreate the view FND_V$PROCESS:

FNDLIBR FND FNDCPBWV applsys/fnd SYSADMIN 'System Administrator' SYSADMIN


or as the applsys user execute the following SQL statement:

Create View Fnd_V$Process as


(Select P.Addr, P.Pid, S.Process Spid,
S.Osuser Username, P.Serial#,
S.Terminal, S.Program, P.Background,
P.Latchwait, S.Lockwait
From V$process P, V$session S Where P.Addr = S.Paddr );
12. If there are multiple internal concurrent managers in the same database, only
one of those managers can use the LOCK pmon method.

13. When using parallel concurrent processing, the concurrent manager names can
not have embedded spaces in them. The workaround is to replace the space with
an underscore, or change the name to a single word.

If you are encountering errors with the concurrent managers some steps that can be
safely executed include:

1. Bounce the concurrent managers. Bring them down, and then making sure the
environment is properly set up bring them back up again. Remember that the
concurrent managers' environment is set at the time they start up, and any
modifications that you make to the environment after that will not be picked up until
the concurrent managers are bounced again.

2. Check for the existence of the $APPLLOG directory under each PRODUCT_TOP
directory, and that the permissions allow for writing to those directories. If
$APPLCSF is set, so that all the log and out files get written to a common
directory, the $APPLLOG directories still must exist. Also, even with $APPLCSF set,
the internal concurrent manager log files will always be written to $FND_TOP/
$APPLLOG.

3. Make certain the login id that is starting the concurrent manager has permission
to do so. By default just applmgr can do this.

4. Check that there aren't any requests which have a status of 'Terminating' in the
table fnd_concurrent requests:

select count(*) from fnd_concurrent_requests where status_code='T';

If there are any such rows then delete them from the table, or modify them so they
have status of 'Terminated':

delete from fnd_concurrent_requests where status_code='T';


OR
update fnd_concurrent_requests set status_code='X', phase_code='C' where
status_code='T';

You might also like