Top Banner
Open Bill of Material Interface 1 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.
28
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BOM OPEN Interface

Open Bill of Material Interface 1

OPEN BILLS OF MATERIAL INTERFACE

Sanjeev KaleOracle Corporation

Introduction

Bills of material can be imported into Oracle Bills of Material or Oracle Engineering from any source using Bills andRouting Interface. Existing Bills and product families can also be updated or deleted. Oracle Bills of Material andOracle Engineering validates the data, ensuring that the imported bills of material contain the same bill detail as thosemanually entered by Define Bill of Material form.

This paper focuses on understanding of importing Bills and routings from legacy system to Oracle Bills of Materialand Oracle Engineering. This paper is designed to supplement Oracle Manufacturing, Distribution, Sales and ServiceOpen 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 OrganizationsYes Run the interface for all organization codes in

the bill of material and routing interfacetables.

No Run the Interface program only for theorganization the user is in. The interfaceprogram only processes bill of material androuting interface records in the currentorganization.

Page 2: BOM OPEN Interface

Open Bill of Material Interface 2

Import RoutingYes Import records from the routing interface

tables for the current organization or allorganizations.

No Do not import records from the routinginterface tables.

Import Bills of MaterialYes Import records from the bills of material

interface tables for the current organization orall organization.

No Do not import records from the bills ofmaterial interface tables.

Delete Processed RowsYes 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 successfullyprocessed rows.

Each Interface table’s required columns and derived columns are discussed in detail in the following pages. Look atthe 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

Page 3: BOM OPEN Interface

Open Bill of Material Interface 3

b) You can update the bill component by populating the following fields• Component_Item_Id,• Operation_Seq_Num,• Effectivity_date,• Assembly_Item_Id and• Organization_Id

Since Component_Sequence_Id is a derived column if the following columns are populated.• Bill_Sequence_Id,• Component_Item_Id,• Operation_Seq_Num and• Effectivity_date

and Bill_Sequence_Id is a derived column if the following columns are populated• Assembly_Item_Id ,• Organization_Id and• Alternate_Bom_Designator (if a alternate bill exists)

Functional OverviewBefore using the Bill and Routing Interface, a custom program must be written to extract bill of material andcomponent details from the source system and this program must insert rows in the following tables for eachextracted 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 ImportBills 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 andBOM_INVENTORY_COMPS_INTERFACE tables must be populated. Using the bill of material header informationand components from these two tables, details can be created. Similarly BOM_REF_DESGS_INTERFACE andBOM_SUB_COMPS_INTERFACE tables can be populated to assign reference designators and substitutecomponents 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. Usingthe 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 isassigned to an operation. Primary and alternate bills of material can be simultaneously imported. Since the Bill andRouting Interface program validate data the same way the Define Routing or Define Engineering Routing form verifiesdata, the alternate bill cannot be defined if the primary bill does not exist. Therefore the primary bill must be importedbefore importing the alternate bill.

Page 4: BOM OPEN Interface

Open Bill of Material Interface 4

Using the Bill and Routing Interface program, manufacturing and engineering bills of material / routing can beimported. Specify a value in the ASSEMBLY_TYPE column to determine the type of bill to be imported. Specify avalue in the ROUTING_TYPE column to determine the type of routing to be imported.

Setting up for Bills of Material / Routing ImportThere are no additional setup steps in Oracle Bills of Material or Oracle Engineering beyond those already required tomanually define manufacturing and engineering bills of material.

• All items and standard comments must be defined before they can be assigned to a manufacturing orengineering bill of material.

• Standard operations, resources and standard instructions must be defined in Oracle Bills of Material beforethey can be assigned to a manufacturing or engineering routing.

• Since the Bill and Routing Interface program is launched and managed through the concurrent manager, itmust be ensured that the concurrent manager is running before importing any bills.

Transaction TypeTransaction_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 InterfaceAll 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 theBOM_BILL_OF_MTLS_INTERFACE table.

• BOM_COMPONENTS_API - Assigns, validates and transacts component data in theBOM_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 theMTL_ITEM_REVISIONS_INTERFACE table.

• BOM_ROUTINGINTERFACE_PUB

• BOM_SUBSTITUTE_COMPONENT_API - Assigns, validates and transacts substitute component data inthe BOM_SUB_COMPS_INTERFACE table.

Process Flow

Routing Data

