Netsuite脚本-更新自定义可用数量字段//位置=仓库

Netsuite Script - Update Custom quantity available field // location = warehouse

本文关键字:字段 位置 仓库 脚本 更新 自定义 Netsuite      更新时间:2024-04-25

我正在尝试创建一个脚本,以便它可以用"仓库"位置(我们有多个位置)的可用数量更新自定义字段。首先,我试图在自定义字段中设置值,但不起作用。代码:

{
var stdField = 'custitem_annaslinenssku'; // Custom field for quantity
var qtyAvail = 0;
qtyAvail = rec.getValue('locationquantityavailable');
}
function Qtyupdate()
{   
if(location == 1)
nlapiSetFieldValue(stdField,qtyAvail);
return true;
}

然后我想添加一个逻辑,比如"如果数量小于12,那么脚本应该使这些项目的数量为0。

我也想增加套件/包装项目的可用数量,但完全不知道。

您可能还想分享如何使用这些信息。看起来您可能正在尝试建立库存储备。您最好创建一个储备位置并将库存转移到那里。然后,您可以将您的12件物品放入保留位置,并使其不可用于网站。

如果这不是你想要完成的,你可能想看看Netsuite的库存管理字段。

然而,为了回答您的问题,您通常无法从项目记录中获取库存位置字段,因此在计划脚本中,您将执行以下操作。如果您是从用户脚本运行此脚本,请注意治理问题:

 var items = nlapiSearchRecord('inventoryitem', null, 
    [
        new nlobjSearchFilter('inventorylocation', null, 'is', 1), // your target inventory location internal id.
        new nlobjSearchFilter('isinactive', null, 'is', 'F'),
        new nlobjSearchFilter('locationavailable', null, 'lessthan', 13),
        new nlobjSearchFilter('custitem_my_custom_field', null, 'greaterthan', 0)
    ],[
        new nlobjSearchColumn('locationavailable'),
        new nlobjSearchColumn('custitem_my_custom_field')
    ]);
if(!items) return;
items.forEach(function(it){
    var customLevel = parseInt(it.getValue('locationavailable'), 10)||0;
    customLevel = Math.min(customLevel - 12, 0);
    if(customLevel == parseInt(it.getValue('custitem_my_custom_field'), 10)) return;
    nlapiSubmitField(it.getRecordType(), it.getId(), 'custitem_my_custom_field', customLevel);
});