2016-07-15 3 views
0

私は左の外側を使用して2つのレコードを結合することにより、検索を作成したいに参加「のSuiteScript 2.0バージョン」はのSuiteScript 2.0

最初のレコードに参加(請求書)であ​​り、第2のレコードは、共通フィールド(クラスおよび取引タイプ、所有者)を有する両方のレコードであるカスタムレコード(契約)です。

請求書レコードのフィールドは、トランザクション列フィールド(クラス、トランザクション・タイプ、所有者) 契約レコードのフィールドは、カスタムフィールド(クラス、トランザクション、所有者)

ある私は、請求書のレコードの検索を作成しており、請求書レコードの検索結果に基づいて、契約レコードの検索を作成しました。私のコードは正しい結果を示していますが、質問はです。「SuiteScript 2.0バージョンの左外部結合を使用して2つの異なるレコードの検索を作成することは可能ですか?

//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

のおかげでは、残念ながら、これはネットスイートで、現在は不可能です。

結果の両方のセットを取り込み、それに応じて組み合わせる関数を書く必要があります。 lodashのような配列ユーティリティライブラリを使用する場合は、_.groupByのようなものを使用して簡単に組み合わせることができます。

関連する問題