Global API
...
Code Examples
Sales Order Flow
Class (Edit NetSuite Sales Order)
1min
// 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; } } apex test @istest public class editnssalesorderrunasynctest { // start apex test class @istest public static void bw editsalesorder(){ list\<editnssalesorderrunasync requests> requestlist = new list\<editnssalesorderrunasync requests>(); editnssalesorderrunasync requests req = new editnssalesorderrunasync requests(); list\<sobject> solines = new list\<sobject>(); system debug(req); opportunitylineitem opp = new opportunitylineitem(); opp description = 'qualification'; opp unitprice = 1; opp quantity = 1; solines add(opp); req solines = solines; req internalid = '12056'; req linedescription='description'; req orderstatus = ' pending fulfillment'; requestlist add(req); editnssalesorderrunasync editnetsuitesalesorder(requestlist); } }