检索旧记录

问题描述:

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

是否可以编辑使用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); 
+0

你应该发布你的代码的一些例子。 – opticon

+0

@opticon添加了代码 – VicDid

为什么不cust_lefttosell因此该值从cust_quantity飞始终计算公式字段 - cust_sold?

不管怎么说,如果你想使用afterSubmit那么你必须通过在旧记录的所有行项目迭代,找出哪些被拆除,然后更新这些数量。

+1

取消选中商店价值。 –

+0

有意删除我的评论。默认值中的公式将是'{cust_quantity} - {cust_sold}',然后像您说的那样,取消选中商店值。我也在你的回答帮助下更新了我的文章。谢谢! – VicDid