在采购订单的行级别设置 "Customer" 字段
Setting "Customer" field on Line level of PO
当我通过脚本创建 PO 时,我试图在采购订单的行级别设置 "Customer" 字段。我希望该值是相关销售订单中的作业。如果您进入 UI 编辑此字段,您可以同时输入工作和客户(该字段属于实体类型,这就是两者都有效的原因)。
我的代码是记录提交后(用户事件)。这是代码片段:
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 创建,但客户字段根本没有设置。我的日志执行显示了我期望的正确作业 ID。我可以在 UI 中手动添加作业。
有什么想法吗?
您的代码看起来是正确的。请尽量保证Vendor和customer必须在同一个子公司。
能否尝试在动态模式下创建采购订单,例如 - var poRecord = nlapiCreateRecord('purchaseorder', {recordmode:'dynamic'})
当我通过脚本创建 PO 时,我试图在采购订单的行级别设置 "Customer" 字段。我希望该值是相关销售订单中的作业。如果您进入 UI 编辑此字段,您可以同时输入工作和客户(该字段属于实体类型,这就是两者都有效的原因)。
我的代码是记录提交后(用户事件)。这是代码片段:
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 创建,但客户字段根本没有设置。我的日志执行显示了我期望的正确作业 ID。我可以在 UI 中手动添加作业。
有什么想法吗?
您的代码看起来是正确的。请尽量保证Vendor和customer必须在同一个子公司。
能否尝试在动态模式下创建采购订单,例如 - var poRecord = nlapiCreateRecord('purchaseorder', {recordmode:'dynamic'})