2016-07-15 20 views
0

我想用左外連接兩個記錄創建一個搜索加入「suitescript 2.0版」如何通過連接使用左外兩個記錄創造NetSuite的保存的搜索加入SuiteScript 2.0

第一條記錄是一個標準記錄(發票),第二個記錄是一個自定義記錄(合同)兩個記錄有共同的字段,即:類和交易類型,所有者。

發票記錄字段是事務的列字段(類,交易類,所有者) 合同記錄的字段的自定義字段(類,交易,所有者)

我創建搜索發票記錄和根據發票記錄的搜索結果,我在合同記錄上創建了搜索。我的代碼給出了正確的結果,但問題是「可以使用SuiteScript 2.0版本中的左外連接創建兩個不同記錄的搜索?」

//Create Search on Standard Invoice Record 
      var mySearch = search.create({ 
       type: 'invoice', 
       columns: ['internalId', 'item', 'line', 'custcol_class', 'custcol_transaction_type', 'custcol_owner', 'amount'], 
       filters: ['trandate', 'after', '12/15/2015'] 
      }); 

      //Executing the First 100 records on the search result 
      var searchResult = mySearch.run().getRange(0, 100); 
      log.debug('Search Length', searchResult.length); 

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

       var lineId = searchResult[i].getValue({ 
        name: 'line' 
       }); 
       var item = searchResult[i].getValue({ 
        name: 'item' 
       }); 
       var contractClass = searchResult[i].getValue({ 
        name: 'custcol_class' 
       }); 
       var transactionType = searchResult[i].getValue({ 
        name: 'custcol_transaction_type' 
       }); 
       var owner = searchResult[i].getValue({ 
        name: 'custcol_owner' 
       }); 
       var invoice_id = searchResult[i].getValue({ 
        name: 'internalId' 
       }); 
       var invoice_amt = searchResult[i].getValue({ 
        name: 'amount' 
       }); 
       log.debug('Values', 'contractClass:' + contractClass + '-transactionType:' + transactionType + '-owner:' + owner); 

       if (contractClass != '' && owner != '' && transactionType != '') { 
        log.debug('create commision', 'item' + item + '-lineId:' + lineId + '-contractClass:' + contractClass + '-transactionType:' + transactionType + '-owner:' + owner); 
        createCommission(contractClass, transactionType, owner, invoice_id, invoice_amt); 
       } 


      } 



     } 

     function createCommission(contractClass, transactionType, owner, invoiceId, invoice_amt) { 
      log.debug('Entry', 'createCommission Initiated'); 
      log.debug('invoice amount..', invoice_amt); 
      //Creating search on Custom Record Contract 
      var mySearch = search.create({ 
       type: 'customrecord_contract', 
       columns: ['internalId', 'custrecord_rec_class', 'custrecord_vendor_fees_formula'], 
       filters: [ 
        ['custrecord_rec_class', 'anyof', contractClass], 'AND', ['custrecor_rec_transaction_type', 'anyof', transactionType], 'AND', ['custrecord__rec_owner', 'anyof', owner], 'AND', ['custrecord__vendor_fees_formula', 'anyof', INRAM_RS_V1] 
       ] 
      }); 
} 

在此先感謝

回答

2

很不幸,這是目前不可能與NetSuite的。

您將不得不爲解決這個問題而編寫一個函數,該函數接受兩組結果並相應地組合它們。如果您使用任何數組實用程序庫(如lodash),則可以使用類似_.groupBy的組合來簡化組合。

相關問題