NetSuite SuiteScript 2.0 Не удается программно получить подзапись подсписка деталей инвентаризации из сценария пользовательского события - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь получить поля «Подробности инвентаризации» формы «Настроить инвентаризацию» через SuiteScript 2.0 в сценарии пользовательских событий, используя приведенный ниже код.Сценарий в конечном итоге должен проверить, что номера лота увеличиваются на 1.

lines и newIventoryDetails return {"details":"SS lines: 1"} и {"details":"SS newIventoryDetails: standard subrecord"}

Однако строки

  var lotNumber = newIventoryDetails.getValue({
     fieldId: 'issueinventorynumber'
  });
  log.debug({details: "SS lotNumber: " + lotNumber});

возвращает {"details":"SS lotNumber: undefined"} для номера лота.Кто-нибудь знает, где я иду не так?

/**
 * @NApiVersion 2.0
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
define([], function () {

   // Script global variables.
   var allowSaveLot = true;
   var firstItemNegative = false;
   var firstItemParentID = -9999;

   function beforeSubmit(context) {

      log.debug({details: "SS beforeSubmit: " + context.type});

      var newRecord = context.newRecord;    // The new record being submitted.

      // Check how many lines exist in the inventory sublist.
      var lines = newRecord.getLineCount({sublistId: 'inventory'});
      log.debug({details: "SS lines: " + lines});

      var newIventoryDetails = newRecord.getSublistSubrecord({
         sublistId: 'inventory',
         fieldId: 'inventorydetail',
         line: 0
      });
      log.debug({details: "SS newIventoryDetails: " + newIventoryDetails});

      var lotNumber = newIventoryDetails.getValue({
         fieldId: 'issueinventorynumber'
      });
      log.debug({details: "SS lotNumber: " + lotNumber});

   }

   return {
      beforeSubmit: beforeSubmit
   };

});   // Define

1 Ответ

0 голосов
/ 31 декабря 2018

Исправлено с этим изменением:

   function beforeSubmit(context) {

      log.debug({details: "SS beforeSubmit: " + context.type});

      var newRecord = context.newRecord;    // The new record being submitted.

      if (newRecord.isDynamic) {
         log.debug({details: "SS isDynamic: true"});   // currentRecord is Dynamic.
      } else {
         log.debug({details: "SS isDynamic: false"});
      }

      // Check how many lines exist in the inventory sublist.
      var lines = newRecord.getLineCount({sublistId: 'inventory'});
      log.debug({details: "SS lines: " + lines});

      var newIventoryDetails = newRecord.getSublistSubrecord({
         sublistId: 'inventory',
         fieldId: 'inventorydetail',
         line: 0
      });
      log.debug({details: "SS newIventoryDetails: " + newIventoryDetails});

      var lotNumber = newIventoryDetails.getSublistText({   // getSublistValue
         sublistId: 'inventoryassignment',
         fieldId: 'issueinventorynumber',
         line: 0
      });
      log.debug({details: "SS lotNumber: " + lotNumber});

   }
...