首页 > 解决方案 > 如何在库存明细子记录上设置序列号/批号的值?

问题描述

我已经尽一切努力让它工作,但无论我做什么,我总是从 NetSuite 收到以下错误:

error code: USER_ERROR error message: {"type":"error.SuiteScriptError","name":"USER_ERROR","message":"Please enter value(s) for: Serial/Lot Number","stack":["anonymous(N/serverRecordService)"...

当我尝试提交该行时会发生这种情况。

我正在尝试做的(在 RESTlet 中)以编程方式为现有工作订单 (WO) 创建工作订单完成 (WOC)。我让它为第一次手术工作。但是,对于需要库存详细信息的最终操作,我收到了错误消息。这是我的代码(为了更清楚,我删除了错误检查等):

/**
* @NApiVersion 2.x
* @NScriptType restlet
*/
define(['N/runtime', 'N/error', 'N/record', 'N/search'], function(runtime, error, record, search) {

  return {
    get : function(datain) {

        var wo = record.load({
            type: record.Type.WORK_ORDER,
            id: datain.woid
        });

        var woc = record.transform({
            fromType: record.Type.WORK_ORDER,
            fromId: datain.woid,
            toType: record.Type.WORK_ORDER_COMPLETION,
            isDynamic: true,
            defaultValues: {
              isbackflush: 'F',
            }
        });
        woc.setText({
            fieldId: "startoperation",
            text: "20"
        });
        woc.setText({
            fieldId: "endoperation",
            text: "20"
        });
        woc.setText({
            fieldId: "completedquantity",
            text: "230"
        });

        var invdetail = woc.getSubrecord({
          fieldId: "inventorydetail"
        });

        invdetail.selectNewLine({
          sublistId: "inventoryassignment",
        });
        invdetail.setCurrentSublistValue({
          sublistId: "inventoryassignment",
          fieldId: "binnumber",
          value: 29
        });
        invdetail.setCurrentSublistValue({
          sublistId: "inventoryassignment",
          fieldId: "quantity",
          value: 230
        });
        invdetail.setCurrentSublistText({
          sublistId: "inventoryassignment",
          fieldId: "issueinventorynumber",
          text: "abc"
        });
        invdetail.commitLine({
          sublistId: "inventoryassignment",
        });

        woc.save();

        var results = {
            woc: woc
        };

        return JSON.stringify(results);
    }
  }
});

我已经尝试了我能想到的一切。使用 setCurrentSublistValue() 和 setCurrentSublistText(),将值设置为现有手数、新手数等。

但是,无论我做什么,NS 总是以“请输入值:序列/批号”错误作为响应,就好像它没有设置一样。

想法,想法,建议???

谢谢!

标签: netsuitesuitescript2.0

解决方案


尝试使用receiptinventorynumber您的 fieldId。

invdetail.setCurrentSublistValue({
                    sublistId: 'inventoryassignment',
                    fieldId: 'receiptinventorynumber',
                    value: 'lotNumber'
                });
invdetail.commitLine({sublistId: 'inventoryassignment'});

推荐阅读