23
BOM OPEN INTERFACES An Oracle White Paper by Daniel Strempke

BOM Interfaces - White Paper

Embed Size (px)

Citation preview

Page 1: BOM Interfaces - White Paper

BOM OPEN INTERFACES

An Oracle White Paper

by Daniel Strempke

Page 2: BOM Interfaces - White Paper

BOM OPEN INTERFACES

This paper covers creating, updating, and deleting Bills of Material and Routings using the BOMopen interfaces. The following information represents the requirements for release 11. Additionalinformation can be inserted by adding the column name and value to the second and third lines,respectively, in the sql scripts at the end of this paper.

You can use the Bill and Routing Interface program to create, update, or delete Manufacturing andEngineering bills of material and product families.

When you import a bill of material, the BOM Item Type attribute of the parent item determines the type ofbill created, including planning, model, option class, and standard bills. For example, if you import a modelitem and then import its bill, the Bill and Routing Interface program creates the bill as a model bill of material.

The Bill and Routing Interface validates your data the same way Oracle Bills of Material and OracleEngineering verifies bills of material and product families entered manually.

The Bill and Routing Interface program derives or defaults the columns using the same logic as the Bills ofMaterial window. When you populate a column in the interface table, the program imports the row with thedata you include and will not default a value. However, if you do not enter data in a derived or defaultedcolumn, the program automatically imports the row with the derived or defaulted value.

If you enter a value for the ITEM_NUMBER or COMMON_ITEM_NUMBER column, you must insert thesystem item flexfield separator between each segment of your item number. When the Bill and RoutingInterface program derives the segment values for an item, it searches for this separator to indicate the end ofone segment value and the start of the next segment value.

If you import a manufacturing bill of material, the bill is visible to both Oracle Bills of Material and OracleEngineering. However, if you import an engineering bill of material, it is only accessible through OracleEngineering.

You should import primary bills of materials before importing alternate bills. If the program tries to validatean alternate bill before validating the primary bill, the record fails.

All products (items) and components, need to be set up and assigned to the proper organizations in theInventory Application before beginning the BOM import process.

Although you can import bills and routings simultaneously, all routing operations must exist before you canassign a component to an operation. If the routing does not exist, you cannot assign an operation sequenceto a component on a bill of material.Note: the OPERATION_SEQ_NUM must be set to 1 if no routing has been defined.

Resources must be defined in BOM application and assigned to departments before they can be assigned toan operation.

Departments must be defined in the BOM application before you can add an operation using theBOM_OP_SEQUENCE_INTERFACE.

Standard operations must be defined in Oracle Bill of Materials before they can be assigned to aManufacturing or Engineering routing.

Page 3: BOM Interfaces - White Paper

You cannot dynamically create locations for your subinventories using the interface tables. If you specify avalue for the COMPLETION_LOCATOR_ID column, the location must already exist in Oracle Inventory.

Since you launch and manage the Bill and Routing Interface program through the concurrent manager, youmust insure that the concurrent manage is running before you can import any bills.

After populating the interface tables, you can run the Bill and Routing Interface program. The column,PROCESS_FLAG, indicates the current state of processing for a row in the interface table. Possible valuesfor the column include:

1 - Pending2 - Assigned Succeeded3 - Assign/Validation Failed4 - Validation Succeeded7 - Import Succeeded

You can use the following sql scripts to check for errors which will be located in theMTL_INTERFACE_ERRORS table to help resolve problems.

select table_name, column_name, organization_id, message_name, error_messagefrom mtl_interface_errorswhere request_id = xxxx; (xxxx is the concurrent request id)

or

select table_name, column_name, organization_id, message_name, error_messagefrom mtl_interface_errorswhere transaction_id = xxxx; (xxxx is the transaction id)

At the end of this paper are numerous sql scripts that you can use to find the information required for theimport process. Also included are sample scripts to enter all of the required information into each of theinterface tables.

Page 4: BOM Interfaces - White Paper

BOM_BILL_OF_MTLS_INTERFACE TABLE

This table temporarily stores bills of material header information. Each row in this table represents a uniqueManufacturing or Engineering bill and is identified by the BILL_SEQUENCE_ID.

