3

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

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

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

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

4

1 回答 1

3

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

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); 
于 2015-12-16T17:38:04.667 回答