2016-11-28 7 views
0

Так что все, что я хочу сделать, это если скрипт m/r не работает, обновите соответствующее выпадающее значение на пользовательской записи из сценария m/r.* Suitescript 2.0 * Как обновить статус пользовательской записи из сценария «Уменьшить карту»?

Как сделать это в SuiteScript 2.0

ответ

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 script? Адольфо GARĀŽA правильно о сводке – scheppsr77

+0

Посмотрите этот один: // установить статус записи для завершения \t уаг mergeRecord = record.load ({ \t \t типа: 'customrecordvc_merge_vendor_request', \t \t ID: '12', \t \t isDynamic: true \t \t}); \t \t mergeRecord.setText ({ \t fieldId: 'custrecordvc_merge_vendor_request_status', текст: 'Полная' \t}); \t вар mergeRecordId = mergeRecord.save ({ enableSourcing: ложь, ignoreMandatoryFields: ложные \t}); --------------> Я пытаюсь изменить выпадающее значение в сводном методе – FreeMarker12