If you are creating an alternate bill of material you must also enter a value in theALTERNATE_BOM_DESIGNATOR column.

If you enter something into REVISION, Oracle Bills of Materials will insert a record intoMTL_ITEM_REVISIONS.

If the bill you import references a common bill of material, you must enter a value in theCOMMON_ORGANIZATION_ID and COMMON_ASSEMBLY_ITEM_ID columns or you can enter avalue in the COMMON_BILL_SEQUENCE_ID column.

The Bill and Routing Interface program derives the COMMON_BILL_SEQUENCE_ID from theCOMMON_ITEM_ID, COMMON_ORGANIZATION_ID, AND ALTERNATE_BOM_DESIGNATOR.

The required fields to create a Bill in the BOM_BILL_OF_MTLS_INTERFACE table are:

PROCESS_FLAGORGANIZATION_IDASSEMBLY_ITEM_IDASSEMBLY_TYPETRANSACTION TYPE

The PROCESS_FLAG needs to be 1 for pending.

The ASSEMBLY_TYPE of the BOM; is 1 for manufacturing, and 2 for engineering.

The TRANSACTION_TYPE needs to be 'create'.

The required fields to update a Bill using the BOM_BILL_OF_MTLS_INTERFACE table are:

PROCESS_FLAG

BILL_SEQUENCE_ID orASSEMBLY_ITEM_ID or ITEM_NUMBER,ALTERNATE_BOM_DESIGNATOR, and ORGANIZATION_ID or ORGANIZATION_CODE

TRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update'.

Page 5: BOM Interfaces - White Paper

The required fields to delete a Bill using the BOM_BILL_OF_MTLS_INTERFACE table are:

PROCESS_FLAG

BILL_SEQUENCE_ID orALTERNATE_BOM_DESIGNATOR,ASSEMBLY_ITEM_ID or ITEM_MUMBER, andORGANIZATION_ID or ORGANIZATION_CODE

TRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'.

In order to delete a Bill using the interface table, you must also insert a record into theBOM_INTERFACE_DELETE_GROUPS table with the following values:

ENTITY_NAME (Must be BOM_BILL_OF MTLS_INTERFACE)DELETE_GROUP_NAME (A new name or name of an existing Delete Group for bills)DESCRIPTION (Description of the delete group)

BOM_INVENTORY_COMPS_INTERFACE

This table temporarily stores information about bill of material components and is shared by the Bills ofMaterial and the Engineering Change Order open interfaces. The Engineering Change Order open interfacewill be available at a future date.

You cannot dynamically create locations for your subinventories using the interface tables. If you specify avalue for the LOCATION_ID column, the location must already exist in Oracle Inventory.

You must specify a value in the ALTERNATE_BOM_DESIGNATOR column if you assign components toan alternate bill of material and have not entered a value for the BILL_SEQUENCE_ID column.

You can enter one reference designator and one substitute component for each component you enter.Oracle Bills of Materials will insert these records into the tables, BOM_REFERENCE_DESIGNATORS andBOM_SUBSTITUTE_COMPONENTS, respectively.

Oracle Bill of Material, enforces that only one row for a component in an operation is effective at a giventime.

Page 6: BOM Interfaces - White Paper

The required fields for creating components using the BOM_INVENTORY_COMPS_INTERFACE are:

PROCESS_FLAGCOMPONENT_ITEM_IDCOMPONENT_SEQUENCE_ID - user should not be populating the component sequence id as it getsgenerated during the importOPERATION_SEQ_NUMEFFECTIVITY_DATEBILL_SEQUENCE_IDTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'create' for creating a component.

Note: the OPERATION_SEQ_NUM must be set to 1 if no routing has been defined.

The required fields for updating components using the BOM_INVENTORY_COMPS_INTERFACE are:

COMPONENT_SEQUENCE_ID

or

BILL_SEQUENCE_ID,COMPONENT_ITEM_ID or COMPONENT_ITEM_NUMBER,OPERATION_SEQ_NUM, and EFFECTIVITY_DATE

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER, ALTERNATE_BOM_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,COMPONENT_ITEM_ID or COMPONENT_ITEM_NUMBER,OPERATION_SEQ_NUM, and EFFECTIVITY_DATE

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

