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

N
Y
P
P
Y
N
N
N
N

N
Y
P
P
Y
N
N
N
N

N
Y
P
P
Y
N
N
N
N

PTO Option
Class

PTO
Standard

Child
Planning
Configured
ATO Model
ATO Option Class
ATO Standard
PTO Model
PTO Option
PTO Standard
Product Family

Parent

PTO
Model

Child
Planning
Configurd
ATO Model
ATO Option Class
ATO Standard
PTO Model
PTO Option
PTO Standard
Product Family

N
Y
P
N
O
P
P
Y
N

N
Y
P
N
O
P
P
Y
N

ATO Standard

N
Y
N
N
Y
N
N
N
Y
Product Family

N
N
N
N
N
N
N
Y
N

Legend:
Y = Allowed
N = Not Allowed
P = Must be Phantom
O = Must be Option

Open Bill of Material Interface 6

N
N
N
N
Y
N
N
N
N

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


Organization_Code
Item_Number
Common_Org_Code
Common_Item_Number

Derived Column
Organization_Id
Assembly_Item_Id
Common_Organization_Id
Common_Assembly_Item_I
d

User Friendly Columns


Common_Item_Id
Common_Organization_Id
Alternate_Bom_Designator
If the above mentioned values
are entered, Interface
programs derives

Derived Column

common_bill_sequence_i
d

For Bill:
User Friendly Columns
Assembly_Item_Id
Organization_Id
Alternate_Bom_Designator
If the above mentioned values
are entered, Interface
programs derives

Derived Column

Bill_Sequence_Id

For Product Family:


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

Derived Column

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 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
Organization_Code
Assembly_Item_Number

Derived Column
Organization_Id
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
Bill_sequence_id
Component_item_id
Operation_seq_num
Effectivity_date
If the above mentioned values
are entered, Interface
programs derives

Derived Column

User Friendly Columns


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

Derived Column

Component_Sequence_Id

Bill_Sequence_Id

For a Product Family


User Friendly Columns
Bill_sequence_id
Component_item_id
Effectivity_date
If the above mentioned values
are entered, Interface
programs derives

Derived Column

User Friendly Columns


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

Derived Column

Component_Sequence_Id

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 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
Bill_sequence_id
Component_item_id
Operation_seq_num
Effectivity_date
If the above mentioned values
are entered, Interface
programs derives

Derived Column

User Friendly Columns


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

Derived Column

Component_Sequence_Id

Bill_Sequence_Id

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


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

Derived Column

Component_Sequence_Id

Open Bill of Material Interface 15

User Friendly Columns


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

Derived Column

Bill_Sequence_Id

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
Assembly_Item_Number
Organization_Code
Common_Item_Number
Location_Name
Line_code

Derived Column
Assembly_Item_Id
Organization_Id
Common_Assembly_Item_I
d
Completion_Locator_Id
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


Operation_Code
Department_Code
Organization_Code
Assembly_Item_Number
Resoure_Code1
Resoure_Code2
Resoure_Code3

Derived Column
Standard_Operation_Id
Department_Id
Organization_Id
Assembly_Item_Id
Resource_Id1
Resource_Id2
Resource_Id3

User Friendly Columns


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

Derived Column

User Friendly Columns


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

Derived Column

Operation_Sequence_Id

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


Assembly_Item_Number
Resoure_Code
Organization_Code
Activity

User Friendly Columns


Operation_Seq_Num
Effectivity_Date

Derived Column
Assembly_Item_Id
Resource_Id
Organization_Id
Activity_Id

Derived Column

Open Bill of Material Interface 20

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

Operation_Sequence_Id

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