检索旧记录的行项目

时间:2016-11-22 22:10:15

标签: javascript netsuite suitescript

我有一个部署到销售订单的用户事件脚本。它使用订单项的字段值来确定剩余数量。但是,如果我删除订单项,则不会更新已删除商品的数量。我需要在提交后更新项目。

是否可以使用nlapiGetOldRecord()或类似的东西编辑已删除订单项的数量?

这是代码的样子:

function afterSubmit(){
    var curRec = nlapiGetRecordId();
    var item = nlapiLoadRecord('item', curRec);
    var sold = item.getFieldValue('cust_sold');
    var quantity = item.getFieldValue('cust_quantity'); 
    var leftToSell = quantity - sold;
    item.setFieldValue('cust_lefttosell', leftToSell);

    var finalValue = item.getFieldValue('cust_lefttosell');
    var old = nlapiGetOldRecord(); // only retrieves salesorder record
    nlapiSubmitRecord(item);

}

编辑:事实证明我可以使用简单的old.getLineItemValue('item', 'item', linenum)定位订单项。 正如Adolfo在下面指出的那样,我可以定位旧记录的行项目。出于某种原因,我认为唯一的方法是使用nlapiGetLineItemField(type, fldnm, linenum)。函数的getLineItemValue版本正是我想要的。 这就是代码的样子:

var old = nlapiGetOldRecord();
var id = old.getLineItemValue('item', 'item', linenum);
var rec = nlapiLoadRecord('type', id);

1 个答案:

答案 0 :(得分:1)

为什么不将cust_lefttosell设为公式字段,以便始终从cust_quantity - cust_sold?

动态计算该值

无论如何,如果您想使用afterSubmit,那么您必须遍历旧记录中的所有订单项,找出已删除的订单项,然后更新数量。