Sanjeev Kale Oracle Corporation Introduction Bills of material can be imported into Oracle Bills of Material or Oracle Engineering from any source using Bills and Routing Interface. Existing Bills and product families can also be updated or deleted. Oracle Bills of Material and Oracle Engineering validates the data, ensuring that the imported bills of material contain the same bill detail as those manually entered by Define Bill of Material form. This paper focuses on understanding of importing Bills and routings from legacy system to Oracle Bills of Material and Oracle Engineering. This paper is designed to supplement Oracle Manufacturing, Distribution, Sales and Service Open Interface Manual , User manual and BOM training class notes. The Bill and Routing Interface program can be run from BOM responsibility Bills Import Bills. When the Bills and Routing program is run, a number of runtime options must be specified. All Organizations Yes Run the interface for all organization codes in the bill of material and routing interface tables. No Run the Interface program only for the organization the user is in. The interface program only processes bill of material and routing interface records in the current organization. Open Bill of Material Interface 2 Import Routing Yes Import records from the routing interface tables for the current organization or all organizations. No Do not import records from the routing interface tables. Import Bills of Material Yes Import records from the bills of material interface tables for the current organization or all organization. No Do not import records from the bills of material interface tables. Delete Processed Rows Yes Delete successfully processed rows from the bill of material and routing interface tables. No Leave all records in the bill of material and routing interface tables for successfully processed rows. Each Interface tables required columns and derived columns are discussed in detail in the following pages. Look at the following example for updating a bill component. The required data for updating a bill component is PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update COMPONENT_SEQUENCE_ID There are two ways at looking at this information: a) You can provide the COMPONENT_SEQUENCE_ID for updating the bill component, or Open Bill of Material Interface 3 b) You can update the bill component by populating the following fields Component_Item_Id, Operation_Seq_Num, Effectivity_date, Assembly_Item_Id and Organization_Id Since Component_Sequence_Id is a derived column if the following columns are populated. Bill_Sequence_Id, Component_Item_Id, Operation_Seq_Num and Effectivity_date and Bill_Sequence_Id is a derived column if the following columns are populated Assembly_Item_Id , Organization_Id and Alternate_Bom_Designator (if a alternate bill exists) Functional Overview Before using the Bill and Routing Interface, a custom program must be written to extract bill of material and component details from the source system and this program must insert rows in the following tables for each extracted bill of material: BOM_BILL_OF_MTLS_INTERFACE BOM_INVENTORY_COMPS_INTERFACE BOM_ASSY_COMMENTS_INTERFACE BOM_SUB_COMPS_INTERFACE MTL_ITEM_REVISIONS_INTERFACE BOM_OP_ROUTINGS_INTERFACE BOM_OP_SEQUENCES_INTERFACE BOM_OP_RESOURCES_INTERFACE MTL_RTG_ITEMS_REVS_INTERFACE BOM_INTERFACE_DELETE_GROUPS After the data is loaded in the interface table, the Bill and Routing interface program can be launched from the Import Bills and Routings form in Oracle Bills of Material or Oracle Engineering. The interface program assigns values, validates the data and then creates, updates, or deletes bills of material, product family or a routing. To import a bill of material with components, the BOM_BILL_OF_MTLS_INTERFACE and BOM_INVENTORY_COMPS_INTERFACE tables must be populated. Using the bill of material header information and components from these two tables, details can be created. Similarly BOM_REF_DESGS_INTERFACE and BOM_SUB_COMPS_INTERFACE tables can be populated to assign reference designators and substitute components to bills of material. To import a routing with operations and resources, the BOM_OP_ROUTINGS_INTERFACE, BOM_OP_SEQUENCES_INTERFACE and BOM_OP_RESOURCES_INTERFACE tables must be populated. Using the routing header information from these three tables, operation and resource details can be created. Although bill and routing can be imported simultaneously, all routing operations must exist before a component is assigned to an operation. Primary and alternate bills of material can be simultaneously imported. Since the Bill and Routing Interface program validate data the same way the Define Routing or Define Engineering Routing form verifies data, the alternate bill cannot be defined if the primary bill does not exist. Therefore the primary bill must be imported before importing the alternate bill. Open Bill of Material Interface 4 Using the Bill and Routing Interface program, manufacturing and engineering bills of material / routing can be imported. Specify a value in the ASSEMBLY_TYPE column to determine the type of bill to be imported. Specify a value in the ROUTING_TYPE column to determine the type of routing to be imported. Setting up for Bills of Material / Routing Import There are no additional setup steps in Oracle Bills of Material or Oracle Engineering beyond those already required to manually define manufacturing and engineering bills of material. All items and standard comments must be defined before they can be assigned to a manufacturing or engineering bill of material. Standard operations, resources and standard instructions must be defined in Oracle Bills of Material before they can be assigned to a manufacturing or engineering routing. Since the Bill and Routing Interface program is launched and managed through the concurrent manager, it must be ensured that the concurrent manager is running before importing any bills. Transaction Type Transaction_Type column determines the action to be taken to taken. It has following possible values: Create - To create bill of material or a Product family. Insert - To create a routings with operations and resources. Update - To update bill of material or routing. Delete - To Delete bill of material or routing. Packages Used in Open Interface All the code for open interface is written in PL/SQL and database-resident stored procedures and packages. BOM_BILL_API This package is used to Assign, validate and transact bill data in the BOM_BILL_OF_MTLS_INTERFACE table. BOM_COMPONENTS_API - Assigns, validates and transacts component data in the BOM_INVENTORY_COMPS_INTERFACE table.
BOM_REFERENCE_DESIGNATOR_API - Assigns, validates and transacts reference designator data in the BOM_REF_DESGS_INTERFACE table. BOM_REVISION_API - Assigns, validates and transacts revision data in the MTL_ITEM_REVISIONS_INTERFACE table. BOM_ROUTINGINTERFACE_PUB BOM_SUBSTITUTE_COMPONENT_API - Assigns, validates and transacts substitute component data in the BOM_SUB_COMPS_INTERFACE table. Process Flow Routing Data Assign routing data all the rows in the BOM_OP_ROUTINGS_INTERFACE table are processed with PROCESS_FLAG = 1 Assign routing sequence Id Assign common routing Populate mandatory columns with default values. Set PROCESS_FLAG = 2 if assigning is successful. Open Bill of Material Interface 5 Validate routing - all the rows in the BOM_OP_OPERATIONS_INTERFACE table are processed with PROCESS_FLAG = 2 Validate uniqueness of ROUTING_SEQUENCE_ID Validate for duplication of primary / alternate routing. Validate alternate Manufacturing common routing cannot point to an engineering routing. If a routing refers a common routing, validate no operation exists for this routing. Set PROCESS_FLAG = 4 if validation is successful. Assign operation data - all the rows in the BOM_OP_OPERATIONS_INTERFACE table are processed with PROCESS_FLAG = 1 Assign operation sequence Id Assign primary and foreign keys. Translate Department code, standard operation. Populate mandatory columns with default values. Create child operation resource records. Create child operation instruction records. Set PROCESS_FLAG = 2 if assigning is successful. Validate operations - all the rows in the BOM_OP_OPERATIONS_INTERFACE table are processed with PROCESS_FLAG = 2 Validate uniqueness of OPERATION_SEQUENCE_ID. Validate ROUTING_SEQUENCE_ID. Validate effective operation, DEPARTMENT_ID, STANDARD_OPERATION_ID. Set PROCESS_FLAG = 4 if validation is successful. Assign Resource data - all the rows in the BOM_OP_RESOURCES_INTERFACE table are processed with PROCESS_FLAG = 1 Assign primary and foreign keys. Translate Resource, Activity Populate mandatory columns with default values. Set PROCESS_FLAG = 2 if assigning is successful. Validate resources - all the rows in the BOM_OP_RESOURCES_INTERFACE table are processed with PROCESS_FLAG = 2 Validate operations, resources, usage rate, UOM, activity and AUTO_CHARGE_TYPE. Usage rate can be negative only for non-schedulable resources. Set PROCESS_FLAG = 4 if validation is successful. Bill Data Assign Bill data - all the rows in the BOM_BILL_OF_MTLS_INTERFACE table are processed with PROCESS_FLAG = 1 Assign bill sequence Id Assign primary keys. Assign common bill. Populate mandatory columns with default values. Set PROCESS_FLAG = 2 if assigning is successful. Assign component data - all the rows in the BOM_INVENTORY_COMPS_INTERFACE table are processed with PROCESS_FLAG = 1 Assign components sequence Id. Assign primary and foreign keys. Populate mandatory columns with default values. Create child reference designator record. Create child substitute component record. Set PROCESS_FLAG = 2 if assigning is successful. Assign reference designator data - all the rows in the BOM_REF_DESGS_INTERFACE table are processed with PROCESS_FLAG = 1. Open Bill of Material Interface 6 Assign primary and foreign keys. Populate mandatory columns with default values. Set PROCESS_FLAG = 2 if assigning is successful. Assign substitute component data - all the rows in the BOM_SUBS_COMPS_INTERFACE table are processed with PROCESS_FLAG = 1. Assign primary and foreign keys. Populate mandatory columns with default values. Set PROCESS_FLAG = 2 if assigning is successful. Important BOM Interface Validations Validations for Assembly/Component Item Assembly Item must be BOM enabled. Mfg bills must have mfg assembly items Alternate mfg bill cannot have a primary engineering bill. Component cannot be added to a bill where the same component, with same operation sequence and effectivity date already exists on the bill. Components cannot be added to a bill if it violates the rules shown in the following table. Parent Child Configurd ATO Model ATO Option Class ATO Standard Planning N N N N Configured Y Y Y Y ATO Model P P P N ATO Option Class P P P N ATO Standard Y Y Y Y PTO Model N N N N PTO Option N N N N PTO Standard N N N N Product Family N N N Y Parent Child PTO Model PTO Option Class PTO Standard Product Family Planning N N N N Configurd Y Y N N ATO Model P P N N ATO Option Class N N N N ATO Standard O O N Y PTO Model P P N N PTO Option P P N N PTO Standard Y Y Y N Product Family N N N N Legend: Y = Allowed N = Not Allowed P = Must be Phantom O = Must be Option Open Bill of Material Interface 7 For example, if the Parent item is PTO Model, it is not allowed to have a component that is a planning item, It is allowed to have a component that is a configured item, an ATO model components must be a phantom assembly, and any ATO standard component must be optional For ATO, PTO and phantom bills where the parent item has ATP components set to No, a component cannot be added that has either the item attributes Check ATP(ATP_FLAG) set to Yes or ATP Components(ATP_COMPONENTS_FLAG) set to Yes. An optional component cannot be added to a bill that is neither model nor option class. A component cannot be added to a standard bill whose planning percent is not equal to 100 A mandatory component cannot be added to a model or option class bill, whose planning percent is not equal to 100 and has the Forecast Control attribute set to Consume or None. Validations for Common bills Common assembly item must be BOM enabled. Common bills organization must have the same master organization as the current bill. Common bill cannot reference another common bill. Common bill must be a mfg bill if the current bill is a mfg bill. Bill that references common bill should not have any components. Common bills alternate must be same as the current bills alternate. Following item attributes must be same for common assembly item and current assembly item. BOM_ITEM_TYPE, PICK_COMPONENTS_FLAG (pick Component), REPLENISH_TO_ORDER_FLAG (Assemble to Order). Commons bills components must exist in the current bills organization. Commons bills substitute components must exist in the current bills organization. Components can be added ONLYto a bill that is referenced as a common bill. Validating and Resolving Failed Interface Table Rows The Bill and Routing Interface program validate the required data for 6 (Bills) and 5 (Routing) interface tables. Bill of material validation ensures that each row has an included or defaulted value for all required columns and verifies any interdependent relationships. When a bill is imported, the Bill and Routing Interface program validate all rows in the Interface tables that have a PROCESS_FLAG set to 1 (PENDING) If the Bill and Routing Interface program cannot assign a value to a row or validate that row, the program sets the PROCESS_FLAG for the row to 3 (Assign/Validation failed) and inserts a row in the MTL_INTERFACE_ERRORS table. If the Bill and Routing Interface program cannot insert the row into one of the production tables, the program sets the PROCESS_FLAG for that row to 4 (Import Failed). After the Bill and Routing Interface program successfully creates a bill of Material and components or a routing in the production tables, it sets the PROCESS_FLAG to 7 (Import Succeeded). To identify the error message for a failed row, the Interface program automatically populates the UNIQUE_ID column in the error interface table with the same value as the TRANSACTION_ID value. Each error also has a value for MESSAGE_NAME and REQUEST_ID columns in the error interface table. The MESSAGE_NAME column corresponds to message stored in Oracle Application Message Dictionary and REQUEST_ID column stores the concurrent request id. If the program detects any internal database error, the program stores the internal error in the MESSAGE_NAME column and stores the specific database error message in the ERROR_MESSAGE column. If a bill of material with multiple components / operations is imported and one of the components / operation fails validation, the Bill and Routing Interface program imports the bill of material/routing and other validates components. Open Bill of Material Interface 8 The program only fails the record where the error occurred. If however, the row in the BOM_BILL_OF_MTLS_INTERFACE/BOM_OP_ROUTINGS_INTERFACE table fails the bill of material and all of its details (routing and any operation, resource) are not imported. The rows in the interface tables can be reviewed and reported using SQL*Plus. Since all rows in the interface table have a value for PROCESS_FLAG, records can be easily identified that are successfully imported into Oracle Bills of Material and Oracle Engineering, or records that failed validation or import. These records can be identified by the unique value for the TRANSACTION_ID column. SELECT ERR.TRANSACTION_ID, ERROR_MESSAGE, MESSAGE_NAME FROM MTL_INTERFACE_ERRORS ERR, BOM_BILL_OF_MTLS_INTERFACE BOI WHERE ERR.TRANSACTION_ID = BOI.TRANSACTION_ID Any row from the interface tables can be updated using SQL*Plus. If a row is updated to resolve invalid data, the PROCESS_FLAG must be set to 1 (Pending) for that row. When the Bill and Routing Interface is resubmitted all rows pending validation are processed. Inserting into the INTERFACE table The data that is loaded in the above mentioned interface table can be broadly be classified into Three types Required Data, Derived Data and Optional Data. Required Data - Columns marked as required must always be entered. Derived data - are those columns which the interface program automatically imports the row with the derived or defaulted value. For example, CREATION_DATE column is a derived data column. Bill and Routing Interface program automatically defaults to the current date. Some of the Interface table contain user-friendly columns that allows the user to enter data easily in the interface table. The Bill and Routing Interface program uses the values entered for these user-friendly columns to derive unique identifiers. To import a bill of material, a value for ORGANIZATION_CODE or ORGANIZATION_ID can be included. If ORGANIZATION_CODE is entered, the Bill and Routing Interface derives the value for ORGANIZATION_ID. Optional Data The user can assign a value or let the Bill and Routing Interface program default a value. BOM_ INTERFACE_DELETE_GROUPS When deleting a Bill, Component, Routing, Operation or Resource a record must be inserted in BOM_INTERFACE_DELETE_GROUPS with the following values: ENTITY_NAME = BOM_BILL_OF_MTLS_INTERFACE BOM_INVENTORY_COMPS_INTERFACE BOM_OP_ROUTINS_INTERFACE BOM_OP_SEQUENCES_INTERFACE BOM_OPRESOURCES_INTERFACE DELETE_GROUP_NAME New name or name of an existing delete group. DESCRIPTION Required if using a new delete group. Deleting a Component would require Delete Group information. However for deleting a Product Family Member Delete Group Information is not needed. Open Bill of Material Interface 9 BOM_BILL_OF_MTLS_INTERFACE Required Data for Creating Bill or Product Family Each imported record must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Create ORGANIZATION_ID ASSEMBLY_ITEM_ID ASSEMBLY_TYPE 1 = Manufacturing 2 = Engineering bill
If an alternate bill of material is being created, then the value must be entered in the ALTERNATE_BOM_DESIGNATOR column.
If the bill being imported references a common bill of material then a value must be entered in the COMMON_ORGANIZATION_ID and COMMON_ASSEMBLY_ITEM_ID columns or a value must be entered in the COMMON_BILL_SEQUENCE_ID column. Required Data for Updating Bill or Product Family To identify the bill record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update BILL_SEQUENCE_ID Required Data for Deleting Bill or Product Family To identify the bill record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Delete BILL_SEQUENCE_ID
Derived Data The BOM_BILL_OF_MTLS_INTERFACE table contains user-friendly column. The Bill and Routing Interface program uses the values entered in these columns to derive unique identifiers.
Open Bill of Material Interface 10 The following tables list the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Organization_Code Organization_Id Item_Number Assembly_Item_Id Common_Org_Code Common_Organization_Id Common_Item_Number Common_Assembly_Item_I d
User Friendly Columns Derived Column Common_Item_Id Common_Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface programs derives common_bill_sequence_i d
For Bill:
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface programs derives Bill_Sequence_Id
For Product Family:
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id If the above mentioned values are entered, Interface programs derives Bill_Sequence_Id
For Create Bill_sequence_id is derived from BOM_INVENTORY_COMPONENTS_S
BOM_INVENTORY_COMPS_INTERFACE Required Data for Creating a Component Each imported record must have a value for the following columns: PROCESS_FLAG = 1 Open Bill of Material Interface 11 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Create COMPONENT_ITEM_ID COMPONENT_SEQUENCE_ID OPERATION_SEQ_NUM EFFECTIVITY_DATE BILL_SEQUENCE_ID If the components are assigned to an alternate bill of material and BILL_SEQUENCE_ID has no value entered, then a value in ALTERNATE_BOM_DESIGNATOR must be specified. Required Data for Creating a Product Family member Each imported record must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Create COMPONENT_ITEM_ID BILL_SEQUENCE_ID Required Data for Updating a Component or Product Family member To identify the component record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update COMPONENT_SEQUENCE_ID Required Data for Deleting a Component or Product Family member To identify the component record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Delete COMPONENT_SEQUENCE_ID Derived Data The following tables lists the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Organization_Code Organization_Id Assembly_Item_Number Assembly_Item_Id Open Bill of Material Interface 12 Component_Item_Number Component_Item_Id Substitute_Comp_Number Substitute_Comp_Id Location_Name Supply_Locator_id
For a Component
User Friendly Columns Derived Column Bill_sequence_id Component_item_id Operation_seq_num Effectivity_date If the above mentioned values are entered, Interface programs derives Component_Sequence_Id
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface programs derives Bill_Sequence_Id
For a Product Family
User Friendly Columns Derived Column Bill_sequence_id Component_item_id Effectivity_date If the above mentioned values are entered, Interface programs derives Component_Sequence_Id
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id If the above mentioned values are entered, Interface programs derives Bill_Sequence_Id
For create Component_Sequence_Id is derived from BOM_INVENTORY_COMPONENTS_S. BOM_REF_DESGS_INTERFACE Required Data for Creating Reference Designator This table should not be populated if you are using Product Family.
Each imported record must have a value for the following columns:
PROCESS_FLAG = 1 Open Bill of Material Interface 13 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Create COMPONENT_SEQUENCE_ID COMPONENT_REFERENCE_DESIGNATOR Required Data for Updating Reference Designator To identify the reference designator record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update COMPONENT_SEQUENCE_ID COMPONENT_REFERENCE_DESIGNATOR Required Data for Deleting Reference Designator To identify the reference designator record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Delete COMPONENT_SEQUENCE_ID COMPONENT_REFERENCE_DESIGNATOR Derived Data The following table lists the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Bill_sequence_id Component_item_id Operation_seq_num Effectivity_date If the above mentioned values are entered, Interface programs derives Component_Sequence_Id
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface Bill_Sequence_Id Open Bill of Material Interface 14 programs derives BOM_SUB_COMPS_INTERFACE Required Data for Creating Substitute Components This table should not be populated if you are using Product Family.
Open Bill of Material Interface 15 Each imported record must have a value for the following columns:
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Create COMPONENT_SEQUENCE_ID SUBSTITUTE_COMPONENT_ID SUBSTITUTE_ITEM_QUANTITY Required Data for Updating Substitute Components To identify the substitute component record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update COMPONENT_SEQUENCE_ID SUBSTITUTE_COMP_ID Required Data for Deleting Substitute Components To identify the substitute component record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update COMPONENT_SEQUENCE_ID SUBSTITUTE_COMP_ID Derived Data The following table lists the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Bill_sequence_id Component_item_id Operation_seq_num Effectivity_date If the above mentioned values are entered, Interface programs derives Component_Sequence_Id
Open Bill of Material Interface 16
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface programs derives Bill_Sequence_Id MTL_ITEM_REVISIONS_INTERFACE Required Data for Creating Item Revisions Each imported record must have a value for the following columns:
If a value is entered in the REVISION column of the BOM_BILL_OF_MTLS_INTERFACE table, the Bill and Routing Interface program inserts a row into the MTL_ITEM_REVISIONS_INTERFACE table. To assign multiple item revisions, data can be directly inserted into the MTL_ITEM_REVISIONS_INTERFACE table. If the validation is successful, the program then imports the data into the MTL_ITEM_REVISIONS table. Required Data for Updating Item Revisions
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update INVENTORY_ITEM_ID ORGANIZATION_ID REVISION The Bill and Routing Interface program does not allow the deleting of item revisions. BOM_OP_ROUTINGS_INTERFACE Required Data for Creating a Routing Each imported record must have a value for the following columns:
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded Open Bill of Material Interface 17 TRANSACTION_TYPE = Insert ORGANIZATION_ID ASSEMBLY_ITEM_ID ROUTING_TYPE 1 = Manufacturing 2 = Engineering bill
If an alternate routing is being created, then a value must be entered in the ALTERNATE_ROUTING_DESIGNATOR column.
If the routing being imported references a common routing, then a value must be entered in the COMMON_ROUTING_SEQUENCE_ID or the COMMON_ASSEMBLY_ITEM_ID column. Routings can only reference common routings that belong to the same organization. If the routing does not reference a common routing, the Bill and Routing Interface program defaults to the value of the ROUTING_SEQUENCE_ID for the COMMON_ROUTING_SEQUENCE_ID. Required Data for Updating a Routing To identify the Routing record you are trying to update, you must have a value for the following columns:
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update ROUTING_SEQUENCE_ID Required Data for Deleting a Routing To identify the Routing record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Delete ROUTING_SEQUENCE_ID
Derived Data The BOM_OP_ROUTINGS_INTERFACE table contains user-friendly columns. The Bill and Routing Interface program uses the values entered in these columns to derive unique identifiers.
The following tables lists the user-friendly columns and the corresponding column that stores the derived value:
User Friendly Columns Derived Column Assembly_Item_Number Assembly_Item_Id Organization_Code Organization_Id Common_Item_Number Common_Assembly_Item_I d Location_Name Completion_Locator_Id Line_code Line_id Open Bill of Material Interface 18
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Routing_Designato r
If the above mentioned values are entered, Interface programs derives Routing_Sequence_Id
For Create, Routing_Sequence_id is derived from BOM_OPERATIONAL_ROUTINGS_S.
If a value for the ASSEMBLY_ITEM_NUMBER or COMMON_ITEM_NUMBER column is entered, the system item flexfield separator between each segment of the item number should be entered. BOM_OP_SEQUENCES_INTERFACE Required Data for Creating a Operation Each imported record must have a value for the following columns:
If an operation to an alternate routing is being created and a value for ROUTING_SEQUENCE_ID is not entered, then a value must be entered in the ALTERNATE_ROUTING_DESIGNATOR column. Required Data for Updating a Operation To identify the Operation record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update OPERATION_SEQUENCE_ID Required Data for Deleting a Operation To identify the Operation record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed Open Bill of Material Interface 19 7 = Import Succeeded TRANSACTION_TYPE = Delete OPERATION_SEQUENCE_ID Derived Data
The BOM_OP_SEQUENCES_INTERFACE table contains user-friendly columns. The Bill and Routing Interface program uses the values entered in these columns to derive unique identifiers.
The following tables lists the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Operation_Seq_Num Effectivity_Date Routing_Sequence_Id If the above mentioned values are entered, Interface programs derives Operation_Sequence_Id
User Friendly Columns Derived Column Assembly_item_id Organization_Id Alternate_Routing_designato r
If the above mentioned values are entered, Interface programs derives Routing_Sequence_Id
For Create, OPERATION_SEQUENCE_ID is derived from BOM_OPERATION_SEQUENCES_S. BOM_OP_RESOURCES_INTERFACE Required Data for Creating Resource Each imported record must have a value for the following columns:
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed Open Bill of Material Interface 20 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Insert RESOURCE_SEQ_NUM RESOURCE_ID OPERATION_SEQUENCE_ID
If a resource to an alternate routing is being created and the value for ROUTING_SEQUENCE_ID or OPERATION_SEQUENCE_ID is not entered, then the value must be entered in the ALTERNATE_ROUTING_DESIGNATOR column. Required Data for Updating a Resource To identify the Resource record you are trying to update, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update OPERATION_SEQUENCE_ID RESOURCE_SEQ_NUM Required Data for Deleting a Resource To identify the Resource record you are trying to delete, you must have a value for the following columns: PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded TRANSACTION_TYPE = Update OPERATION_SEQUENCE_ID RESOURCE_SEQ_NUM Derived Data The BOM_OP_RESOURCES_INTERFACE table contains user-friendly column. The Bill and Routing Interface program uses the values entered in these columns to derive unique identifiers.
The following tables lists the user-friendly columns and the corresponding column that stores the derived values:
User Friendly Columns Derived Column Operation_Seq_Num Effectivity_Date Open Bill of Material Interface 21 Routing_Sequence_Id If the above mentioned values are entered, Interface programs derives Operation_Sequence_Id
Open Bill of Material Interface 22
User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Routing_Designato r
If the above mentioned values are entered, Interface programs derives Routing_Sequence_Id
MTL_RTG_ITEM_REVS_INTERFACE Required Data To Insert, Update and Delete data into MTL_RTG_ITEM_REVS_INTERFACE, values must be assigned to the following columns:
PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded PROCESS_REVISION ORGANIZATION_ID INVENTORY_ITEM_ID Derived Data The Bill and Routing Interface program defaults to the system date for EFFECTIVITY_DATE column if no value is entered. NOTE: If a value for the ASSEMBLY_ITEM_NUMBER or COMMON_ITEM_NUMBER column is entered, the system item flexfield separator between each segment of the item number should be entered. Examples 1. Deleting BOM INSERT INTO bom_bill_of_mtls_interface (organization_id, assembly_item_id, Transaction_type, Process_flag) VALUES (207,4749,'Delete',1); INSERT INTO BOM_INTERFACE_DELETE_GROUPS (entity_name, delete_group_name, Description) VALUES ('BOM_BILL_OF_MTLS_INTERFACE', 'SK-DEL','SK DELETE GROUP'); Open Bill of Material Interface 23 Open Bill of Material Interface 24 2. CREATING BOM and ROUTING INSERT INTO bom_bill_of_mtls_interface (organization_id, assembly_item_id, Assembly_type, Transaction_type, Process_flag) VALUES (207,4749,1,'Create',1); INSERT INTO bom_inventory_comps_interface (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag) VALUES (4755,4749,207,300, to_date('24-AUG-99'),'Create',1); INSERT INTO bom_inventory_comps_interface (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag) VALUES (4757,4749,207,200, To_date('24-AUG-99'),'Create',1); INSERT INTO bom_inventory_comps_interface (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag) VALUES (4769,4749,207,100, to_date('24-AUG-99'),'Create',1); INSERT INTO BOM_OP_ROUTINGS_INTERFACE (assembly_item_id, organization_id, routing_type, transaction_type, process_flag) VALUES (4749,207,1,'Insert',1); INSERT INTO BOM_OP_SEQUENCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, Department_code, Open Bill of Material Interface 25 effectivity_date, transaction_type, process_flag, operation_description) VALUES (4749,207,100,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Paint Wagon'); INSERT INTO BOM_OP_SEQUENCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description) VALUES (4749,207,200,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Attach Rear Assembly'); INSERT INTO BOM_OP_SEQUENCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description) VALUES (4749,207,300,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Attach Front Assembly'); INSERT INTO BOM_OP_SEQUENCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description) VALUES (4749,207,400,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Pack Wagon in box'); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, Open Bill of Material Interface 26 usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,100, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,8,0.1250,1,10); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,100, to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.0010,2,20); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,200, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,12,0.08333333,1,10); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,200, Open Bill of Material Interface 27 to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.0010,2,20); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,300, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,10,0.1000,1,10); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,300, to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.00010,2,20); INSERT INTO BOM_OP_RESOURCES_INTERFACE (assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num) VALUES (4749,207,400, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,25,0.0400,1,10); 3. UPDATING A BOM - Changing the Effectivity Date INSERT INTO bom_inventory_comps_interface Open Bill of Material Interface 28 (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date) VALUES (4755,4749,207,300, to_date('24-AUG-99'),'Update',1, to_date('25-AUG-99')); INSERT INTO bom_inventory_comps_interface (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date) VALUES (4757,4749,207,200, To_date('24-AUG-99'),'Update',1, to_date('25-AUG-99')); INSERT INTO bom_inventory_comps_interface (component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date) VALUES (4769,4749,207,100, to_date('24-AUG-99'),'Update',1, to_date('25-AUG-99')); 4. REVIEWING row in the MTL_INTERFACE_ERRORS table SELECT process_flag, err. transaction_id, error_message, message_name FROM mtl_interface_errors err, bom_op_resources_interface bom WHERE err.transaction_id = bom.transaction_id About The Author Sanjeev Kale is a Sr. Technical Analyst for Oracle Worldwide Customer Support in Orlando, Florida. He currently supports the entire manufacturing suite of products including Master Scheduling/MRP, Work in Process, Cost Management, Bills of Material, and Engineering.