我正在尝试设置"客户"通过脚本创建采购订单时,采购订单的生产线级别上的字段。我希望该值为相关销售订单中的作业。如果您进入用户界面来编辑此字段,您可以输入作业和客户(该字段属于实体类型,这就是为什么两者都有效)。
我的代码是After Record Submit(用户事件)。以下是代码片段:
var objcurrentSO = nlapiLoadRecord('salesorder', nlapiGetRecordId());
var ijob = objcurrentSO.getFieldValue('job');
nlapiLogExecution("DEBUG", "JOB ID", "Job: "+ijob);
//get line Item information from SO and store into arrlines array
var objPO = nlapiCreateRecord('purchaseorder');
//set header fields for objPo
for (var j = 0; j < arrlines.length; j++)
{
objPO.selectNewLineItem('item');
objPO.setCurrentLineItemValue('item', 'item', arrlines[j].Item);
objPO.setCurrentLineItemValue('item', 'description', arrlines[j].Description);
objPO.setCurrentLineItemValue('item', 'rate', arrlines[j].Itemcost);
objPO.setCurrentLineItemValue('item', 'quantity', arrlines[j].Itemquantity);
objPO.setCurrentLineItemValue('item', 'department', 71);
objPO.setCurrentLineItemValue('item', 'class', arrlines[j].Class);
objPO.setCurrentLineItemValue('item', 'location', ilocation);
objPO.setCurrentLineItemValue('item', 'customer', ijob); //project set on line level
objPO.commitLineItem('item');
nlapiLogExecution('DEBUG', 'Setting PO line values', "Line: " + j + "; Item: " + arrlines[j].Itemtext + "; Itemcost: " + arrlines[j].Itemcost + "; Itemdescription: " + arrlines[j].Description);
}
//提交PO
所有这些当前发生的事情都是PO创建,但Customer字段根本没有设置。我的日志执行显示了我期望的正确作业ID。我可以在UI中手动添加作业。
有什么想法吗?
答案 0 :(得分:1)
您的代码看起来是正确的。请尽量确保供应商和客户必须在同一子公司。
您能否尝试以动态模式创建采购订单,例如 - var poRecord = nlapiCreateRecord('purchaseorder', {recordmode:'dynamic'})