netsuite - 如何设置销售订单的 "Ship To Select"送货地址下拉字段?

标签 netsuite addressbook suitescript

当通过 Suitescript 在 NetSuite 中创建销售订单时,我们可以通过向其发送包含完整地址的字符串来成功设置“发货至”(字段 ID:shipaddress)。

这会导致问题,因为“SHIP TO SELECT”下拉字段保留为客户设置的默认地址。

理想情况下,我们宁愿从客户记录中发送有效 ID,并使用该 ID 设置下拉列表“SHIP TO SELECT”(字段 ID:shipaddresslist)字段。

我们可以获得有效的 ID,但无法找到在字段上设置该 ID 来填充该下拉列表的方法。

最佳答案

通常,如果您在“提交前用户事件”脚本的上下文之外执行此操作,您还需要确保通过来源进行保存。

var soRec = nlapiLoadRecord('salesorder' soId);
soRec.setFieldValue('shipaddresslist', addressId);
nlapiSubmitRecord(soRec, true); 
// alternatively nlapiSubmitRecord(soRec, {enablesourcing:true [, disabletriggers:true|false, ignoremandatoryfields:true|false]});

如果您仍然看到旧的地址文本,您可以添加:

soRec.setFieldValue('shipaddress', null);

提交之前。

如果您想要设置自定义地址,则类似,但您需要设置覆盖:

var soRec = nlapiLoadRecord('salesorder' soId);
soRec.setFieldValue('shipaddresslist', null);
soRec.setFieldValue('shipoverride', 'T');
soRec.setFieldValue('shipaddress', formattedAddressString);
nlapiSubmitRecord(soRec); 

请注意,这样做会导致任何依赖地址字段的搜索或自动化会错过该记录或产生不正确的结果。

如果您想要自定义地址,通常情况下会更好:

var soRec = nlapiLoadRecord('salesorder' soId);
soRec.setFieldValue('shipaddresslist', null);
soRec.setFieldValue('shipaddr1', '123 Elm St.');
soRec.setFieldValue('shipcity', 'Portland');
...
nlapiSubmitRecord(soRec); 

关于netsuite - 如何设置销售订单的 "Ship To Select"送货地址下拉字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317735/

相关文章:

javascript - 使用 SuiteScript,如何将 JavaScript 变量组合到字符串中?

javascript - Suitescript 返回所选项目的 vendor 价格

Delphi TOAuth1Authenticator如何设置Realm

ios - 获取姓名和号码联系人列表地址簿

iphone - Objective-C 通讯录

javascript - 类型错误 : Cannot call method "split" of undefined in SuiteScript

javascript - Netsuite(库存明细)

javascript - NetSuite 中“nlobjSearchColumn 包含无效列,或者语法不正确”

javascript - 通过 netsuite RESTlet 脚本设置/更改用户密码

ios - 在IOS9中自动显示的新添加的 'My Card'是否是获取用户电话号码的可靠方法?