Global API
...
Code Examples
Sales Order Flow
Class (Edit NetSuite Sales Order)
1min
Apex
Apex Test
// Start Apex Class
public with sharing class editNSSalesOrderRunAsync {
public editNSSalesOrderRunAsync() {
}
@InvocableMethod(label='Edit NetSuite Sales Order' description='Edit NetSuite Sales Order')
public static List<Response> editNetSuiteSalesOrder(List<Requests> requestList){
List<Response> resToBeReturnedList = new List<Response>();
List<Object> netSuiteSalesOrderList = new List<Object>();
for(Requests req : requestList){
netSuiteSalesOrderList.add(generateNetSuiteSalesOrderMap(req));
}
// Sending request to NetSuite via exposed Global API
Map<String, Object> reqJSONMap = new Map<String, Object>();
reqJSONMap.put('salesOrders' , netSuiteSalesOrderList);
String reqJSON = JSON.serialize(reqJSONMap);
Map<String, Object> finalReqMap = new Map<String, Object>();
finalReqMap.put('version' , '1.0');
finalReqMap.put('action' , 'updateSalesOrder');
finalReqMap.put('RequestJSON' , reqJSON);
System.debug('Request ::: ' + finalReqMap);
Map<String, Object> respMap = breadwinner_ns.BreadwinnerNetSuiteAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);
return resToBeReturnedList;
}
public class Requests{
@InvocableVariable(label='Internal Id' description='Internal Id')
public String internalId;
@InvocableVariable(label='Order Status' description='Order Status')
public String orderStatus;
//Sales Order Line items
@InvocableVariable(label='Sales Order Line Items' description='Sales Order Line Items')
public List<SObject> soLines;
@InvocableVariable(label='Line Description' description='Line Description')
public String lineDescription;
@InvocableVariable(label='Line Number' description='Line Number')
public String Line;
@InvocableVariable(label='isClosed' description='Is Closed')
public String isClosed;
}
public class Response{
@InvocableVariable(label='status Code' description='Status of the request')
public string statusCode;
@InvocableVariable(label='SF Record Id' description='SF Record Id')
public Id recordId;
@InvocableVariable(label='Error' description='Error')
public String error;
}
public static Map<String, Object> generateNetSuiteSalesOrderMap(Requests req){
Map<String, Object> netSuiteSalesOrderMap = new Map<String, Object>();
// Assign values from the Request to NetSuite Sales Order
If(req.internalId != NULL)
netSuiteSalesOrderMap.put('internalId',req.internalId);
If(req.orderStatus != NULL)
netSuiteSalesOrderMap.put('orderStatus',req.orderStatus);
if(req.soLines != null){
// Initializing the Sales Order Line Items
List<Object> lineItemList = new List<Object>();
for(SObject sobj : req.soLines){
Map<String, Object> lineItemMap = new Map<String, Object>();
if(req.lineDescription != null)
lineItemMap.put('description', sobj.get(req.lineDescription));
if(req.Line != null)
lineItemMap.put('line',sobj.get(req.Line));
if(req.isClosed != null)
lineItemMap.put('isClosed',sobj.get(req.isClosed));
lineItemList.add(lineItemMap);
}
// Adding the Line Items to Sales Order
Map<String, Object> LineItemObjMap = new Map<String, Object>();
LineItemObjMap.put('item',lineItemList);
LineItemObjMap.put('replaceAll',false);
netSuiteSalesOrderMap.put('itemList',LineItemObjMap);
}
return netSuiteSalesOrderMap;
}
}
Updated 09 May 2023
Did this page help you?