Function to create deployment and execute the script through script.

  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;
    }

Leave a comment

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