域名已变更 请手动修改文章中域名指向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 @   CarlZeng  阅读(638)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
域名已变更 请手动修改文章中域名指向carlzeng.com
点击右上角即可分享
微信分享提示