NetSuite SuiteScript 2.0如何更新作为项目组一部分的销售订单项

时间:2017-05-02 22:46:32

标签: netsuite suitescript itemgroup

我正在尝试更新NetSuite中销售订单项目行的Term字段。 我可以在beforeSubmit事件上使用ue(用户事件脚本)来做到这一点。 当销售订单处于编辑模式时,我点击保存按钮时有效。 现在,问题: 我正在尝试更新销售订单项目字段(期限)点击保存按钮但单击AFTER添加按钮,用于项目组的组件。

我编写了一个函数并添加到postSourcing(scriptContaxt)事件中进行更新,但它仅适用于非库存项目。 这不适用于项目组。 当物料组添加到销售订单时,库存(组件)会自动填充到表单上 当项目组的组件被添加到销售订单表单时,是否有人知道触发了什么事件?

谢谢 克里斯

好的......进一步的研究和解释: 这是在将非库存物料添加到销售订单时更新单个库的代码(将SKU编号添加到销售订单行):

function postSourcing(scriptContext) 
{
    setSalesOrderItemTerm(scriptContext.currentRecord);
}

function setSalesOrderItemTerm(salesorder)
{   
    var itemId = salesorder.getCurrentSublistValue({
        sublistId: 'item',
        fieldId: 'item'
    });

    if(!itemId)
        return;

    var result = search.create({
        type: search.Type.ITEM,
        columns: ['custitem_abs_item_term'],
        filters: [{name: 'internalid',operator: search.Operator.IS,values: itemId},
                  {name: 'isinactive',operator: search.Operator.IS,values: 'F'}]
        }).run().getRange({start: 0, end: 1});

    if(result.length > 0)
    {
        var term = result[0].getValue('custitem_abs_item_term');

        salesorder.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'custcol_swe_contract_item_term_months',
            value: term
        });
    }
}

这适用于单个非库存物品。 另一方面,当我尝试添加项目组(这与KIT不同)时,术语字段(id:custcol_swe_contract_item_term_months)未从其项目更新,术语字段将更新为项目组的值。 仅供参考。 Item Group由Item Group(Group Header称为Group),其组件(其他Item类型,即非库存项)和Empty Items(称为End Group - >通常为空)构成

因此,如果您的物料组中包含两个非库存物料,并且您尝试将该物料组添加到销售订单,那么这两个非库存物料将自动添加到销售订单(以及组和结束组)行)。 我试图找出这两个非库存物品被添加到销售订单的事件。

我希望现在更清楚了。 谢谢 克里斯

1 个答案:

答案 0 :(得分:0)

我在下面的回答也适用于此

SO"在NetSuite中使用项目组创建SalesOrder"