The following functions can be used to create a new script deployment and execute the script.
/**
* A function that create Deployment and execute the script.
*
* @return {String} The Task ID from NetSuite.
*/
function createAndExecuteDeployment(options)
{
let deploymentId = "";
let executeOptions = {};
let taskId = "";
try
{
deploymentId = createDeployment(options);
executeOptions = {
taskType : options.taskType,
scriptId : options.scriptId,
deploymentId : deploymentId
};
taskId = execute(executeOptions);
}
catch (e)
{
errorHandler("createAndExecuteDeployment", e, options);
}
return taskId;
}
/**
* Creates a deployment for the given script, setting the deployment field values.
*
* @since 1.0.0
* @scope public
*
* @param {Object} options
* @param {String} options.scriptRecordType The script record type. (Eg. record.Type.SCHEDULED_SCRIPT)
* @param {String} options.scriptId The script id string (Eg. customscript_examplescript)
* @param {Object} options.deploymentFieldValues [optional] The deployment field values. (Eg. custscript_ss_record) - Note fields script and scriptid will be ignored.
*
* @returns {String} returnScriptId - The script id of the deployment. (Eg. customdeploy_1_12345)
*/
function createDeployment(options)
{
let time = null;
let deploymentScriptId = "";
let scriptInternalId = "";
let deploymentRecord = "";
let fieldKeys = [];
let returnScriptId = "";
let key = "";
let value = "";
try
{
time = new Date().getTime();
if (options != null && options.scriptId)
{
scriptInternalId = options.scriptId;
deploymentScriptId = "_" + scriptInternalId + "_" + time;
deploymentRecord = record.create({
type: record.Type.SCRIPT_DEPLOYMENT,
defaultValues: {
script: scriptInternalId,
}
});
if (options.deploymentFieldValues)
{
fieldKeys = Object.keys(options.deploymentFieldValues);
for (var i = 0; i < fieldKeys.length; i++)
{
key = fieldKeys[i];
value = options.deploymentFieldValues[key];
deploymentRecord.setValue({ fieldId: key, value: value });
}
}
deploymentRecord.setValue({fieldId: "scriptid", value: deploymentScriptId});
deploymentRecord.save();
returnScriptId = "customdeploy" + deploymentScriptId;
}
}
catch(e)
{
errorHandler("createDeployment", e, options);
}
return returnScriptId;
}