在PO

2016-02-19 87 views
0

的生产线级别上设置“客户”字段我尝试在通过脚本创建PO时在采购订单的生产线级别上设置“客户”字段。我希望该值是相关销售订单中的作业。如果您进入用户界面来编辑此字段,则可以输入作业和客户(该字段是实体类型,这就是为什么这两个工作)。在PO

我的代码是记录提交后(用户事件)。下面是代码片段:

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造成的,但客户字段设置的。我的日志执行显示我期待的正确的作业ID。我可以在UI中手动添加作业。

任何想法?

+0

有一件事令人感慨这是您的文章意味着你的代码在所有工作。 setCurrentLineItem成语应该是用于在动态模式下加载/创建的客户端脚本和记录。 – bknights

+0

是否有理由不能使用“特殊订单”或“拖船”功能来自动生成采购订单? – bknights

+0

有一件事情需要注意,而不能要求更多的代码/配置,因为客户子公司与采购订单中的子公司不匹配? –

回答

1

您的代码看起来正确。请尽量确保卖方和客户必须在同一个子公司。

能不能请你像动态模式创建采购订单 - var poRecord = nlapiCreateRecord('purchaseorder', {recordmode:'dynamic'})

+0

这工作。因为在动态模式下,顺序确实很重要,所以我需要对我的部分脚本进行重新排序,但现在一切正常并且工作已经完成。谢谢! – TMann