In ECN centric mode where BOMs needs to be published using ECN (ECO in Oracle Apps)
For ECO centric the Assembly type is determined by the change type code of an ECO being published. All the BOMs in one ECO in one organization have to be of same BOM type.
Out of the box business logic cannot validate if all BOM are of same usage or not. It takes the first BOM from the list and uses it’s’ usage value to determine the ECO’s change type code. Change Type code of an ECO decides the Assembly type of an ECO and thus all BOMs created/updated through that ECO will have the same assembly type.[ This is Oracle Apps behaviour ]. However ECO are organization specific and you can create an ECO for e.g. ECO_X in Organization 1 with Change type Code set to “Engineering” and ECO_X in Organization 2 with change type code set to “Production”.
Out of the Box following property from ESIORADefault.properties file is used to determine ECO Change type code.
ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.*.*.*.*=ESI Prod
ESIDataProcessing:GetDefaults2 function is used. GetDefaults2 expects 5 arguments. For CHANGE_TYPE_CODE the 5 arguments have been distributed as below:
<ECO.ENGR_CHANGE.CHANGE_TYPE_CODE>
<System>.<Organization>.<Usage>.<Locale>
Where <ECO.ENGR_CHANGE.CHANGE_TYPE_CODE> is the first argument.
<System> is the second argument
<Organization> is the third argument
<Usage> is the fourth argument
<Locate> is the fifth argument
GetDefaults2 is a special function which allows combinations for the last 4 elements(System, Organization, Usage and locale) of the property. Here you can use “*” as wild card(for e.g. for any system, for any organization etc..) but make sure about precedence. The combination precedence is left to right. For e.g. consider following conflicting entries.
ECO.ENGR_CHANGE.CHANGE_TYPE_CODE. ATST.*.engineering.en_US= ESI Prod ECO.ENGR_CHANGE.CHANGE_TYPE_CODE>. ATST.P1.*.en_US= ESI Mfg Invoking ESIDataProcessing:GetDefaults2(ECO.ENGR_CHANGE.CHANGE_TYPE_CODE , P1, engineering,en_US) will return ESI Mfg and not ESI Prod
Following are few examples:
ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.ATST.*.Production.*=ESI Prod_ATST ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.ATST.M2.*.*=ESI Prod_ATST_M2 ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.PTST.P1.engineering.*=ESI engineering_PTST_P1
ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.*.*.*.*=ESI Prod
If you provide above 4 entries in ESIORADefault.properties file following are the interpretations: If you send BOM Usage as “Production” in ATST ERP instance, the Change_Type_Code value will be “ESI_Prod_ATST”
If you send any BOM Usage in ATST Instance and in “M2” organization, the Change_Type_Code will always be “ESI_Prod_ATST_M2”.
If you send any BOM Usage as engineering in PTST Instance and in “P1” organization the Change_Type_Code will always be “ESI engineering_PTST_P1”.
If none of above condition matches then the Change_Type_Code will always be “ESI Prod” by using the property ECO.ENGR_CHANGE.CHANGE_TYPE_CODE.*.*.*.*=ESI Prod .
Following screen shows the place from where the ESIDataProcessing:GetDefaults2 is invoked to get the Change Type Code.
Was this helpful?