使用Suitescript将销售订单状态更改为“待完成”时,出现“记录已更改”错误

时间:2019-10-18 07:37:48

标签: netsuite suitescript

我想通过添加新的服务项目来编辑销售订单,添加后,我需要批准/更改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。

1 个答案:

答案 0 :(得分:0)

实际上问题是,SO花费太多时间来保存记录(在步骤1中)。在保存操作完成之前,将从下一个步骤再次加载记录,然后再次尝试保存。因此,我设置了一些 setTimeout 脚本来暂停该过程一段时间,并在步骤2继续执行销售订单加载。