• Assign routing data – all the rows in the BOM_OP_ROUTINGS_INTERFACE table are processed withPROCESS_FLAG = 1♦ Assign routing sequence Id♦ Assign common routing♦ Populate mandatory columns with default values.♦ Set PROCESS_FLAG = 2 if assigning is successful.

Page 5: BOM OPEN Interface

Open Bill of Material Interface 5

• Validate routing - all the rows in the BOM_OP_OPERATIONS_INTERFACE table are processed withPROCESS_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 withPROCESS_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 withPROCESS_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 withPROCESS_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 withPROCESS_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 withPROCESS_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 withPROCESS_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 withPROCESS_FLAG = 1.

Page 6: BOM OPEN Interface

Open Bill of Material Interface 6

♦ Assign primary and foreign keys.♦ Populate mandatory columns with default values.♦ Set PROCESS_FLAG = 2 if assigning is successful.

• Assign substitute component data - all the rows in the BOM_SUBS_COMPS_INTERFACE table are processedwith PROCESS_FLAG = 1.

♦ Assign primary and foreign keys.♦ Populate mandatory columns with default values.♦ Set PROCESS_FLAG = 2 if assigning is successful.

Important BOM Interface Validations

Validations for Assembly/Component Item

• Assembly Item must be BOM enabled.• Mfg bills must have mfg assembly items• Alternate mfg bill cannot have a primary engineering bill.• Component cannot be added to a bill where the same component, with same operation sequence and

effectivity date already exists on the bill.• Components cannot be added to a bill if it violates the rules shown in the following table.

Parent

Child

Configurd ATO Model ATO Option Class ATO Standard

Planning N N N NConfigured Y Y Y YATO Model P P P NATO Option Class P P P NATO Standard Y Y Y YPTO Model N N N NPTO Option N N N NPTO Standard N N N NProduct Family N N N Y

Parent

Child

PTOModel

PTO OptionClass

PTOStandard

Product Family

Planning N N N NConfigurd Y Y N NATO Model P P N NATO Option Class N N N NATO Standard O O N YPTO Model P P N NPTO Option P P N NPTO Standard Y Y Y NProduct Family N N N NLegend:Y = AllowedN = Not AllowedP = Must be PhantomO = Must be Option

Page 7: BOM OPEN Interface

Open Bill of Material Interface 7

