域名已变更 请手动修改文章中域名指向carlzeng.com

NetSuite SuiteScript 2.0 use DeferredDynamicRecord

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:

  1. JSON.stringify scriptContext.newRecord. (It became string)
  2. JSON.parse the strigified string. (Now it becomes native object)
  3. Now we can read data inside I.e. objCurRec.sublists.custpage_receipts

 

posted @ 2017-05-08 20:38  CarlZeng  阅读(636)  评论(0编辑  收藏  举报
域名已变更 请手动修改文章中域名指向carlzeng.com