If the component is unimplemented, you cannot update the record.

If you want to update the OPERATION_SEQ_NUM or EFFECTIVITY_DATE, then you must fill in theNEW_OPERATION_SEQ_NUM or NEW_EFFECTIVITY_DATE column.

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update' for updating a component.

Page 7: BOM Interfaces - White Paper

The required fields for deleting components using the BOM_INVENTORY_COMPS_INTERFACE are:

COMPONENT_SEQUENCE_ID

or

BILL_SEQUENCE_ID,COMPONENT_ITEM_ID or COMPONENT_ITEM_NUMBER,OPERATION_SEQ_NUM, and EFFECTIVITY_DATE

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER, ALTERNATE_BOM_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,COMPONENT_ITEM_ID or COMPONENT_ITEM_NUMBER,OPERATION_SEQ_NUM, and EFFECTIVITY_DATE

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

If the component is unimplemented, you cannot delete the record.

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'.

In order to delete a component using the interface table, you must also insert a record into theBOM_INTERFACE_DELETE_GROUPS table with the following values:

ENTITY_NAME (Must be BOM_INVENTORY_COMPS_INTERFACE)DELETE_GROUP_NAME (A new name or name of an existing Delete Group for bills)DESCRIPTION (Description of the delete group)

BOM_SUB_COMPS_INTERFACE

This table temporarily stores information about the substitute components associated with a bill of materialcomponent. This table is shared with bills of material and engineering change order open interfaces. Theengineering change order open interface will be available at a future date.

You can only import data into the BOM_SUB_COMPS_INTERFACE table for standard componentsassigned to standard, model, and option class bills of material.

The required fields for creating substitute components using the BOM_SUB_COMPS_INTERFACE are:

PROCESS_FLAGSUBSTITUTE_COMPONENT_IDSUBSTITUTE_ITEM_QUANTITYCOMPONENT_SEQUENCE_IDTRANSACTION_TYPE

Page 8: BOM Interfaces - White Paper

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'create' for creating a substitute.

The required fields for updating substitute components using the BOM_SUB_COMPS_INTERFACE are:

PROCESS_FLAGCOMPONENT_SEQUENCE_IDSUBSTITUTE_COMP_NUMBER or SUBSTITUTE_COMPONENT_IDTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update'

The required fields for deleting substitute components using the BOM_SUB_COMPS_INTERFACE are:

PROCESS_FLAGCOMPONENT_SEQUENCE_IDSUBSTITUTE_COMP_NUMBER or SUBSTITUTE_COMPONENT_IDTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'.

You cannot delete an unimplemented record.

BOM_OP_ROUTING_INTERFACE

This table temporarily stores information about manufacturing and engineering routings.

If you are creating an alternate routing you must also enter a value in theALTERNATE_ROUTING_DESIGNATOR column.

If you enter PROCESS_REVISION, Oracle Bill of Material will insert a record intoMTL_RTG_ITEM_REVISIONS.

If the routing you import references a common routing you must enter a value in theCOMMON_ASSEMBLY_ITEM_ID or the COMMON_ROUTING_SEQUENCE_ID columns. Routing canonly reference common routings that belong to the same organization. If the routing does not reference acommon routing, the Bill and Routing interface program defaults the value of the ROUTING_SEQUENCE_IDfor the COMMON_ROUTING_SEQUENCE_ID.

Page 9: BOM Interfaces - White Paper

The required fields for creating routings using the BOM_OP_ROUTING_INTERFACE are:

PROCESS_FLAGASSEMBLY_ITEM_IDORGANIZATION_IDROUTING_TYPETRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'insert'.

The ROUTING_TYPE is 1 for manufacturing and 2 for engineering.

You can specify in the ROUTING_TYPE column whether the routing is a manufacturing routing or anengineering routing. If you do not include a value for this column, it is defaulted to a 1 for manufacturing.

The required fields for updating routings using the BOM_OP_ROUTING_INTERFACE are:

PROCESS_FLAGROUTING_SEQUENCE_ID