For example, if the Parent item is PTO Model, it is not allowed to have a component that is a planning item, Itis allowed to have a component that is a configured item, an ATO model components must be a phantomassembly, 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 beadded that has either the item attributes Check ATP(ATP_FLAG) set to Yes or ATPComponents(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 RowsThe Bill and Routing Interface program validate the required data for 6 (Bills) and 5 (Routing) interface tables. Bill ofmaterial validation ensures that each row has an included or defaulted value for all required columns and verifies anyinterdependent relationships.

When a bill is imported, the Bill and Routing Interface program validate all rows in the Interface tables that have aPROCESS_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 thePROCESS_FLAG for the row to 3 (Assign/Validation failed) and inserts a row in the MTL_INTERFACE_ERRORStable.If the Bill and Routing Interface program cannot insert the row into one of the production tables, the program sets thePROCESS_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 theproduction 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 columnin the error interface table with the same value as the TRANSACTION_ID value. Each error also has a value forMESSAGE_NAME and REQUEST_ID columns in the error interface table. The MESSAGE_NAME columncorresponds to message stored in Oracle Application Message Dictionary and REQUEST_ID column stores theconcurrent request id. If the program detects any internal database error, the program stores the internal error in theMESSAGE_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 failsvalidation, the Bill and Routing Interface program imports the bill of material/routing and other validates components.

Page 8: BOM OPEN Interface

Open Bill of Material Interface 8

The program only fails the record where the error occurred. If however, the row in theBOM_BILL_OF_MTLS_INTERFACE/BOM_OP_ROUTINGS_INTERFACE table fails the bill of material and all of itsdetails (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 tablehave a value for PROCESS_FLAG, records can be easily identified that are successfully imported into Oracle Bills ofMaterial and Oracle Engineering, or records that failed validation or import. These records can be identified by theunique value for the TRANSACTION_ID column.

SELECT ERR.TRANSACTION_ID, ERROR_MESSAGE, MESSAGE_NAMEFROM MTL_INTERFACE_ERRORS ERR, BOM_BILL_OF_MTLS_INTERFACE BOIWHERE 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, thePROCESS_FLAG must be set to 1 (Pending) for that row. When the Bill and Routing Interface is resubmitted all rowspending validation are processed.

Inserting into the INTERFACE tableThe 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 ordefaulted value. For example, CREATION_DATE column is a derived data column. Bill and Routing Interfaceprogram automatically defaults to the current date. Some of the Interface table contain user-friendly columns thatallows the user to enter data easily in the interface table. The Bill and Routing Interface program uses the valuesentered for these user-friendly columns to derive unique identifiers. To import a bill of material, a value forORGANIZATION_CODE or ORGANIZATION_ID can be included. If ORGANIZATION_CODE is entered, the Billand 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 inBOM_INTERFACE_DELETE_GROUPS with the following values:• ENTITY_NAME =

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

Page 9: BOM OPEN Interface

Open Bill of Material Interface 9

BOM_BILL_OF_MTLS_INTERFACE

Required Data for Creating Bill or Product Family

Each imported record must have a value for the following columns:• PROCESS_FLAG = 1

1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded

• TRANSACTION_TYPE = Create• ORGANIZATION_ID• ASSEMBLY_ITEM_ID• ASSEMBLY_TYPE

1 = Manufacturing 2 = Engineering bill

If an alternate bill of material is being created, then the value must be entered in theALTERNATE_BOM_DESIGNATOR column. If the bill being imported references a common bill of material then a value must be entered in theCOMMON_ORGANIZATION_ID and COMMON_ASSEMBLY_ITEM_ID columns or a value must be entered in theCOMMON_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 Interfaceprogram uses the values entered in these columns to derive unique identifiers.

Page 10: BOM OPEN Interface

Open Bill of Material Interface 10

The following tables list the user-friendly columns and the corresponding column that stores the derived values: User Friendly Columns Derived Column Organization_Code Organization_Id Item_Number Assembly_Item_Id Common_Org_Code Common_Organization_Id Common_Item_Number Common_Assembly_Item_I

d User Friendly Columns Derived Column Common_Item_Id Common_Organization_Id Alternate_Bom_Designator If the above mentioned valuesare entered, Interfaceprograms derives

common_bill_sequence_id

For Bill: User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned valuesare entered, Interfaceprograms derives

Bill_Sequence_Id

For Product Family: User Friendly Columns Derived Column Assembly_Item_Id Organization_Id If the above mentioned valuesare entered, Interfaceprograms derives

Bill_Sequence_Id

For Create Bill_sequence_id is derived from BOM_INVENTORY_COMPONENTS_S

BOM_INVENTORY_COMPS_INTERFACE

Required Data for Creating a Component

Each imported record must have a value for the following columns:

• PROCESS_FLAG = 1

Page 11: BOM OPEN Interface

Open Bill of Material Interface 11

1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded

• TRANSACTION_TYPE = Create• COMPONENT_ITEM_ID• COMPONENT_SEQUENCE_ID• OPERATION_SEQ_NUM• EFFECTIVITY_DATE• BILL_SEQUENCE_ID

If the components are assigned to an alternate bill of material and BILL_SEQUENCE_ID has no value entered, then avalue 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

Page 12: BOM OPEN Interface

Open Bill of Material Interface 12

Component_Item_Number Component_Item_Id Substitute_Comp_Number Substitute_Comp_Id Location_Name Supply_Locator_id For a Component User Friendly Columns Derived Column Bill_sequence_id Component_item_id Operation_seq_num Effectivity_date If the above mentioned valuesare entered, Interfaceprograms derives

Component_Sequence_Id

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned valuesare entered, Interfaceprograms derives

Bill_Sequence_Id

For a Product Family User Friendly Columns Derived Column Bill_sequence_id Component_item_id Effectivity_date If the above mentioned valuesare entered, Interfaceprograms derives

Component_Sequence_Id

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id If the above mentioned valuesare entered, Interfaceprograms derives

Bill_Sequence_Id

For create Component_Sequence_Id is derived from BOM_INVENTORY_COMPONENTS_S.

BOM_REF_DESGS_INTERFACE

Required Data for Creating Reference Designator

This table should not be populated if you are using Product Family. Each imported record must have a value for the following columns: • PROCESS_FLAG = 1

Page 13: BOM OPEN Interface

Open Bill of Material Interface 13

1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded

• TRANSACTION_TYPE = Create• COMPONENT_SEQUENCE_ID• COMPONENT_REFERENCE_DESIGNATOR

Required Data for Updating Reference Designator

To identify the reference designator record you are trying to update, you must have a value for the followingcolumns:

• 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 followingcolumns:

• 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 valuesare entered, Interfaceprograms derives

Component_Sequence_Id

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned valuesare entered, Interface

Bill_Sequence_Id

Page 14: BOM OPEN Interface

Open Bill of Material Interface 14

programs derives

BOM_SUB_COMPS_INTERFACE

Required Data for Creating Substitute Components

This table should not be populated if you are using Product Family.

Page 15: BOM OPEN Interface

Open Bill of Material Interface 15

Each imported record must have a value for the following columns: • PROCESS_FLAG = 1

1 = Pending 3 = Assign/Validation failed 4 = Import Failed 7 = Import Succeeded

• TRANSACTION_TYPE = Create• COMPONENT_SEQUENCE_ID• SUBSTITUTE_COMPONENT_ID• SUBSTITUTE_ITEM_QUANTITY

Required Data for Updating Substitute Components

To identify the substitute component record you are trying to update, you must have a value for the followingcolumns:

• 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 followingcolumns:

• 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 valuesare entered, Interfaceprograms derives

Component_Sequence_Id

Page 16: BOM OPEN Interface

Open Bill of Material Interface 16

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Bom_Designator If the above mentioned valuesare entered, Interfaceprograms derives

Bill_Sequence_Id

MTL_ITEM_REVISIONS_INTERFACE

Required Data for Creating Item Revisions

Each imported record must have a value for the following columns: • 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 RoutingInterface program inserts a row into the MTL_ITEM_REVISIONS_INTERFACE table. To assign multiple itemrevisions, data can be directly inserted into the MTL_ITEM_REVISIONS_INTERFACE table. If the validation issuccessful, 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

Page 17: BOM OPEN Interface

Open Bill of Material Interface 17

• TRANSACTION_TYPE = Insert• ORGANIZATION_ID• ASSEMBLY_ITEM_ID• ROUTING_TYPE

1 = Manufacturing 2 = Engineering bill

If an alternate routing is being created, then a value must be entered in the ALTERNATE_ROUTING_DESIGNATORcolumn. If the routing being imported references a common routing, then a value must be entered in theCOMMON_ROUTING_SEQUENCE_ID or the COMMON_ASSEMBLY_ITEM_ID column. Routings can onlyreference 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 theCOMMON_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 Interfaceprogram 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

Page 18: BOM OPEN Interface

Open Bill of Material Interface 18

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Routing_Designator

If the above mentioned valuesare entered, Interfaceprograms derives

Routing_Sequence_Id

For Create, Routing_Sequence_id is derived from BOM_OPERATIONAL_ROUTINGS_S. If a value for the ASSEMBLY_ITEM_NUMBER or COMMON_ITEM_NUMBER column is entered, the system itemflexfield 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, thena 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

Page 19: BOM OPEN Interface

Open Bill of Material Interface 19

7 = Import Succeeded• TRANSACTION_TYPE = Delete• OPERATION_SEQUENCE_ID

Derived Data

The BOM_OP_SEQUENCES_INTERFACE table contains user-friendly columns. The Bill and Routing Interfaceprogram 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 valuesare entered, Interfaceprograms derives

Operation_Sequence_Id

User Friendly Columns Derived Column Assembly_item_id Organization_Id Alternate_Routing_designator

If the above mentioned valuesare entered, Interfaceprograms derives

Routing_Sequence_Id

For Create, OPERATION_SEQUENCE_ID is derived from BOM_OPERATION_SEQUENCES_S.

BOM_OP_RESOURCES_INTERFACE

Required Data for Creating Resource

Each imported record must have a value for the following columns:

• PROCESS_FLAG = 1 1 = Pending 3 = Assign/Validation failed

Page 20: BOM OPEN Interface

Open Bill of Material Interface 20

4 = Import Failed 7 = Import Succeeded

• TRANSACTION_TYPE = Insert• RESOURCE_SEQ_NUM• RESOURCE_ID• OPERATION_SEQUENCE_ID

If a resource to an alternate routing is being created and the value for ROUTING_SEQUENCE_ID orOPERATION_SEQUENCE_ID is not entered, then the value must be entered in theALTERNATE_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 Interfaceprogram 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

Page 21: BOM OPEN Interface

Open Bill of Material Interface 21

Routing_Sequence_Id If the above mentioned valuesare entered, Interfaceprograms derives

Operation_Sequence_Id

Page 22: BOM OPEN Interface

Open Bill of Material Interface 22

User Friendly Columns Derived Column Assembly_Item_Id Organization_Id Alternate_Routing_Designator

If the above mentioned valuesare entered, Interfaceprograms derives

Routing_Sequence_Id

MTL_RTG_ITEM_REVS_INTERFACE

Required Data

To Insert, Update and Delete data into MTL_RTG_ITEM_REVS_INTERFACE, values must be assigned to thefollowing 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 isentered.

NOTE: If a value for the ASSEMBLY_ITEM_NUMBER or COMMON_ITEM_NUMBER column is entered, thesystem 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');

Page 23: BOM OPEN Interface

Open Bill of Material Interface 23

Page 24: BOM OPEN Interface

Open Bill of Material Interface 24

2. CREATING BOM and ROUTING

INSERT INTO bom_bill_of_mtls_interface(organization_id, assembly_item_id, Assembly_type, Transaction_type, Process_flag)VALUES (207,4749,1,'Create',1);

INSERT INTO bom_inventory_comps_interface(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag)VALUES(4755,4749,207,300, to_date('24-AUG-99'),'Create',1);

INSERT INTO bom_inventory_comps_interface(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag)VALUES(4757,4749,207,200, To_date('24-AUG-99'),'Create',1);

INSERT INTO bom_inventory_comps_interface(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag)VALUES(4769,4749,207,100, to_date('24-AUG-99'),'Create',1);

INSERT INTO BOM_OP_ROUTINGS_INTERFACE(assembly_item_id, organization_id, routing_type, transaction_type, process_flag)VALUES (4749,207,1,'Insert',1);

INSERT INTO BOM_OP_SEQUENCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, Department_code,

Page 25: BOM OPEN Interface

Open Bill of Material Interface 25

effectivity_date, transaction_type, process_flag, operation_description)VALUES(4749,207,100,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Paint Wagon');

INSERT INTO BOM_OP_SEQUENCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description)VALUES(4749,207,200,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Attach Rear Assembly');

INSERT INTO BOM_OP_SEQUENCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description)VALUES(4749,207,300,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Attach Front Assembly');

INSERT INTO BOM_OP_SEQUENCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, Department_code, effectivity_date, transaction_type, process_flag, operation_description)VALUES(4749,207,400,'SK-DEPT', to_date('24-AUG-99'),'Insert',1, 'Pack Wagon in box');

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type,

Page 26: BOM OPEN Interface

Open Bill of Material Interface 26

usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,100, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,8,0.1250,1,10);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,100, to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.0010,2,20);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,200, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,12,0.08333333,1,10);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,200,

