You are on page 1of 28

OPEN BILLS OF MATERIAL INTERFACE

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 1


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 table’s 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 2


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 3


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 4


• 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 5


♦ 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 Configurd ATO Model ATO Option Class ATO Standard

Child
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 PTO PTO Option PTO Product Family


Model Class Standard
Child
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 6


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 bill’s 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 bill’s alternate must be same as the current bill’s 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 bill’s components must exist in the current bill’s organization.
• Commons bill’s substitute components must exist in the current bill’s organization.
• Components can be added ONLY to 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 7


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 8


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 9


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 common_bill_sequence_i
are entered, Interface d
programs derives

For Bill:

User Friendly Columns Derived Column


Assembly_Item_Id
Organization_Id
Alternate_Bom_Designator
If the above mentioned values Bill_Sequence_Id
are entered, Interface
programs derives

For Product Family:

User Friendly Columns Derived Column


Assembly_Item_Id
Organization_Id
If the above mentioned values Bill_Sequence_Id
are entered, Interface
programs derives

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 10


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 11


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 Component_Sequence_Id
are entered, Interface
programs derives

User Friendly Columns Derived Column


Assembly_Item_Id
Organization_Id
Alternate_Bom_Designator
If the above mentioned values Bill_Sequence_Id
are entered, Interface
programs derives

For a Product Family

User Friendly Columns Derived Column


Bill_sequence_id
Component_item_id
Effectivity_date
If the above mentioned values Component_Sequence_Id
are entered, Interface
programs derives

User Friendly Columns Derived Column


Assembly_Item_Id
Organization_Id
If the above mentioned values Bill_Sequence_Id
are entered, Interface
programs derives

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 12


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 Component_Sequence_Id
are entered, Interface
programs derives

User Friendly Columns Derived Column


Assembly_Item_Id
Organization_Id
Alternate_Bom_Designator
If the above mentioned values Bill_Sequence_Id
are entered, Interface

Open Bill of Material Interface 13


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 14


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 Component_Sequence_Id
are entered, Interface
programs derives

Open Bill of Material Interface 15


User Friendly Columns Derived Column
Assembly_Item_Id
Organization_Id
Alternate_Bom_Designator
If the above mentioned values Bill_Sequence_Id
are entered, Interface
programs derives

MTL_ITEM_REVISIONS_INTERFACE

Required Data for Creating Item Revisions


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
• INVENTORY_ITEM_ID
• ORGANIZATION_ID
• REVISION

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 16


• 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 17


User Friendly Columns Derived Column
Assembly_Item_Id
Organization_Id
Alternate_Routing_Designato
r
If the above mentioned values Routing_Sequence_Id
are entered, Interface
programs derives

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:

• PROCESS_FLAG = 1
1 = Pending
3 = Assign/Validation failed
4 = Import Failed
7 = Import Succeeded
• TRANSACTION_TYPE = Insert
• ROUTING_SEQUENCE_ID
• OPERATION_SEQ_NUM
• DEPARTMENT_ID
• EFFECTIVITY_DATE

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 18


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_Code Standard_Operation_Id
Department_Code Department_Id
Organization_Code Organization_Id
Assembly_Item_Number Assembly_Item_Id
Resoure_Code1 Resource_Id1
Resoure_Code2 Resource_Id2
Resoure_Code3 Resource_Id3

User Friendly Columns Derived Column


Operation_Seq_Num
Effectivity_Date
Routing_Sequence_Id
If the above mentioned values Operation_Sequence_Id
are entered, Interface
programs derives

User Friendly Columns Derived Column


Assembly_item_id
Organization_Id
Alternate_Routing_designato
r
If the above mentioned values Routing_Sequence_Id
are entered, Interface
programs derives

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 19


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


Assembly_Item_Number Assembly_Item_Id
Resoure_Code Resource_Id
Organization_Code Organization_Id
Activity Activity_Id

User Friendly Columns Derived Column


Operation_Seq_Num
Effectivity_Date

Open Bill of Material Interface 20


Routing_Sequence_Id
If the above mentioned values Operation_Sequence_Id
are entered, Interface
programs derives

Open Bill of Material Interface 21


User Friendly Columns Derived Column
Assembly_Item_Id
Organization_Id
Alternate_Routing_Designato
r
If the above mentioned values Routing_Sequence_Id
are entered, Interface
programs derives

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 22


Open Bill of Material Interface 23
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 24


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 25


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 26


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 27


(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.

Open Bill of Material Interface 28

You might also like