【问题标题】:Error creating dropship inventory item with SuiteScript使用 SuiteScript 创建托运库存项目时出错
【发布时间】:2020-09-27 15:10:28
【问题描述】:

我收到以下错误:

“直接发货/特殊订单商品必须有首选供应商和购买价格。”

来自该 SuiteScript 函数,其中包含首选供应商和购买价格的赋值。那么,我设置/创建 itemvendor 子列表的方式一定有问题吗?

    function createItemRecord(item, vendor, subsidiary) {
        log.audit({
            title: 'createItemRecord...',
            details: {ITEM: item, VENDOR: vendor, SUBSIDIARY: subsidiary}
        });
        var itemRecord = record.create({
            type: record.Type.INVENTORY_ITEM,
            isDynamic: true
        });
      
       itemRecord.setValue({
            fieldId: "itemid",
          value: item.sku
        }).setValue({
            fieldId: "displayname",
          value: item.summary
        }).setValue({
            fieldId: "purchasedescription",
          value: item.details
        }).setValue({
            fieldId: "isspecialorderitem",
          value: true
        }).setValue({
            fieldId: "cost",
          value: item.price
        });
      
       itemRecord.selectNewLine({
          sublistId: 'itemvendor'
        });
      
      itemRecord.setCurrentSublistValue({
            sublistId: 'itemvendor',
            fieldId: 'vendor',
            value: vendor
          });
      /* vendor.internalId */
      itemRecord.setCurrentSublistValue({
            sublistId: 'itemvendor',
            fieldId: 'purchaseprice',
            value: item.price
          });
      
      itemRecord.setCurrentSublistValue({
            sublistId: 'itemvendor',
            fieldId: 'subsidiary',
            value: subsidiary.internalId
          });
      
      itemRecord.setCurrentSublistValue({
            sublistId: 'itemvendor',
            fieldId: 'preferredvendor',
            value: true
          });
      
      itemRecord.commitLine({
          sublistId: 'itemvendor'
        });
      
      itemRecord.save({
          enableSourcing: true,
          ignoreMandatoryFields: false
        });
    }

函数开始处的审核日志消息表明正在将以下值传递给函数:

{"ITEM":{"sku":"SKU #1","catalogcode":"1804","summary":"台球桌","details":"台球桌","price":9999.99 }, "供应商":"1648", "SUBSIDIARY":{"internalId":"3","externalId":"","type":"subsidiary"} }

【问题讨论】:

    标签: netsuite suitescript2.0


    【解决方案1】:

    我不确定为什么它必须以这种方式工作,但我解决这个问题的方法是在 createItemRecord 函数之外设置特殊订单项目标志。 createItemRecord 将设置包含子列表供应商项目的项目并保存记录。将新记录 id 返回给调用者。调用者将此记录 id 传递给函数以通过将特殊订单项目标志设置为 true 来更新记录。

    function createItemRecord(item, vendor, subsidiary) {
    
    ...
    
          var recordId = itemRecord.save({
              enableSourcing: true,
              ignoreMandatoryFields: false
            });
          
          return recordId;
        }
      
      function makeItemSpecialOrder(itemId)
      {
        log.audit({
          title: 'makeItemSpecialOrder...',
          details: itemId
        });
        
        var itemRecord = record.submitFields({
          type: record.Type.INVENTORY_ITEM,
          id: itemId,
          values: {
            isspecialorderitem: true
          },
          options: {
            enableSourcing: false,
            ignoreMandatoryFields: true
          }
        });
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 2020-01-16
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      相关资源
      最近更新 更多