Global API
...
Code Examples
Custom Record Type Flow
Class(Create NetSuite CustomObject Record)
1min
public with sharing class createnscustomobjectrecordusingfuture { public createnscustomobjectrecordusingfuture() { } @invocablemethod(label='create netsuite custom object record' description='create netsuite custom object record' category='breadwinner' ) public static void createnscustomobjectrecordusingfuture(list\<requests> requestlist){ createnetsuitecustomobjectrecord(json serialize(requestlist)); } @future(callout = true) public static void createnetsuitecustomobjectrecord(string requestlistjson){ list\<requests> requestlist = (list\<requests>)json deserialize(requestlistjson, list\<requests> class); list\<object> netsuitecustomobjectlist = new list\<object>(); for(requests req requestlist){ netsuitecustomobjectlist add(generatenetsuitecustomobjectmap(req)); } // sending request to netsuite via exposed global api map\<string, object> reqjsonmap = new map\<string, object>(); reqjsonmap put('customobjectrecords' , netsuitecustomobjectlist); reqjsonmap put('customobjectid' , '196'); string reqjson = json serialize(reqjsonmap); map\<string, object> finalreqmap = new map\<string, object>(); finalreqmap put('version' , '1 0'); finalreqmap put('action' , 'createcustomobjectrecord'); finalreqmap put('requestjson' , reqjson); system debug('request ' + finalreqmap); map\<string, object> respmap = breadwinner ns breadwinnernetsuiteapi call(finalreqmap); system debug('response ' + respmap); } public class requests{ @invocablevariable(label='netsuite custom object record name' description='netsuite custom object record name' required=true) public string name; @invocablevariable(label='is inactive' description='is inactive') public boolean isinactive; @invocablevariable(label='parent field' description='parent field') public string custrecord239 string text; // this field is the lookup field //which is passed as internalid of the parent record @invocablevariable(label='quantity' description='quantity') public string custrecord241 string decimal; @invocablevariable(label='cost' description='cost') public string custrecord242 string currency; @invocablevariable(label='is purchased' description='is purchased') public boolean custrecord243 boolean boolean; } public static map\<string, object> generatenetsuitecustomobjectmap(requests req){ set\<string> standardfieldset = new set\<string>{'name','isinactive','internalid' }; map\<string, object> netsuitecustomobjectmap = new map\<string, object>(); map\<string,object> reqmap = (map\<string,object>) json deserializeuntyped(json serialize(req)); list\<object> customobjectcustomfieldlist = new list\<object>(); for(string field reqmap keyset()){ if(standardfieldset contains(field)) netsuitecustomobjectmap put(field,reqmap get(field)); else{ map\<string,object> customobjectcustomfield = new map\<string,object>(); customobjectcustomfield put('fieldtype', field split(' ')\[1]); customobjectcustomfield put('scriptid', field split(' ')\[0]); if(field split(' ')\[2]=='currency' || field split(' ')\[2]=='number' || field split(' ')\[2]=='decimal' || field split(' ')\[2]=='integer' ) customobjectcustomfield put('value', string valueof(reqmap get(field)) remove(',')); else customobjectcustomfield put('value', reqmap get(field)); customobjectcustomfieldlist add(customobjectcustomfield); } } netsuitecustomobjectmap put('customfieldlist', new map\<string,object>{'customfield'=>customobjectcustomfieldlist}); return netsuitecustomobjectmap; } } apex test // start apex test class @istest private class createnscustomobjectrecordtest{ @istest static void bw createnscustomobjectrecordtest(){ list\<createnscustomobjectrecordusingfuture requests> requestlist = new list\<createnscustomobjectrecordusingfuture requests>(); createnscustomobjectrecordusingfuture requests req = new createnscustomobjectrecordusingfuture requests(); req name = 'test'; req isinactive = false; req custrecord239 string text = '2420'; req custrecord241 string decimal = '1 0'; req custrecord242 string currency = '10'; req custrecord243 boolean boolean = true; requestlist add(req); createnscustomobjectrecordusingfuture createnscustomobjectrecordusingfuture(requestlist); } }