【问题标题】:I want to create a purchase order after the "approve" button is clicked on a sales order我想在销售订单上单击“批准”按钮后创建采购订单
【发布时间】:2016-11-11 06:36:53
【问题描述】:

我希望在用户单击销售订单上的批准按钮时生成采购订单。我已将脚本部署到销售订单记录和单击批准按钮时触发的事件类型。但是,此代码不会创建采购订单,因为我的子列表项值的字段值无效。

我已将项目的内部 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();

    }
}

【问题讨论】:

  • 或者有没有办法在点击批准按钮时为销售订单中的每个订单项触发“创建特殊订单”?
  • 我假设您也尝试通过 UI 在 PO 上设置其中一项,以确保它可用于 PO?
  • @W3BGUY 是的,通过 UI 创建 PO 工作得非常好。该错误仅发生在我添加项目的地方

标签: javascript jquery netsuite suitescript purchase-order


【解决方案1】:

entity 字段在采购订单记录中是必填。物料记录上的vendorname 字段不存储供应商记录,即使存储了,采购订单上也没有对应的vendorname 字段。项目记录中的此值用于标识项目本身的供应商名称/代码,以防它们具有不同的名称。

正如所写,如果在采购订单上设置了entity 字段,则此代码至少在某些情况下起作用。如果您设置了Preferred Vendor,或者如果使用多个供应商功能已经在那里配置了首选供应商,您仍然可以直接从项目记录中查找适当的entity 字段。

在不为库存和非库存商品编写脚本的情况下,实现此脚本似乎正在执行的操作的一种简单方法是在这些商品记录上使用Drop Ship Item 复选框或Special Order Item 复选框。为每个符合条件的项目选择其中一个将允许为您的销售订单的行项目自动创建采购订单。在 Netsuite 帮助中搜索 Special Order Items 以获取有关差异以及如何设置的更多信息。

【讨论】:

  • 我明白了。所以我假设由于未设置实体字段,它找不到采购订单的任何关联项目(因为您需要在添加项目之前设置供应商)。是对的吗?编辑:我不敢相信这是问题所在。虽然我还没有重新部署脚本,但我认为这就是问题所在。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多