我想通过添加新的服务项目来编辑销售订单,添加后,我需要批准/更改SO的状态为“待批准的产品”。保存时,该项目被添加到销售订单中,但是由于“记录已更改”而在状态更改行中引发错误。该脚本是在Suitescript 1.0中开发的
步骤1:我加载销售订单并将服务项目添加到其中并保存记录。
第2步:再次加载销售订单并将销售订单状态设置为“待批准”并保存记录。它没有保存,并以“记录已更改”错误结束。
在第2步中,我没有更改销售订单状态,而是尝试通过更改其他一些字段来进行操作,这一次SO被保存了。因此,问题仅在于SO的状态变化。
我尝试了“ nlapiSubmitField” api,但也没有解决我的问题。
var soRec = nlapiLoadRecord('salesorder', SOId);
....
soRec.selectNewLineItem("item");
soRec.setCurrentLineItemValue("item","item",1093360);
soRec.setCurrentLineItemValue("item","custcol5",ringDesc);
soRec.setCurrentLineItemValue("item","povendor",46063);
soRec.commitLineItem("item");
var order_id = nlapiSubmitRecord(soRec, true, true);
var soObj = nlapiLoadRecord("salesorder", order_id);
soObj.setFieldValue("orderstatus", "B"); // B : Pending Fulfilment
var order_id = nlapiSubmitRecord(soObj, true, true);
SO包含直接运送项目,因此在保存SO时,应保存SO并创建相应的PO。
答案 0 :(得分:0)
实际上问题是,SO花费太多时间来保存记录(在步骤1中)。在保存操作完成之前,将从下一个步骤再次加载记录,然后再次尝试保存。因此,我设置了一些 setTimeout 脚本来暂停该过程一段时间,并在步骤2继续执行销售订单加载。