NetSuite SuiteScript 2.0 use DeferredDynamicRecord-CarlZeng
Background There is a case when we add dynamic sublists to NetSuite Transaction, for user to put in data. In server-side, how to read it in SuiteScrip
Background
There is a case when we add dynamic sublists to NetSuite Transaction, for user to put in data.
In server-side, how to read it in SuiteScript 2.0, NetSuite version 2017.1.0.70
I found we can’t use scriptContext.newRecord.getSublistValue to read data in custom sublist.
and we can’t use scriptContext.newRecord.sublists.custpage_receipts to read detail objects.
How to resolve this?
Solution
In beforeSubmit we have native NetSuite parameter scriptContext,
when we saw scriptContext.newRecord it’s a type of DeferredDynamicRecord.
I thought we can read the object details inside, I.e. scriptContext.newRecord.sublists.custpage_receipts
But actually since scriptContext.newRecord is a type of DeferredDynamicRecord, we can’t read the data inside.
Try this:
var currentRecord = scriptContext.newRecord; var objCurRec = JSON.parse(JSON.stringify(currentRecord)); var objSublists = objCurRec.sublists ? objCurRec.sublists : ‘’; var objCustReceipts = objSublists.custpage_receipts ? objSublists.custpage_receipts : ‘’;
Steps:
- JSON.stringify scriptContext.newRecord. (It became string)
- JSON.parse the strigified string. (Now it becomes native object)
- Now we can read data inside I.e. objCurRec.sublists.custpage_receipts