or

ASSEMBLY_ITEM_IDORGANIZATION_IDALTERNATE_ROUTING_DESIGNATORTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update'

The Bill and Routing Interface program does not derive or default data when updating a routing.

The required fields for deleting routings using the BOM_OP_ROUTING_INTERFACE are:

PROCESS_FLAGROUTING_SEQUENCE_ID

or

ASSEMBLY_ITEM_IDORGANIZATION_IDALTERNATE_ROUTING_DESIGNATORTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'

Page 10: BOM Interfaces - White Paper

The Bill and Routing Interface program does not derive or default data when deleting a routing.

The TRANSACTION_TYPE needs to be 'delete'.

BOM_OP_SEQUENCES_INTERFACE

This table temporarily stores information about routing operations. You may define multiple operations for arouting. You must specify the department in which every operation will occur.

You cannot have overlapping effective dates for the same operation.

You can enter three resources and three instructions for each operation sequence. Oracle Bills of Materialwill insert these records into the tables, BOM_OPERATION_RESOURCES andBOM_OPERATION_INSTRUCTIONS, respectively.

You must specify a value in the ALTERNATE_ROUTING_DESIGNATOR column if you assign operationsto an alternate routing and have not entered a value for the ROUTING_SEQUENCE_ID column.

To assign standard operations, you must have previously defined them in the Define Standard Operationsform in Oracle Bills of Material. Resources and attachments are also defaulted if you insert a value in theSTANDARD_OPERATION_ID column. Resources must also be predefined in Oracle Bills of Material.

The fields required for creating an operation using the BOM_OP_SEQUENCES_INTERFACE are:

PROCESS_FLAGROUTING_SEQUENCE_IDOPERATION_SEQ_NUMDEPARTMENT_IDEFFECTIVITY_DATETRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'insert'.

The fields required for updating an operation using the BOM_OP_SEQUENCES_INTERFACE are:

OPERATION_SEQUENCE_ID

or

ROUTING_SEQUENCE_ID, OPERATION_SEQ_NUM, EFFECTIVITY_DATE, OPERATION_TYPE

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER,ALTERNATE_ROUTING_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,OPERATION_SEQ_NUM, EFFECTIVITY_DATE, OPERATION_TYPE

Page 11: BOM Interfaces - White Paper

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update'.

To update the OPERATION_SEQ_NUM or EFFECTIVITY_DATE, you must enter a value in theNEW_OP_SEQ_NUM and NEW_EFFECTIVITY_DATE columns.

The fields required for deleting an operation using the BOM_OP_SEQUENCES_INTERFACE are:

OPERATION_SEQUENCE_ID

or

ROUTING_SEQUENCE_ID, OPERATION_SEQ_NUM, EFFECTIVITY_DATE, OPERATION_TYPE

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER,ALTERNATE_ROUTING_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,OPERATION_SEQ_NUM, EFFECTIVITY_DATE, OPERATION_TYPE

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'.

Once the operation is identified, the entire record will be placed in a delete group. There is no optional data.

BOM_OP_RESOURCES_INTERFACE

This table temporarily stores information about resources that you require to complete operations onroutings. You may assign multiple resources or assign the same resource multiple times at any operation.

You must specify a value in ALTERNATE_ROUTING_DESIGNATOR column if you assign resources to analternate routing and have not entered a value for the ROUTING_SEQUENCE_ID or theOPERATION_SEQUENCE_ID column.

NOTE: The resource must be set up and assigned to a department in Oracle Bill of Materials first, beforeyou can import the resources.

Page 12: BOM Interfaces - White Paper

The required fields to create a resource using the BOM_OP_RESOURCES_INTERFACE are:

PROCESS_FLAGRESOURCE_SEQ_NUMRESOURCE_IDOPERATION_SEQUENCE_IDTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'insert'.

The required fields to update a resource using the BOM_OP_RESOURCES_INTERFACE are one of thefollowing:

OPERATION_SEQUENCE_ID, RESOURCE_SEQ_NUM

or

ROUTING_SEQUENCE_ID, OPERATION_SEQ_NUM, EFFECTIVITY_DATE, RESOURCE_SEQ_NUM

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER,ALTERNATE_ROUTING_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,OPERATION_SEQ_NUM, EFFECTIVITY_DATE, RESOURCE_SEQ_NUM

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'update'.

To update the RESOURCE_SEQ_NUM you must enter a value in the NEW_RESOURCE_SEQ_NUMcolumn. The RESOURCE_SEQ_NUM column is used to determine which record will be updated.

The fields required for deleting a resource using the BOM_OP_RESOURCES_INTERFACE are one of thefollowing:

OPERATION_SEQUENCE_ID, RESOURCE_SEQ_NUM

or

Page 13: BOM Interfaces - White Paper

ROUTING_SEQUENCE_ID, OPERATION_SEQ_NUM, EFFECTIVITY_DATE, RESOURCE_SEQ_NUM

or

ASSEMBLY_ITEM_ID or ASSEMBLY_ITEM_NUMBER,ALTERNATE_ROUTING_DESIGNATOR,ORGANIZATION_ID or ORGANIZATION_CODE,OPERATION_SEQ_NUM, EFFECTIVITY_DATE, RESOURCE_SEQ_NUM

You also need to enter:

PROCESS_FLAGTRANSACTION_TYPE

The PROCESS_FLAG needs to be 1 for pending.

The TRANSACTION_TYPE needs to be 'delete'.

The Bill and Routing Interface program does not derive or default data when deleting a routing.

Page 14: BOM Interfaces - White Paper

SQL SCRIPTS

The INVENTORY_ITEM_ID in the MTL_SYSTEM_ITEMS table is system generated. It is the same numberas the ASSEMBLY_ITEM_ID in the BOM_BILL_OF_MTLS_INTERFACE the COMPONENT_ITEM_ID inthe BOM_INVENTORY_COMPS_INTERFACE table and the SUBSTITUTE_COMPONENT_ID in theBOM_SUB_COMPS_INTERFACE.

The ASSEMBLY_ITEM_ID in the BOM_BILL_OF_MTLS_INTERFACE table is the same number as theASSEMBLY_ITEM_ID in the BOM_INVENTORY_COMPS_INTERFACE, theBOM_OP_RESOURCES_INTERFACE, the BOM_OP_SEQUENCES_INTERFACE, and theBOM_OP_ROUTINGS_INTERFACE tables.

The BILL_SEQUENCE_ID in the BOM_BILL_OF_MTLS_INTERFACE table is system generated. It is thesame number as the BILL_SEQUENCE_ID in the BOM_INVENTORY_COMPS_INTERFACE table.

The COMPONENT_SEQUENCE_ID in the BOM_INVENTORY_COMPS table is system generated.

The ROUTING_SEQUENCE_ID in the BOM_OP_ROUTINGS_INTERFACE table is the same in theBOM_OP_RESOURCES_INTERFACE and the BOM_OP_SEQUENCES_INTERFACE tables.

The OPERATION_SEQUENCE_ID in the BOM_OP_SEQUENCES_INTERFACE table is the same in theBOM_OP_RESOURCES_INTERFACE table.

If you enter the ORGANIZATION_CODE, Oracle Bills of Materials will fill in the correspondingORGANIZATION_ID.

If you enter the ITEM_NUMBER, Oracle Bills of Materials will fill in the correspondingASSEMBLY_ITEM_ID.

If you enter the LOCATION_NAME , Oracle Bills of Materials will fill in the correspondingSUPPLY_LOCATOR_ID

If you enter the ASSEMBLY_ITEM_NUMBER, Oracle Bills of Materials will fill in the correspondingASSEMBLY_ITEM_ID.

If you enter the SUBSTITUTE_COMP_NUMBER , Oracle Bills of Materials will fill in the correspondingSUBSTITUTE_COMP_ID.

If you enter the COMPONENT_ITEM_NUMBER, Oracle Bills of Materials will fill in the correspondingCOMPONENT_ITEM_ID.

You can enter the BILL_SEQUENCE_ID, COMPONENT_ITEM_ID, OPERATION_SEQ_NUM, andEFFECTIVITY_DATE instead of COMPONENT_SEQUENCE_ID. The open interfaces will fill in thecorresponding COMPONENT_SEQUENCE_ID.