Page 27: BOM OPEN Interface

Open Bill of Material Interface 27

to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.0010,2,20);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,300, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,10,0.1000,1,10);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,300, to_date('24-AUG-99'),'Insert',1, 'SK-TOOLS',1,1000,0.00010,2,20);

INSERT INTO BOM_OP_RESOURCES_INTERFACE(assembly_item_id, organization_id, operation_seq_num, effectivity_date, transaction_type, process_flag, resource_code, basis_type, usage_rate_or_amount_inverse, usage_rate_or_amount, schedule_flag, resource_seq_num)VALUES(4749,207,400, to_date('24-AUG-99'),'Insert',1, 'SK-WORKER',1,25,0.0400,1,10);

3. UPDATING A BOM - Changing the Effectivity Date

INSERT INTO bom_inventory_comps_interface

Page 28: BOM OPEN Interface

Open Bill of Material Interface 28

(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date)VALUES(4755,4749,207,300, to_date('24-AUG-99'),'Update',1, to_date('25-AUG-99'));

INSERT INTO bom_inventory_comps_interface(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date)VALUES(4757,4749,207,200, To_date('24-AUG-99'),'Update',1, to_date('25-AUG-99'));

INSERT INTO bom_inventory_comps_interface(component_item_id, assembly_item_id, organization_id, operation_seq_num, effectivity_date, Transaction_type, Process_flag, new_effectivity_date)VALUES(4769,4749,207,100, to_date('24-AUG-99'),'Update',1, to_date('25-AUG-99'));

4. REVIEWING row in the MTL_INTERFACE_ERRORS table

SELECT process_flag, err. transaction_id, error_message, message_nameFROM mtl_interface_errors err, bom_op_resources_interface bomWHERE err.transaction_id = bom.transaction_id

About The AuthorSanjeev Kale is a Sr. Technical Analyst for Oracle Worldwide Customer Support in Orlando, Florida. He currentlysupports the entire manufacturing suite of products including Master Scheduling/MRP, Work in Process, CostManagement, Bills of Material, and Engineering.