【问题标题】:How get Lot/Serial number in Netsuite SuiteScript 2.0 for Inventory Adjustment Transaction?如何在 Netsuite SuiteScript 2.0 中获取批次/序列号以进行库存调整交易?
【发布时间】:2021-10-11 19:25:27
【问题描述】:

我正在尝试从用户事件脚本中的库存调整中获取序列号。当调整量为正时,以下代码对我来说非常有效,但当它为负时则不行。

var invDet = transaction.getSublistSubrecord({sublistId:'inventory',
                                              fieldId:'inventorydetail',
                                              line:x});

for(var y = 0; y = invDet.getLineCount('inventoryassignment'); y++) {

    var lotNumber = invDet.getSublistValue({sublistId:'inventoryassignment',
                                     fieldId:'receiptinventorynumber', 
                                     line:y}); 
    log.debug('lotNumber', lotNumber);                         
}    

When adjust quantity is negative, receiptinvetorynumber is empty

我尝试使用等于“issueinventorynumber”或“binnunber”的字段 id,但返回值为空。

我在a NetsuiteHub forum...中找到以下评论...

在 2.0 中,getValue 调用返回序列号/批号的内部 ID,而 getText 等效项不起作用。根据您需要为获得的编号执行的确切逻辑,您可能需要调用后续保存的搜索来获取实际的序列号/批号而不是内部 ID(“库存编号”搜索就可以了)。

我试过了……

      try{
         var internalId = invdet.getSublistValue({sublistId:'inventoryassignment',fieldId:'internalid', line:y});
         search.create({type:'inventorynumber', filters:[
                           ['internalid', 'is', internalId]
                         ], columns:['inventorynumber']}).run().each(function (result) {
                          binText = result.getValue('inventorynumber');                  
                          log.debug('binText', binText);
                     });
       } catch(e) {
           log.debug('Error', e.message);
           throw e.message;
       }

我太缺乏经验,无法完成这项工作。感谢您给我的任何帮助。

谢谢。

【问题讨论】:

    标签: netsuite suitescript2.0 saved-searches


    【解决方案1】:

    挑战在于 NetSuite API 的这个领域没有很好的文档记录。然而,我通过反复试验和搜索时间完成了它。

    var invDet = transaction.getSublistSubrecord({sublistId:'inventory',
                                                  fieldId:'inventorydetail',
                                                  line:x});
    
    for(var y = 0; y = invDet.getLineCount('inventoryassignment'); y++) {
    
         var Qty = invdet.getSublistValue({sublistId:'inventoryassignment',
                                           fieldId:'quantity', 
                                           line:y});
         var lotNumber = '';
    
         if(Qty < 0)
         {
              var ivnNumId = nvdet.getSublistValue({sublistId:'inventoryassignment',
                                                    fieldId:'issueinventorynumber',
                                                    line:y});
              if(ivnNumId !== '')
              {
                 var invNum = record.load({type: 'inventorynumber',id:ivnNumId});
                 lotNumber = invNum.getValue({fieldId: 'inventorynumber'});
              }
         }
         else
         {
              lotNumber = invdet.getSublistValue({sublistId:'inventoryassignment',                                                                                
                                                  fieldId:'receiptinventorynumber',
                                                  line:y});
         }
     
         log.debug('lotNumber', lotNumber);                         
    }
    

    This information was very helpful in ss1.0 我希望它对某人有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      相关资源
      最近更新 更多