You can enter ASSEMBLY_ITEM_ID, ORGANIZATION_ID, and ALTERNATE_BOM_DESIGNATORinstead of BILL_SEQUENCE_ID. The open interfaces will fill in the corresponding BILL_SEQUENCE_ID.

Page 15: BOM Interfaces - White Paper

You can enter ASSEMBLY_ITEM_ID, ORGANIZATION_ID, ANDALTERNATE_ROUTING_DESIGNATOR instead of ROUTING_SEQUENCE_ID. Oracle Bills of Materialwill fill in the corresponding ROUTING_SEQUENCE_ID.

You can enter ROUTING_SEQUENCE_ID, OPERATION_SEQ_NUM, and EFFECTIVITY_DATE instead ofOPERATION_SEQUENCE_ID. Oracle Bills of Materials will fill in the correspondingOPERATION_SEQUENCE_ID.

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE ALTERNATE_BOM_DESIGNATOR

select alternate_bom_designatorfrom bom_bill_of_materialswhere assembly_item_id = &inv_item_idand organization_id = &organization_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE ASSEMBLY_ITEM_ID (INVENTORY_ITEM_ID) OF AN ITEM

select organization_id, inventory_item_id, segment1from mtl_system_itemswhere segment1 = 'xxxx'; (xxxx = name of item)

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE BILL_SEQUENCE_ID

select bill_sequence_id, assembly_item_idfrom bom_bill_of_materialswhere assembly_item_id = &inv_item_idand organization_id = &orgid ;

888888888888888888888888888888888888888888888888888888888888888888888888

TO LOOK AT BOM COMPONENT INFO

select component_sequence_id, bill_sequence_id, component_quantityfrom bom_inventory_componentswhere bill_sequence_id = &bill_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

Page 16: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO CHECK ITEMS IN BOM COMPONENTS INTERFACE TABLE

select operation_seq_num, component_item_id, component_quantity,bill_sequence_id, effectivity_date, process_flagfrom bom_inventory_comps_interface;

888888888888888888888888888888888888888888888888888888888888888888888888

TO LOOK AT BOM HEADER INFO

select assembly_item_id, organization_id, alternate_bom_designator,assembly_type, bill_sequence_idfrom bom_bill_of _materialswhere assembly_item_id = &assembly_item_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO LOOK AT BOM SUBSTITUE COMPONENT ID, QUANTITY, AND OTHER INFORMATION

select substitute_component_id, substitute_item_quantity,component_sequence_id, acd_typefrom bom_substitute_componentswhere component_sequence_id = &component_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO CHECK ITEMS IN THE BOM_SUB_COMPS_INTERFACE TABLE

select substitute_component_id, substitute_item_quantity,component_sequence_id, process_flagfrom bom_sub_comps_interface;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE COMPONENT_ITEM_ID (INVENTORY_ITEM_ID) OF AN ITEM

select organization_id, inventory_item_id, segment1from mtl_system_itemswhere segment1 = 'xxxx'; (xxxx = name of item)

888888888888888888888888888888888888888888888888888888888888888888888888

Page 17: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE COMPONENT_ITEM_SEQUENCE_ID

select component_item_id, bill_sequence_id, component_sequence_idfrom bom_inventory_componentswhere bill_sequence_id = &bill_sequence_id;

8888888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE COMPONENT_SEQUENCE_ID OF AN ITEM

select i.compontent_sequence_id, i.bill_sequence_id, b.assembly_item_idfrom bom_inventory_components i, bom_bills of materials bwhere b.assembly_item_id = &assembly_item_idand i.bill_sequence_id = b.bill_sequence_idand b.organization_id = &orgid ;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE DEPARTMENT ID

select department_id, organization_id, department_codefrom bom_departmentswhere department_code = &department_code;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE EFFECTIVITY_DATE OF A COMPONENT

select i.effectivity_date,b.bill_sequence_id, b.assembly_item_idfrom bom_inventory_components i, bom_bills of materials bwhere b.assembly_item_id = &assembly_item_idand i.bill_sequence_id = b.bill_sequence_idand b.organization_id = &orgid ;

