上下文:用SuiteScript v1编写的RESTlet,但如果必须,我将使用v2 .
Important: Solution must work serverside.
位置记录有一个 Headers 为主地址的字段 . 字段id是mainaddress_text .
当我使用NetSuite网站编辑主要地址字段时,它向我提供了具有普通地址字段的普通地址编辑表单,因此看起来NetSuite存储地址就像它在地址上一样,例如客户记录,在字段中称国家,注意,收件人,电话等
我想获得这些字段的值,但我无法弄清楚如何 .
我已经使用了加载位置
location = nlapiLoadRecord('location', locationid)
模式浏览器(https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/schema/record/location.html)建议有一个名为mainAddress的字段,类型为Address .
我试图使用如下语句访问mainAddress字段:
location.getField('mainaddress') //returns null
location.getSubList('mainaddress') //returns null
location.getLineItemCount('mainaddress') //returns -1
location.getFieldValue('mainaddress') //returns null
location.getFieldText('mainaddress') //returns null
但没有成功 .
如果客户记录中有一个名为like的字段但返回-1,我也尝试了 location.getLineItemCount('addressbook')
.
记录浏览器(https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_1/script/record/location.html)表明存在一个名为Addrtext的字段为Address的字段 .
我试图使用如下语句访问addrtext字段:
location.getField('addrtext') //returns null
location.getSubList('addrtext') //returns null
location.getLineItemCount('addrtext') //returns -1
location.getFieldValue('addrtext') //returns null
location.getFieldText('addrtext') //returns null
但没有成功 .
记录浏览器还描述了名为addr1,addr2,addr3,addressee,attention,city等字段 .
我试图使用以下语句访问这些字段:
location.getFieldValue('attention') //returns null
location.getFieldValue('addressee') //returns null
location.getFieldValue('addr1') //returns null
location.getFieldValue('addr2') //returns null
location.getFieldValue('addr3') //returns null
location.getFieldValue('city') //returns null
location.getFieldValue('state') //returns null
location.getFieldValue('country') //returns null
但没有成功 .
我发现获取地址数据的唯一方法是使用 location.getFieldValue('mainaddress_text')
但是将地址作为一个字符串返回,其中地址部分由 <br>
-tokens分隔 .
如何获取各个地址字段?
2 回答
我建议使用
JSON.stringify(location)
对记录进行字符串化以查看其中的内容 . 地址字段通常存储在addr1等中......可能没有从UI设置地址字段 . 我看到一些脚本只设置了mainaddress_text字段,但忽略了更改单个字段,导致长期运行中的问题导致mainaddress_text与其他地址字段(addr1,addr2等等)不匹配 .
您可能想尝试搜索地址字段,这里是如何在SS 1.0中执行此操作:
尝试一下:
我在浏览器中打开了一个位置记录,并从那里打开一个控制台来加载nlobjRecord . 看看我看到的字段有
mainaddress2_set
字段,由nlapiViewSubrecord("mainaddress")
设置我无法从客户端控制台调用
viewSubrecord("mainaddress")
,但我确实创建了一个简单的suitelet来加载Location记录并打印地址 .