2016-11-28 12 views

答えて

1

は、スクリプトを減らして、あなたの地図に発生したエラーを取得するために要約ステップを使用することができます。次のコードはこれを達成するのに役立ちます:

function summarize(summary) { 
    handleErrors(summary); 
    handleSummaryOutput(summary.output); 

    //*********** HELPER FUNCTIONS *********** 

    function handleErrors(summary) { 
     var errorsArray = getErrorsArray(summary); 
     if(!errorsArray || !errorsArray.length){ 
      log.debug('No errors encountered'); 
      return; 
     } 

     for (var i in errorsArray) { 
      log.error('Error ' + i, errorsArray[i]); 
     } 

     if(errorsArray && errorsArray.length){ 
      // 
      //INSERT YOUR CODE HERE 
      // 
     } 

     return errorsArray; 

     //*********** HELPER FUNCTIONS *********** 
     function getErrorsArray(summary){ 
      var errorsArray = []; 

      if (summary.inputSummary.error){ 
       log.audit('Input Error', summary.inputSummary.error); 
       errorsArray.push('Input Error | MSG: ' + summary.inputSummary.error); 
      } 

      summary.mapSummary.errors.iterator().each(function (key, e){ 
       var errorString = getErrorString(e); 
       log.audit('Map Error', 'KEY: ' + key + ' | ERROR: ' + errorString); 
       errorsArray.push('Map Error | KEY: ' + key + ' | ERROR: ' + errorString); 
       return true; //Must return true to keep looping 
      }); 

      summary.reduceSummary.errors.iterator().each(function (key, e){ 
       var errorString = getErrorString(e); 
       log.audit('Reduce Error', 'KEY: ' + key + ' | MSG: ' + errorString); 
       errorsArray.push('Reduce Error | KEY: ' + key + ' | MSG: ' + errorString); 
       return true; //Must return true to keep looping 
      }); 

      return errorsArray; 

      //*********** HELPER FUNCTIONS *********** 
      function getErrorString(e){ 
       var errorString = ''; 
       var errorObj = JSON.parse(e); 
       if (errorObj.type == 'error.SuiteScriptError' || errorObj.type == 'error.UserEventError'){ 
        errorString = errorObj.name + ': ' + errorObj.message; 
       } else { 
        errorString = e; 
       } 
       return errorString; 
      } 
     } 
    } 

    function handleSummaryOutput(output){ 
     var contents = ''; 
     output.iterator().each(function (key, value){ 
      contents += (key + ' ' + value + '\n'); 
      return true; 
     }); 
     if(contents){ 
      log.debug('output', contents); 
     } 
    } 
} 
+0

ありがとうございます!しかし、私はこのマップを減らした現在のレコードで、ドロップダウンの値をエラーに変更する必要があります。どうやってやるの ? – FreeMarker12

+0

@ FreeMarker12、コードサンプルを提供する必要があります。あなたが既にあなたのレコードを知っているなら、nlapiSubmitField()だけでかなり簡単です。私はそれが簡単ではないと思っています。そして、m/rスクリプトはどういう意味ですか?アドルフォGarazaが要約に関する正しいです – scheppsr77

+0

参照してください、この1:// \tするvar mergeRecord = record.loadを完了するために、レコードのステータスを設定する({ \t \tタイプ: 'customrecordvc_merge_vendor_request'、 \t \t ID:12 ''、 \t \t isDynamic:true \t \t}); \t \t mergeRecord.setText({ \tフィールド識別子: 'custrecordvc_merge_vendor_request_status' テキスト: '完全' \t})。 \t VAR mergeRecordId = mergeRecord.save({ enableSourcing:偽、 ignoreMandatoryFields:偽 \t})。 -------------->サマリーメソッドのドロップダウン値を変更しようとしています – FreeMarker12

関連する問題