888888888888888888888888888888888888888888888888888888888888888888888888

Page 18: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND ERROR MESSAGES IN THE MTL_INTERFACE_ERRORS TABLE

select table_name, column_name, organization_id, message_name, error_messagefrom mtl_interface_errorswhere request_id = &request_id;

or

select table_name, column_name, organization_id, message_name, error_messagefrom mtl_interface_errorswhere transaction_id = &transaction_id;

88888888888888888888888888888888888888888888888888888888888888888888888

TO GET OPERATION RESOURCE DATA

select operation_sequence_id, resource_seq_num, resource_id, usage_rate_or_amountfrom bom_operation_resourceswhere operation_sequence_id = &operation_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO GET OPERATION SEQUENCE DATAselect *from bom_operation_sequenceswhere operation_sequence_id = &operation_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE OPERATION SEQUENCE ID

select operation_sequence_id, routing_sequence_id, operation_seq_num, department_idfrom bom_operation_sequenceswhere routing_sequence_id = &routing_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

Page 19: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE OPERATION_SEQ_NUM OF A COMPONET

select i.operation_seq_num,b.bill_sequence_id, b.assembly_item_idfrom bom_inventory_components i, bom_bills of materials bwhere b.assembly_item_id = &assembly_item_idand i.bill_sequence_id = b.bill_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE ORGANIZATION ID AND ORGANIZATION CODE

select organization_id, organization_name, organization_codefrom org_organization_definitions;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND THE RESOURCE ID

select resource_id, resource_code, organization_idfrom bom_resourceswhere resource_code = &resource_code;

888888888888888888888888888888888888888888888888888888888888888888888888

TO GET ROUTING OPERATION INFO

select operation_sequence_id, routing_sequence_id, operation_seq_num, department_idfrom bom_operation_sequenceswhere routing_sequence_id = &routing_sequence_id;

888888888888888888888888888888888888888888888888888888888888888888888888

TO FIND ROUTING SEQUENCE ID

select routing_sequence_id, assembly_item_id, organization_idfrom bom_operational_routingswhere assembly_item_id = &assembly_item_id;

888888888888888888888888888888888888888888888888888888888888888888888888

Page 20: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_BILL_OF_MTLS_INTERFACE

insert into bom_ bill_of_mtls_interface(assembly_item_id, organization_id, assembly_type, process_flag, transaction_type)values (aaaa, bbbb, cccc, dddd, eeee);commit;

* aaaa = the assembly id (inventory_item_id) of the item you want to set up a BOM for.* bbbb = the organization id you want the BOM in.* cccc = the assembly type of the BOM; 1 = manufacturing, 2 = engineering.* dddd = the process flag must = 1 to be picked up by the import.* eeee = 'create' to enter a new bom

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_INVENTORY_COMPS_INTERFACE

insert into bom_inventory_comps_interface(component_item_id, process_flag, operation_seq_num, bill_sequence_id, transaction_type,effectivity_date)values (aaaa, bbbb, cccc, dddd, eeee, ffff );commit;

* aaaa = the component id (inventory_item_id) of the item you want to add to a BOM.* bbbb = the process flag must = 1 to be picked up by the import.* cccc = the operation sequence number you want the component added to.* dddd = the bill sequence id of the BOM you want to add the component to.* eeee = 'create' to add a new component.* ffff = date component is effective. You can enter sysdate.

Note: operation_seq_num must be set to 1 if no routing has been defined.

888888888888888888888888888888888888888888888888888888888888888888888888

Page 21: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_SUB_COMPS_INTERFACEinsert into bom_sub_comps_interface(process_flag, substitute_component_id, substitute_item_quantity, component_sequence_id,transaction_type)values ( aaaa, bbbb, cccc, dddd, eeee);commit;

*aaaa =. the process flag must = 1 to be picked up by the import.*bbbb = the substitue_component_id from the bom_substitute_components table for the item you want touse.*cccc = the quantity for the substitute item.*dddd = the component sequence id for the item that is being substituted.*eeee = 'insert' to create a new substitute component.

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_OP_ROUTINGS_INTERFACE

