我想在单击销售订单上的"approve"按钮后创建采购订单



我希望当一个人单击销售订单上的批准按钮时生成一个采购订单。我已将脚本部署到销售订单记录,并设置了当单击批准按钮时触发的事件类型。但是,这段代码不会创建采购订单,因为子列表项值的字段值无效。

我已经使用了内部Id和项目的字符串名称作为值,我得到相同的"无效字段值"错误。有人知道怎么了吗?

function beforeSubmit(context) {
    var sRecord = context.newRecord;
    var user = runtime.getCurrentUser();
    //get line count
    var itemCount = sRecord.getLineCount({
        sublistId: 'item'
    });
    for (var i = 0; i<itemCount; i++){
        var pOrder = record.create({
            type: record.Type.PURCHASE_ORDER,
            isDynamic: true
        });
        //get item internal id
        var itemId = sRecord.getSublistValue({
            sublistId   : 'item',
            fieldId     : 'item',
            line        : i
        });
        //get qty
        var qty = sRecord.getSublistValue({
            sublistId   : 'item',
            fieldId     : 'quantity',
            line        : i
        });
        //get vendor of item
        var vendor = search.lookupFields({
            type    : 'item',
            id      : itemId,
            columns : ['vendorname']
        });
        //add vendor to record
        pOrder.setValue('vendorname', vendor);
        //selects new line
        pOrder.selectNewLine({sublistId: 'item'});
        //add item to sublist
        pOrder.setCurrentSublistValue({
            sublistId   : 'item',
            fieldId     : 'item',
            value       : itemId
        });
        //add quantity to sublist
        pOrder.setCurrentSublistValue({
            sublistId   : 'item',
            fieldId     : 'quantity',
            value       : qty
        });
        pOrder.commitLine({sublistId: 'item'});
        pOrder.save();
    }
}

entity字段是要求的在采购订单记录中。项目记录上的vendorname字段不存储供应商记录,即使有,在PO上也没有相应的vendorname字段。商品记录中的这个值用于标识商品本身的供应商名称/代码,如果它们有不同的名称。

如前所述,如果在PO上设置了entity字段,则此代码至少在特定情况下起作用。如果您已经设置了Preferred Vendor,或者如果使用多供应商特性已经在那里配置了首选供应商,您可以直接从Item记录中查找适当的entity字段。

一个简单的方法来实现这个脚本似乎在做没有库存和非库存出售项目的脚本是使用Drop Ship Item复选框或Special Order Item复选框对这些项目记录。为每个符合条件的项目选择其中之一,将允许为销售订单的行项目自动创建po。在Netsuite帮助中搜索Special Order Items,以获得有关差异以及如何设置两者的更多信息。

相关内容

  • 没有找到相关文章

最新更新