BOM Revision
A BOM revision enables you to update a BOM’s details throughout the product lifecycle. A BOM revision also provides an accessible revisions history. Use revisions to compare and track cost savings when many BOM revisions are used in production.
The BOM revision record is available when the Advanced Bill of Materials feature is enabled on the Items & Inventory subtab at Setup > Company > Setup Tasks > Enable Features.
In the user interface, you can access BOM revisions at Lists > Supply Chain > Bills of Materials.
For information about working with this record in the user interface, see Advanced Bill of Materials.
The BOM revision record is defined in the listAcct (accounting) XSD.
Supported Operations
The following operations can be used with the BOM revision record.
add | addList | delete | deleteList | get | getDeleted | getList | getSavedSearch | getSelectValue | search | update | updateList | upsert | upsertList
You can also use the asynchronous equivalents of SOAP web services list operations. For information about asynchronous operations, see SOAP Web Services Asynchronous Operations. For more information about request processing, see Synchronous Versus Asynchronous Request Processing.
Field Definitions
The SOAP Schema Browser includes definitions for all body fields, sublist fields, search filters, and search joins available to this record. For details, see the SOAP Schema Browser’s BOM revision reference page.
For information on using the SOAP Schema Browser, see SOAP Schema Browser.
Usage Notes
Consider the following information when you work with BOM and BOM revision records.
-
There is a 1:N relationship between a BOM and its revisions, and you cannot create overlapping revisions for a BOM. For example, if you create revision R1 without specifying effective start and end dates, and later you want to create a new revision (R2) with an effective start date of February 1, first you must update the effective end date of R1 and set the value to January 31. After setting the effective end date of R1, you can create R2. For more information, see Updating BOM Revision Record Dates.
Sample Code
In the following example, a new BOM revision is created.
Java
public void bomRevision() throws Exception {
RecordRef bomRef = new RecordRef();
bomRef.setInternalId("10");
RecordRef component = new RecordRef();
component.setInternalId("167");
BomRevisionComponent bomComp = new BomRevisionComponent();
bomComp.setItem(component);
BomRevisionComponentList compList = new BomRevisionComponentList();
compList.setBomRevisionComponent(new BomRevisionComponent[]{bomComp});
BomRevision bomRev = new BomRevision();
bomRev.setName("List of ingredients - revision 1");
bomRev.setIsInactive(true);
bomRev.setMemo("New revision");
bomRev.setBillOfMaterials(bomRef);
bomRev.setComponentList(compList);
c.addRecord(bomRev);
}
SOAP Request
<soapenv:Body>
<add xmlns="urn:messages_2018_1.platform.webservices.netsuite.com">
<record xsi:type="ns7:BomRevision" xmlns:ns7="urn:accounting_2018_1.lists.webservices.netsuite.com">
<ns7:name xsi:type="xsd:string">List of ingredients - revision 1</ns7:name>
<ns7:billOfMaterials internalId="10" xsi:type="ns8:RecordRef" xmlns:ns8="urn:core_2018_1.platform.webservices.netsuite.com"/>
<ns7:memo xsi:type="xsd:string">New revision</ns7:memo>
<ns7:isInactive xsi:type="xsd:boolean">true</ns7:isInactive>
<ns7:componentList replaceAll="false" xsi:type="ns7:BomRevisionComponentList">
<ns7:bomRevisionComponent xsi:type="ns7:BomRevisionComponent">
<ns7:item internalId="167" xsi:type="ns9:RecordRef" xmlns:ns9="urn:core_2018_1.platform.webservices.netsuite.com"/>
</ns7:bomRevisionComponent>
</ns7:componentList>
</record>
</add>
</soapenv:Body>
SOAP Response
<soapenv:Body>
<addResponse xmlns="urn:messages_2018_1.platform.webservices.netsuite.com">
<writeResponse>
<platformCore:status isSuccess="true" xmlns:platformCore="urn:core_2018_1.platform.webservices.netsuite.com"/>
<baseRef internalId="9" type="bomRevision" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2018_1.platform.webservices.netsuite.com"/>
</writeResponse>
</addResponse>
</soapenv:Body>