MOAC in R12 ....R12 Upgrade Series Part -2
Below are high level details of MOAC feature and it's impact on various Modules.
Accounting Setup Manager
Define and manage your Operating Units and their relationships to Legal Entities and Ledgers in a central location
Collections
View and manage customers across Operating Units and within the context of a global collections currency. Apart from that collections tasks can be done across Operating Units
Global Purchase Agreements
Negotiate with your suppliers for your enterprise, not just particular Operating Units.
Payables
Enter and pay invoices across Operating Units
Customer Data Management
View customer accounts, merge and import data for multiple Operating Units.
Supply Chain
Receiving transactions across any OU (Project, PO, Requisition and Above all user can select an inventory item from any Operating Units.
Changes in OE_ORDER_PUB in R12i
From OM Prospect
OE_ORDER_PUB API has been modified to include the parameters
1. p_org_id - p_org_id is operating_unit_id
2. p_operating_unit - p_operating_unit is Operating Unit Name
User can enter any of these values. Please note that when user pass any of these values system will check if the responsibility from where user are executing these APIs has access Operating Unit or not, if not then API will return Error.
If User don’t pass this values then system will try to derive the values from the Default Operating Unit (Profile option) and if that too not specified then API will return Error.
OE_ORDER_PUB API has been modified to include the parameters
1. p_org_id - p_org_id is operating_unit_id
2. p_operating_unit - p_operating_unit is Operating Unit Name
User can enter any of these values. Please note that when user pass any of these values system will check if the responsibility from where user are executing these APIs has access Operating Unit or not, if not then API will return Error.
If User don’t pass this values then system will try to derive the values from the Default Operating Unit (Profile option) and if that too not specified then API will return Error.
How to Set MOAC Context in R12i (MOAC - Enabled)
In this post I will explain how to set the context to use secured synonym in oracle R12i. Please make a note that in R12i Oracle has removed all the context-based views with Secured Synonym.
All the context-based views like
1. OE_ORDER_HEAREDS
2. OE_ORDER_LINES
3. PO_HEADERS
4. PO_LINES etc has been replaced with Synonym.
Now on if user want to set the context to get the data for particular operating unit they need to use the new apis to set the context
The new API to set the context in R12 is
MO_GLOBAL.Set_Policy_Context.
This API has 2 parameters
1. Operating unit
2. Context
Context has 2 values
1. M
2. S
When policy context is set to ‘M’, data from all accessible Operating Units will be returned.
When policy context is set to ‘S’, then only data from the specified Org_Id will be returned.
Example for R12 –
· Try to run
select * from oe_order_headers
· Set the Context
begin
MO_GLOBAL.Set_Policy_Context('S',204);
end;
· Run Again
· select * from oe_order_headers
But for R11i it is still the same
· Set Context
begin
dbms_application_info.set_client_info('204');
end;
· Run Query
· select * from oe_order_headers
All the context-based views like
1. OE_ORDER_HEAREDS
2. OE_ORDER_LINES
3. PO_HEADERS
4. PO_LINES etc has been replaced with Synonym.
Now on if user want to set the context to get the data for particular operating unit they need to use the new apis to set the context
The new API to set the context in R12 is
MO_GLOBAL.Set_Policy_Context.
This API has 2 parameters
1. Operating unit
2. Context
Context has 2 values
1. M
2. S
When policy context is set to ‘M’, data from all accessible Operating Units will be returned.
When policy context is set to ‘S’, then only data from the specified Org_Id will be returned.
Example for R12 –
· Try to run
select * from oe_order_headers
· Set the Context
begin
MO_GLOBAL.Set_Policy_Context('S',204);
end;
· Run Again
· select * from oe_order_headers
But for R11i it is still the same
· Set Context
begin
dbms_application_info.set_client_info('204');
end;
· Run Query
· select * from oe_order_headers
MOAC in R12 Order Management
In this post I will explain the MOAC feature offered in Oracle Apps R12
MOAC – Multi Operating Unit Access control is a major Feature that Oracle has introduced in R12.
In this post I will explain in brief, impact of MOAC in Order Management.
With the MOAC in place, now user can access to multiple operating units without changing the responsibility. This will be of great help to organizations where user need to change responsibilities to access different operating units
Like Shared Services.
To Implement MOAC, Oracle has introduced new field “Operating unit” in almost all UO like Sales Order, Quick Sales Order, Find Windows (Please refer the user guides for complete list).
Now whenever user Navigate to Transaction related forms like Sales Orders, it is mandatory to enter an OU first to create an order. The moment user select the Operating unit, all the fields that are depend on Operating Units like Ship To, Order Type etc will display data that is relevant for the OU.
Apart from the UI’s like Orders Summary, Book Order, Hold will display Orders across all accessible Operating Units. As explained above whenever user change the Operating Unit, system will clear all the operating units sensitive fields.
In Order management LOV’s for all OU dependent fields have been enhanced to display the Operating unit name along with values.
Let’s take the example of item LOV. As we know in OM item LOV will display all the items based on the Item Validation Organization. Item validation org is depending on the Operating Unit. When Operating Unit field has a value (derived or default) the item LOV will display data based on the Item Validation Org for that Operating Unit. If the Operating Unit is cleared or changed the Item field will be cleared. When the Operating Unit field is null, the item LOV will display data for the Item Validation Org setup for the default OU.
Reports
In almost all the reports a new parameter Operating Unit has been added. If user provides the value for this parameter then Report will be executed for that parameter only, but in case user left that blank report will execute for all the operating units (Accessible to user). Not only that once we select the Operating Units all the OU depend parameter reset, so that they will reflect the value for the selected Operating Unit.
Few of OM reports have made Global, i.e. they will execute and display the data for all the operating units (Accessible to user).
Before we start wring sql/plsql etc we have to keep in mind that in R12 all the operating Unit sensitive view has been replaced with the secured synonyms.
So to set the context they need to execute
MO_GLOBAL.Set_Policy_Context
This API has 2 parameters
Context
Org_id
When policy context is set to ‘M’, data from all accessible Operating Units will be returned.
When policy context is set to ‘S’, then only data from the specified Org_Id will be returned.
NOTE – if user don’t set this context all the secured synonym will not return any data.
SETUP – For complete info, please refer my earlier post.
Set the Global Profile
Set MO: Security Profile
Set MO: Default Operating Unit
MOAC – Multi Operating Unit Access control is a major Feature that Oracle has introduced in R12.
In this post I will explain in brief, impact of MOAC in Order Management.
With the MOAC in place, now user can access to multiple operating units without changing the responsibility. This will be of great help to organizations where user need to change responsibilities to access different operating units
Like Shared Services.
To Implement MOAC, Oracle has introduced new field “Operating unit” in almost all UO like Sales Order, Quick Sales Order, Find Windows (Please refer the user guides for complete list).
Now whenever user Navigate to Transaction related forms like Sales Orders, it is mandatory to enter an OU first to create an order. The moment user select the Operating unit, all the fields that are depend on Operating Units like Ship To, Order Type etc will display data that is relevant for the OU.
Apart from the UI’s like Orders Summary, Book Order, Hold will display Orders across all accessible Operating Units. As explained above whenever user change the Operating Unit, system will clear all the operating units sensitive fields.
In Order management LOV’s for all OU dependent fields have been enhanced to display the Operating unit name along with values.
Let’s take the example of item LOV. As we know in OM item LOV will display all the items based on the Item Validation Organization. Item validation org is depending on the Operating Unit. When Operating Unit field has a value (derived or default) the item LOV will display data based on the Item Validation Org for that Operating Unit. If the Operating Unit is cleared or changed the Item field will be cleared. When the Operating Unit field is null, the item LOV will display data for the Item Validation Org setup for the default OU.
Reports
In almost all the reports a new parameter Operating Unit has been added. If user provides the value for this parameter then Report will be executed for that parameter only, but in case user left that blank report will execute for all the operating units (Accessible to user). Not only that once we select the Operating Units all the OU depend parameter reset, so that they will reflect the value for the selected Operating Unit.
Few of OM reports have made Global, i.e. they will execute and display the data for all the operating units (Accessible to user).
Before we start wring sql/plsql etc we have to keep in mind that in R12 all the operating Unit sensitive view has been replaced with the secured synonyms.
So to set the context they need to execute
MO_GLOBAL.Set_Policy_Context
This API has 2 parameters
Context
Org_id
When policy context is set to ‘M’, data from all accessible Operating Units will be returned.
When policy context is set to ‘S’, then only data from the specified Org_Id will be returned.
NOTE – if user don’t set this context all the secured synonym will not return any data.
SETUP – For complete info, please refer my earlier post.
Set the Global Profile
Set MO: Security Profile
Set MO: Default Operating Unit

1 comment:
Great post, answered many of my questions.
However, here is a specific scenario that I've seen pop up from time to time but cannot find a clean answer.
Scenario 1:
Client has 50 OUs in 11i
They want to reduce the number of OUs down to 10.
They have determined that several of the OUs do not have to be used going forward.
However several of the OUs they want to combine into one.
Question 1: If they want to decommission an OU, do they bleed out the open transactions for that OU and disable before upgrade, or do they bring it over in the upgrade, bleed out the transactions and then disable?
Question 2: When combining OUs, do they need to create conversions to combine historical transactions into the one, or do they keep separate for historical purposes and only conduct new transactions in combined OU?
Question 3: When a company divests of a business and sell OU, do they bleed out the transactions in that OU and disable it?
Sorry for the long questions, but not sure of implications of disabling OUs, either during/after upgrade, or in normal course of business.
Thanks,
Rick
Post a Comment