繁体   English   中英

Netsuite用户事件脚本正在获取JavaScript全局变量的空值

[英]Netsuite User Event Script is Getting Empty values for the JavaScript Global Variable

我有一个名为itemId(此itemId是具有键值对的对象)JavaScript全局变量 ,该对象将存储标准项目记录详细信息。

我能够在“用户事件脚本加载前事件”中存储此值,并尝试在“提交前事件”中访问全局变量“ itemId”,但此itemId(Object)正在获取空值。

当尝试使用键获取此对象的值时,它显示错误:“:无法从未定义中读取属性” ItemQuantityTolerance“”

码:

SuiteScript版本:2.0

 var itemId = new Object();

 function beforeLoad(scriptContext) {

      try {

          var IR_Record = scriptContext.newRecord;
          var form = scriptContext.form;
          form.clientScriptFileId = 50137;

          if (IR_Record != null && IR_Record != '' && IR_Record != undefined) {


              var ItemsId = new Array();
              var IR_LineItemCount = null;
              var lineNumber = null;

              IR_LineItemCount = IR_Record.getLineCount('item');
              log.debug('Value', 'IR_LineItemCount : ' + IR_LineItemCount);

              if (IR_LineItemCount != null && IR_LineItemCount != '' && IR_LineItemCount != undefined) {

                  for (var i = 0; i < IR_LineItemCount; i++) {

                      lineNumber = i;
                      log.debug('Value', 'LineNumber : ' + lineNumber);

                      var IR_ItemId = IR_Record.getSublistValue({
                          sublistId: 'item',
                          fieldId: 'item',
                          line: i
                      });

                      ItemsId[lineNumber] = IR_ItemId;
                      log.debug('Value', 'IR_ItemId : ' + IR_ItemId);

                  }

                  if (ItemsId != null && ItemsId != '' && ItemsId != undefined) {

                      log.debug('Value:', 'ItemsId:' + ItemsId);

                      getItemToleranceValues(ItemsId);

                  }

              }


          }

      } catch (exception) {
          log.debug("Value :", "Before-Load Error :", exception.message);
          throw exception.message;
      }


  }

  function getItemToleranceValues(ItemsId) {

      try {

          var ItemDetialsSearch = "";
          var ItemSearchResults = "";

          var Item_Id = null;
          var Item_Name = "";




          ItemDetialsSearch = search.create({
              type: 'item',
              filters: ['internalid', 'anyof', ItemsId],
              columns: ['internalid', 'itemid']
          });

          if (ItemDetialsSearch != null && ItemDetialsSearch != '' && ItemDetialsSearch != undefined) {

              ItemSearchResults = ItemDetialsSearch.run().getRange(0, 200);

              if (ItemSearchResults != null && ItemSearchResults != '' && ItemSearchResults != undefined) {


                  for (var i = 0; i < ItemSearchResults.length; i++) {

                      var itemDetails = new Object();

                      Item_Id = ItemSearchResults[i].getValue('internalid');

                      Item_Name = ItemSearchResults[i].getValue('itemid');

                      if (Item_Name != null && Item_Name != '' && Item_Name != undefined) {



                          itemDetails['ItemName'] = Item_Name;

                      }


                      itemId[Item_Id] = itemDetails;

                  }

                  log.debug("itemId:", itemId);

              }

          }


      } catch (exception) {

          log.debug("Value:", "Item-Tolerance-Value Error:" + exception.message);
          throw exception.message;
      }

  }


  function beforeSubmit(scriptContext) {

      try {


          var IR_Record = scriptContext.newRecord;
          var itemName = "";
          if (IR_Record != null && IR_Record != '' && IR_Record != undefined) {

              if (itemId != null && itemId != '' && itemId != undefined) {

                  log.debug("itemId:", itemId);


                  itemName = itemId[IR_ItemId]['ItemName']; // Getting Empty Values at this point, eventhough it is global variable with values

                  log.debug('Value', 'itemName : ' + itemName);



              }

          }

      }catch(exception){

          throw exception.message;

      }

itemId对象的示例值:

{
   337: {
      ItemName: "Apple",

   },
   359: {
      ItemName: "Orange"

   }
}

如何访问全局变量itemId,使用属性“ ItemName”获取值。

提前致谢。

您误解了脚本执行生命周期。 在服务器端,前执行,提交前和提交后执行完全分开。 它看起来像您正在加载的itemId是通过调用的唯一地方getItemToleranceValuesbeforeLoad脚本,但你正在访问你的空值beforeSubmit脚本。

如果出于某种原因需要在beforeLoad脚本中加载该值,则可以将该值缓存在会话变量中,然后在beforeSubmit脚本中检索它。 请参阅N /运行时模块中的Session.get / set

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM