Execute Map/Reduce using Suitelet Script

Create task record in suitelet to pass the required parameters to map/reduce script,

var mapReduceTask = task.create({

                    taskType: task.TaskType.MAP_REDUCE,

                    scriptId: BULK_SCHEDULER_OBJECT.scriptId,

                    deploymentId: BULK_SCHEDULER_OBJECT.deploymentId,

                    params: {

                      “custscript_dynamicdate”: JSON.stringify(dynamicDate)

                    }

                  });

                  var taskID = mapReduceTask.submit();

After collecting all the information from map/reduce script send the parameters to suitelet script,

let requesturl = ExternalURL + ‘&apiType=bulkcreation&fundnumber=’ + fundNum + ‘&subsidiary=’ + subsidiarydivision + ‘&currency=’ + currency + ‘&date=’ + date + ‘&dynamicdate=’ + dateSelected + ‘&user=’ + user;

let response = https.post({ url: requesturl, body: {}, headers: headerObj });

To pass the response back to map/reduce write the context response to return the status,

if (checkForParameter(recordID)) {

                   return context.response.write(JSON.stringify({

                    status: ‘SUCCESS’,

                    reason: ‘JOURNAL_CREATED’,

                    input_parameters: {

                       record_id: recordID

                    }

                  }));

 } else {

                   return context.response.write(JSON.stringify({

                    status: ‘FAILURE’,

                    reason: ‘FAILED_TO_CREATE_JOURNAL’,

                    error_parameters: {

                       error: ERROR

                    }

                  }));

}

Leave a comment

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