insert into bom_op_routings_interface(process_flag, assembly_item_id, organization_id, routing_type, transaction_type)values (aaaa, bbbb, cccc, dddd, eeee);commit;

* aaaa =. the process flag must = 1 to be picked up by the import.* bbbb = the assembly id (inventory_item_id) of the item you want to set up a routing for.* cccc = id of the organization you wish to set up the routing in.* dddd = manufacturing = 1; engineering = 2.* eeee = 'insert' to add a new component.

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_OP_SEQUENCES_INTERFACE

insert into bom_op_sequences_interface(process_flag, routing_sequence_id, operation_seq_num, department_id, effectivity_date,transaction_type)values ( aaaa, bbbb, cccc, dddd, eeee, ffff );commit;

*aaaa =. the process flag must = 1 to be picked up by the import.*bbbb = the routing_sequence_id from bom_operational_routings.*cccc = the operation sequence number you want.*dddd = the department_id from bom_departments*eeee = the date you want the operation effective, you can use sysdate here.*ffff = 'insert' to create a new op sequence.

NOTE: The department must be set up in Oracle Bill of Materials before you can import the op sequence.

Page 22: BOM Interfaces - White Paper

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT A RECORD INTO THE BOM_OP_RESOURCES_INTERFACE

insert into bom_op_resources_interface(process_flag, resource_seq_num, resource_id, operation_sequence_id,transaction_type)values ( aaaa, bbbb, cccc, dddd, eeee);commit;

*aaaa =. the process flag must = 1 to be picked up by the import.*bbbb = the resource sequence number you want to use.*cccc = the resource_id from bom_resources.*dddd = the operation_sequence_id from bom_operation_sequences that you wish to attach theresource to.*eeee = 'insert' to create a new op sequence.

NOTE: The resource must be set up and assigned to a department in Oracle Bill of Materials first, beforeyou can import the resources.

888888888888888888888888888888888888888888888888888888888888888888888888

TO INSERT RECORDS INTO THE BOM_BILL_OF_MTLS_INTERFACE,BOM_INVENTORY_COMPS_INTERFACE, BOM_OP_ROUTING_INTERFACE,BOM_OP_SEQUENCES_INTERFACE, and BOM_OP_RESOURCES_INTERFACE SO THAT THEY CANBE IMPORTED ALL AT THE SAME TIME

Insert in bom_bill_of_mtls_interface(assembly_item_id, organization_id, assembly_type,process_flag, transaction_type)values (&assembly_item_id,&organization_id,&assembly_type,1,'create');commit;

insert into bom_inventory_comps_interface(assembly_item_id, component_item_id, process_flag,operation_seq_nem, transaction_type, effectivity_date,organization_id)values (&assembly_item_id,&component_item_id,1,1,'create',&effectivity_date,&organization_id);commit;

Page 23: BOM Interfaces - White Paper

NOTE: THE ASSEMBLY_ITEM_ID IS THE ID OF THE ASSEMBLY THE COMPONENT IS BEING ATTACHED TO. THE COMPONENT_ITEM_ID IS THE ID OF THE COMPONENT BEING ATTACHED TO THE BILL.

NOTE: THE OPERATION_SEQ_NUM MUST BE 1 IF NO ROUTING HAS BEEN DEFINED.

insert into bom_op_routing_interface(process_flag, assembly_item_id, organization_id,routing_type, transaction_type)values (1,&inventory_item_id, &organization_id,1,'insert');commit;

insert into bom_op_sequences_interface(process_flag, assembly_item_id, organization_id,operation_seq_num, department_id, effectivity_date,transaction_type)values (1, &assembly_item_id, &organization_id,&operation_seq_num, &department_id, &effectivity_date, 'insert');commit;

insert into bom_op_resources_interface(process_flag, resource_seq_num, resource_id,assembly_item_id, organization_id, operation_seq_num,effectivity_date, transaction_type)values (1,&resource_seq_num, &resource_id,&assembly_item_id, &organization_id, &operation_seq_num,&effectivity_date, 'insert');commit;