在NetSuite中,如何填充自定义交易字段
(custbody_site_no_shipto)
对具有自定义地址字段的交易(例如,销售订单)
(custrecord_site_no)
选择的送货地址(在“运输”选项卡下)?
Custom transaction field: custbody_site_no_shipto
(Menu: Customization > Lists, Records, & Fields > Transaction Body Fields – Display Type is Inline Text).
Custom address field: custrecord_site_no
(Menu: Customization > Lists, Records, & Fields > Other Custom Fields – Checked Apply To All Custom Address Forms).
答案 0 :(得分:0)
通常,您需要在“采购和过滤”中配置自定义字段的来源。
但是,送货地址不包括在“源列表”中。
因此,为了满足这些要求,您可能只能通过SuiteFlow或SuiteScript(客户端或用户事件脚本)进行自动化/自定义。
并且根据您的要求,您似乎只能在提交用户事件脚本后执行此操作。这是因为"地址"您想要访问的是子记录,并非所有API都可以在客户端脚本上使用。我有以下示例:
var recSO = nlapiLoadRecord('salesorder', 34826,
{
recordmode : 'dynamic'
});//34826 is the internal id of SO
var recSubAddress = recSO.viewSubrecord('shippingaddress');//Ship To field id
var stSiteN0 = recSubAddress.getFieldValue('custrecord_site_no');
recSO.setFieldValue('custbody_site_no_shipto', stSiteN0);
var stRecId = nlapiSubmitRecord(recSO);
答案 1 :(得分:0)
下面的脚本可以工作,并作为用户事件脚本实现。
function userEventBeforeSubmit(type) {
var shipadd = nlapiGetFieldValue('shipaddresslist');
var customer = nlapiGetFieldValue('entity');
var record = nlapiLoadRecord('customer', customer,{recordmode: 'dynamic'});
var linenum = record.findLineItemValue('addressbook', 'internalid', shipadd);
record.selectLineItem('addressbook', linenum);
var subrecord = record.viewCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
var customfield1 = subrecord.getFieldValue('custrecord_site_no');
nlapiSetFieldValue('custbody_site_no_shipto', customfield1);
}