我对NetSuite有一个古怪的问题。在具有“启用订单项发货”的销售订单上'选中,表示已启用多个送货路线,送货地址将在物料行级别上。
通过SuiteScript,我可以访问线路级别的地址,如果它是从地址簿中选择的。
但是,当该地址是即时输入的自定义地址时,我不知道如何在beforeSubmit函数中访问这些字段。
任何指针都会非常感激!
答案 0 :(得分:0)
您可以使用两个或两个以下
获取所选地址详细信息nlapiGetLineItemValue('item','shipaddress',1)
nlapiGetLineItemText('item','shipaddress',1)
上面只会给你id或地址记录的标签。但是,很难访问客户端的地址详细信息。
但是,使用子记录API,您可以使用子记录API在用户事件脚本中访问服务器端的记录:
var record = nlapiLoadRecord('customer', nlapiGetFieldValue('entity'),{recordmode: 'dynamic'});
//loop through all the addressbooks
if(record.getLineItemValue('addressbook', 'internalid', i) === nlapiGetLineItemValue('item','shipaddress', 1))
record.selectLineItem('addressbook', 2);
//change the sub record value
var subrecord = record.editCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
subrecord.setFieldValue('attention', 'Accounts Payable');
subrecord.commit();
record.commitLineItem('addressbook');
var x = nlapiSubmitRecord(record);
答案 1 :(得分:0)
想出来!对于那些在未来冒险的灵魂来说:
以下是您可以在销售订单行级别上使用的功能,以循环显示自定义地址并提取特定信息。
希望这会在某些时候添加到NetSuite文档中。
请注意,我是专门为状态信息而做的。如果您想查看其他可用字段,请将&xml=T
添加到已提交的销售订单网址的末尾,然后在结果xml结构中搜索iladdrbook
。它实际上被视为一个订单项。
function getCustomAddressFromLineItem(soLineNum) {
nlapiLogExecution('DEBUG', 'Custom Address', 'Custom Address: Line # ' + soLineNum);
var addressid = nlapiGetLineItemValue('item','shipaddress',soLineNum); // get the id of the custom address
var customAddressesLineCount = nlapiGetLineItemCount('iladdrbook'); // get custom address book count
nlapiLogExecution('debug', 'test', 'addressid: ' + addressid + ' -- linecount: ' + customAddressesLineCount);
for (var i = 1; i <=customAddressesLineCount; i++)
{
var addressinternalid = nlapiGetLineItemValue('iladdrbook','iladdrinternalid',i); // get internal id of custom address book
if (addressinternalid == addressid) // match it with the id of custom address being set
{
var addr = nlapiGetLineItemValue('iladdrbook','iladdrshipaddr1',i);
var customState = nlapiGetLineItemValue('iladdrbook','iladdrshipstate',i); // get your state
nlapiLogExecution('debug', 'test', 'address: ' + addr + ' -- state: ' + customState);
return customState;
}
}
}