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


Parent
Child Planning

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

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

N Y P P Y N N N N
PTO Model

N Y P P Y N N N N
PTO Option Class

N Y P P Y N N N N
PTO Standard

N Y N N Y N N N Y
Product Family

Parent
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

N N N N N N N Y N

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

Derived Column

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 User Friendly Columns Assembly_Item_Id Organization_Id If the above mentioned values are entered, Interface programs derives Derived Column

Component_Sequence_Id

Derived Column

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 User Friendly Columns Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned values are entered, Interface Derived Column

Component_Sequence_Id

Derived Column

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

Operation_Sequence_Id

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

Derived Column

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

Derived Column Assembly_Item_Id Resource_Id Organization_Id Activity_Id

User Friendly Columns Operation_Seq_Num Effectivity_Date

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