【问题标题】:Netsuite Script - Update Custom quantity available field // location = warehouseNetsuite 脚本 - 更新自定义可用数量字段 // location = 仓库
【发布时间】:2016-04-11 20:07:34
【问题描述】:

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

{
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,那么脚本应该使这些项目数量 = 0。

标签: javascript scripting netsuite inventory


【解决方案1】:

您可能还想分享您是如何使用这些信息的。看起来您可能正在尝试设置库存储备。您最好创建一个储备位置并在那里转移库存。然后您可以将您的 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);
});    

【讨论】:

  • 保留库存似乎是我们得到的一个常见过程和要求。真希望它不需要自定义实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
相关资源
最近更新 更多