Manufacturing Routing
If the Manufacturing Routing and Work Center feature has been enabled, you can use SOAP web services to interact with manufacturing routing records. You can check to see whether the feature is enabled by going to Setup > Company > Setup Tasks > Enable Features, and reviewing the Items & Inventory tab.
The benefit of this feature is that it extends the Work In Process (WIP) feature, allowing you to specify a sequence of steps required for the completion of a WIP work order. You take advantage of this feature using a few records, including manufacturing routing. The routing record defines a series of tasks that must be completed by specific employee groups. When you save a WIP work order that references a particular manufacturing routing record, each step described in the routing record becomes a manufacturing operation task.
For details on manually creating a routing record, see Creating a Manufacturing Routing. For more information about the Manufacturing Routing and Work Center feature, see Manufacturing Routing.
The manufacturing routing record is defined in the listScm XSD.
Supported Operations
The following operations can be used with the manufacturing routing record.
add | addList | delete | deleteList | get |getDeleted |getList | 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 manufacturing routing reference page.
For information on using the SOAP Schema Browser, see SOAP Schema Browser.
Usage Notes
Refer to the following sections for more details on working with manufacturing routing records.
Prerequisites for Creating a Record
When you create a routing record, certain records must already exist in NetSuite, as follows:
Assembly Item
Each routing record is created for use with a specific assembly item. You reference an assembly item using the Item element. For details on assembly items, see Assembly Items. For details on using SOAP web services to interact with assembly items, see Assembly Item (BOM Item).
Cost Template and Work Center
For each routing record you create, at least one entry is required in the routingStep sublist. Each sublist entry must reference one of the each of the following:
-
Cost Template — You reference an existing cost template record using the manufacturingCostTemplate element. For more on the cost template record in general, see Creating Manufacturing Cost Templates. For details on using SOAP web services to interact with cost templates, see Manufacturing Cost Template.
-
Work Center — You set a value for work center using the manufacturingWorkCenter element. A work center is a static employee group record that has been flagged as a Manufacturing Work Center. For more details, see Creating Manufacturing Work Centers or Groups.
Sample Code
The following code illustrates how to add a manufacturing routing record.
Java
public void testAddRecord() throws Exception {
// This operation requires a valid session
this.login(true);
ManufacturingRouting mfgRouting = new ManufacturingRouting();
//BODY FIELDS
mfgRouting.setItem(mrr("167")); //Assembly Item
mfgRouting.setName("ManufacturingRouting1");
mfgRouting.setMemo("ManufacturingRouting1Memo");
mfgRouting.setSubsidiary(new RecordRef(null, "1", null, RecordType.subsidiary));
RecordRefList rfList = new RecordRefList();
rfList.setRecordRef(new RecordRef[] {new RecordRef(null, "1", null, RecordType.location)});
mfgRouting.setLocationList(rfList);
mfgRouting.setIsDefault(true);
//SUBLIST
ManufacturingRoutingRoutingStepList stepsList = new ManufacturingRoutingRoutingStepList();
ManufacturingRoutingRoutingStep step1 = new ManufacturingRoutingRoutingStep();
step1.setOperationSequence(1L);
step1.setOperationName("mfgRoutingOpName1");
step1.setManufacturingWorkCenter(new RecordRef(null, "3513", null, RecordType.entityGroup));
step1.setManufacturingCostTemplate(new RecordRef(null, "4301", null, RecordType.manufacturingCostTemplate));
step1.setSetupTime(1.11D);
step1.setRunRate(2.22D);
stepsList.setManufacturingRoutingRoutingStep(new ManufacturingRoutingRoutingStep[] {step1});
mfgRouting.setRoutingStepList(stepsList);
c.addRecord(mfgRouting);
SOAP Request
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:passport soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="urn:messages_2017_1.platform.webservices.netsuite.com">
<ns2:email xmlns:ns2="urn:core_2017_1.platform.webservices.netsuite.com">nlbuild@netsuite.com</ns2:email>
<ns3:password xmlns:ns3="urn:core_2017_1.platform.webservices.netsuite.com">password</ns3:password>
<ns4:account xmlns:ns4="urn:core_2017_1.platform.webservices.netsuite.com">3604360</ns4:account>
<ns5:role internalId="37" xmlns:ns5="urn:core_2017_1.platform.webservices.netsuite.com"/>
</ns1:passport>
</soapenv:Header>
<soapenv:Body>
<add xmlns="urn:messages_2017_1.platform.webservices.netsuite.com">
<record xsi:type="ns6:ManufacturingRouting" xmlns:ns6="urn:supplychain_2017_1.lists.webservices.netsuite.com">
<ns6:subsidiary internalId="1" type="subsidiary" xsi:type="ns7:RecordRef" xmlns:ns7="urn:core_2017_1.platform.webservices.netsuite.com"/>
<ns6:item internalId="167" xsi:type="ns8:RecordRef" xmlns:ns8="urn:core_2017_1.platform.webservices.netsuite.com"/>
<ns6:locationList xsi:type="ns9:RecordRefList" xmlns:ns9="urn:core_2017_1.platform.webservices.netsuite.com">
<ns9:recordRef internalId="1" type="location" xsi:type="ns9:RecordRef"/>
</ns6:locationList>
<ns6:name xsi:type="xsd:string">ManufacturingRouting1</ns6:name>
<ns6:memo xsi:type="xsd:string">ManufacturingRouting1Memo</ns6:memo>
<ns6:isDefault xsi:type="xsd:boolean">true</ns6:isDefault>
<ns6:routingStepList replaceAll="false" xsi:type="ns6:ManufacturingRoutingRoutingStepList">
<ns6:manufacturingRoutingRoutingStep xsi:type="ns6:ManufacturingRoutingRoutingStep">
<ns6:operationSequence xsi:type="xsd:long">1</ns6:operationSequence>
<ns6:operationName xsi:type="xsd:string">mfgRoutingOpName1</ns6:operationName>
<ns6:manufacturingWorkCenter internalId="3513" type="entityGroup" xsi:type="ns10:RecordRef" xmlns:ns10="urn:core_2017_1.platform.webservices.netsuite.com"/>
<ns6:manufacturingCostTemplate internalId="4301" type="manufacturingCostTemplate" xsi:type="ns11:RecordRef" xmlns:ns11="urn:core_2017_1.platform.webservices.netsuite.com"/>
<ns6:setupTime xsi:type="xsd:double">1.11</ns6:setupTime>
<ns6:runRate xsi:type="xsd:double">2.22</ns6:runRate>
</ns6:manufacturingRoutingRoutingStep>
</ns6:routingStepList>
</record>
</add>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2017_1.platform.webservices.netsuite.com">
<platformMsgs:nsId>WEBSERVICES_3604360_031120131494382039617284600_ea972a8d42cc</platformMsgs:nsId>
</platformMsgs:documentInfo>
</soapenv:Header>
<soapenv:Body>
<addResponse xmlns="urn:messages_2017_1.platform.webservices.netsuite.com">
<writeResponse>
<platformCore:status isSuccess="true" xmlns:platformCore="urn:core_2017_1.platform.webservices.netsuite.com"/>
<baseRef internalId="2201" type="manufacturingRouting" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2017_1.platform.webservices.netsuite.com"/>
</writeResponse>
</addResponse>
</soapenv:Body>
</soapenv:Envelope>