Binding Map/reduce script to Suitelet

  • Create a suitelet script file and call the dependent Map/Reduce Script

 

let scriptTask = task.create({
        taskType: task.TaskType.MAP_REDUCE,
        deploymentId: 'customdeploy_jj_mr_xyz',
        scriptId: 'customscript_jj_mr_xyz',
        params: {
          'custscript_jj_from_date' : dateFrom,
          'custscript_jj_to_date' : dateTo
        }
        });
        log.debug("param Dates", scriptTask.params);
        scriptTask.submit();
  
        let taskStatus = task.checkStatus({
           taskId: scriptTask.id
        });
        if (taskStatus.status === 'FAILED') {
           const authorId = 6;
           const recipientEmail = -5;
           email.send({
              author: authorId,
              recipients: recipientEmail,
              subject: 'Failure executing map/reduce job!',
              body: 'Map reduce task: ' + scriptTask.scriptId + ' has failed.'
           });
           // Stop the currently executing script
           task.stop({
              taskId: scriptTask.id
           });
         }

 

  • Now create parameters in Map/Reduce script record page and pass these param id’s to map/reduce

 

 

 

try
{
   //Get the values from suitelet. Create the parameters with these ID's in Script record of Netsuite
   var startDateParam = runtime.getCurrentScript().getParameter({
      name: 'custscript_jj_from_date'
   });
   log.debug("Map Start Date", startDateParam);
   var toDateParam = runtime.getCurrentScript().getParameter({
      name: 'custscript_jj_to_date'
   });
   log.debug("Map To Date", toDateParam);
 }
 catch(e)
 {
   log.debug("Error @Param get",e);
 }

Leave a comment

Your email address will not be published. Required fields are marked *