Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Exception during REST call: "GlideRestMessage" is not defined.

appstorm
Tera Contributor

I am using a non-client callable Script Include and a script in workflow editor to post data, via REST API.  However, I keep getting this error: [Late Add Script] Exception during REST call: "GlideRestMessage" is not defined.  

 

Workflow Script

// Access the student_information and course_information reference fields from the current record
var studentInfo = current.variables.student_information;  // Reference to the LARF Banner Student record
var courseInfo = current.variables.course_information;    // Reference to the LARF Banner Courses record

// Initialize variables for student_id, crn, and term_code
var studentId, crn, termCode;

// --- Step 1: Retrieve Student ID using Script Include ---
if (studentInfo) {
    var studentId = new LateAddHelper().getStudentId(studentInfo);  // Call the Script Include to get student ID

    if (studentId) {
        gs.info("[Late Add Script] Successfully retrieved student ID: " + studentId);
    } else {
        gs.error("[Late Add Script] Could not retrieve student ID.");
    }
} else {
    gs.error("[Late Add Script] student_information is not set or invalid.");
}

// --- Step 2: Retrieve CRN and Term Code ---
if (courseInfo) {
    var courseGR = new GlideRecord('sn_uni_req_larf_banner_courses');
    if (courseGR.get(courseInfo)) {
        crn = courseGR.u_crn;
        termCode = courseGR.u_term_code;
        gs.info("[Late Add Script] Retrieved CRN: " + crn + ", Term Code: " + termCode);
    } else {
        gs.error("[Late Add Script] Course record not found for course_information: " + courseInfo);
    }
} else {
    gs.error("[Late Add Script] course_information is not set or invalid.");
}

// --- Step 3: Invoke REST API using the "LARF Banner Student Late-Add" REST Message ---

if (studentId && crn && termCode) {
    try {
        gs.info("[Late Add Script] All required parameters are present. Preparing REST call...");

        // Instantiate the GlideRestMessage object
        var restMessage = new GlideRestMessage();
        
        // Set the REST message by name ("LARF Banner Student Late-Add" as per your configuration)
        restMessage.setRestMessageName('LARF Banner Student Late-Add');
        
        // Set the HTTP method (configured in the REST message; in this case, "Default" -> POST)
        restMessage.setHttpMethod('Default');  // Ensure the method is POST as per the configuration

        // Set the parameters (these are the fields you need to pass to the API)
        restMessage.setStringParameter('student_id', studentId);
        restMessage.setStringParameter('crn', crn);
        restMessage.setStringParameter('term_code', termCode);
        restMessage.setStringParameter('stst_code', 'RE');  // Set status code as 'RE' for late-add

        gs.info("[Late Add Script] Sending REST request with student_id: " + studentId + ", crn: " + crn + ", term_code: " + termCode);

        // Execute the REST message and capture the response
        var response = restMessage.execute();

        // Parse the response
        var responseBody = response.getBody();
        var httpStatus = response.getStatusCode();

        gs.info("[Late Add Script] REST Response Status: " + httpStatus);
        gs.info("[Late Add Script] REST Response Body: " + responseBody);

        // Handle the response status
        if (httpStatus == 200 || httpStatus == 201) {
            gs.info("[Late Add Script] Successfully sent data to Banner for student ID: " + studentId);
        } else {
            gs.error("[Late Add Script] Failed to send data to Banner. HTTP Status: " + httpStatus + ", Body: " + responseBody);
        }

    } catch (e) {
        gs.error("[Late Add Script] Exception during REST call: " + e.message);
    }
} else {
    gs.error("[Late Add Script] Missing one or more required parameters (studentId, crn, termCode). Aborting REST call.");
}

 

Script Include

var LateAddHelper = Class.create();
LateAddHelper.prototype = {
    initialize: function() {},

    getStudentId: function(studentSysId) {
        if (!studentSysId) {
            gs.error("[Late Add Script] studentSysId is not provided.");
            return null;
        }

        var studentGR = new GlideRecord('sn_uni_req_larf_banner_student');
        if (studentGR.get(studentSysId)) {
            var studentId = studentGR.u_employee_number;
            gs.info("[Late Add Script] Retrieved Student ID: " + studentId);
            return studentId;
        } else {
            gs.error("[Late Add Script] Student record not found for Sys ID: " + studentSysId);
            return null;
        }
    },

    type: 'LateAddHelper'
};

 

I have also tried using RESTMessageV2 with the same result.

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@appstorm 

GlideRestMessage is not a valid class

updated workflow script

// Access the student_information and course_information reference fields from the current record
var studentInfo = current.variables.student_information;  // Reference to the LARF Banner Student record
var courseInfo = current.variables.course_information;    // Reference to the LARF Banner Courses record

// Initialize variables for student_id, crn, and term_code
var studentId, crn, termCode;

// --- Step 1: Retrieve Student ID using Script Include ---
if (studentInfo) {
    studentId = new LateAddHelper().getStudentId(studentInfo);  // Call the Script Include to get student ID

    if (studentId) {
        gs.info("[Late Add Script] Successfully retrieved student ID: " + studentId);
    } else {
        gs.error("[Late Add Script] Could not retrieve student ID.");
    }
} else {
    gs.error("[Late Add Script] student_information is not set or invalid.");
}

// --- Step 2: Retrieve CRN and Term Code ---
if (courseInfo) {
    var courseGR = new GlideRecord('sn_uni_req_larf_banner_courses');
    if (courseGR.get(courseInfo)) {
        crn = courseGR.u_crn;
        termCode = courseGR.u_term_code;
        gs.info("[Late Add Script] Retrieved CRN: " + crn + ", Term Code: " + termCode);
    } else {
        gs.error("[Late Add Script] Course record not found for course_information: " + courseInfo);
    }
} else {
    gs.error("[Late Add Script] course_information is not set or invalid.");
}

// --- Step 3: Invoke REST API using the "LARF Banner Student Late-Add" REST Message ---
if (studentId && crn && termCode) {
    try {
        gs.info("[Late Add Script] All required parameters are present. Preparing REST call...");

        // Instantiate the RESTMessageV2 object
        var restMessage = new sn_ws.RESTMessageV2('LARF Banner Student Late-Add', 'Default'); // Ensure the method is POST as per the configuration

        // Set the parameters (these are the fields you need to pass to the API)
        restMessage.setStringParameter('student_id', studentId);
        restMessage.setStringParameter('crn', crn);
        restMessage.setStringParameter('term_code', termCode);
        restMessage.setStringParameter('stst_code', 'RE');  // Set status code as 'RE' for late-add

        gs.info("[Late Add Script] Sending REST request with student_id: " + studentId + ", crn: " + crn + ", term_code: " + termCode);

        // Execute the REST message and capture the response
        var response = restMessage.execute();

        // Parse the response
        var responseBody = response.getBody();
        var httpStatus = response.getStatusCode();

        gs.info("[Late Add Script] REST Response Status: " + httpStatus);
        gs.info("[Late Add Script] REST Response Body: " + responseBody);

        // Handle the response status
        if (httpStatus == 200 || httpStatus == 201) {
            gs.info("[Late Add Script] Successfully sent data to Banner for student ID: " + studentId);
        } else {
            gs.error("[Late Add Script] Failed to send data to Banner. HTTP Status: " + httpStatus + ", Body: " + responseBody);
        }

    } catch (e) {
        gs.error("[Late Add Script] Exception during REST call: " + e.message);
    }
} else {
    gs.error("[Late Add Script] Missing one or more required parameters (studentId, crn, termCode). Aborting REST call.");
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

2 REPLIES 2

Ankur Bawiskar
Tera Patron
Tera Patron

@appstorm 

GlideRestMessage is not a valid class

updated workflow script

// Access the student_information and course_information reference fields from the current record
var studentInfo = current.variables.student_information;  // Reference to the LARF Banner Student record
var courseInfo = current.variables.course_information;    // Reference to the LARF Banner Courses record

// Initialize variables for student_id, crn, and term_code
var studentId, crn, termCode;

// --- Step 1: Retrieve Student ID using Script Include ---
if (studentInfo) {
    studentId = new LateAddHelper().getStudentId(studentInfo);  // Call the Script Include to get student ID

    if (studentId) {
        gs.info("[Late Add Script] Successfully retrieved student ID: " + studentId);
    } else {
        gs.error("[Late Add Script] Could not retrieve student ID.");
    }
} else {
    gs.error("[Late Add Script] student_information is not set or invalid.");
}

// --- Step 2: Retrieve CRN and Term Code ---
if (courseInfo) {
    var courseGR = new GlideRecord('sn_uni_req_larf_banner_courses');
    if (courseGR.get(courseInfo)) {
        crn = courseGR.u_crn;
        termCode = courseGR.u_term_code;
        gs.info("[Late Add Script] Retrieved CRN: " + crn + ", Term Code: " + termCode);
    } else {
        gs.error("[Late Add Script] Course record not found for course_information: " + courseInfo);
    }
} else {
    gs.error("[Late Add Script] course_information is not set or invalid.");
}

// --- Step 3: Invoke REST API using the "LARF Banner Student Late-Add" REST Message ---
if (studentId && crn && termCode) {
    try {
        gs.info("[Late Add Script] All required parameters are present. Preparing REST call...");

        // Instantiate the RESTMessageV2 object
        var restMessage = new sn_ws.RESTMessageV2('LARF Banner Student Late-Add', 'Default'); // Ensure the method is POST as per the configuration

        // Set the parameters (these are the fields you need to pass to the API)
        restMessage.setStringParameter('student_id', studentId);
        restMessage.setStringParameter('crn', crn);
        restMessage.setStringParameter('term_code', termCode);
        restMessage.setStringParameter('stst_code', 'RE');  // Set status code as 'RE' for late-add

        gs.info("[Late Add Script] Sending REST request with student_id: " + studentId + ", crn: " + crn + ", term_code: " + termCode);

        // Execute the REST message and capture the response
        var response = restMessage.execute();

        // Parse the response
        var responseBody = response.getBody();
        var httpStatus = response.getStatusCode();

        gs.info("[Late Add Script] REST Response Status: " + httpStatus);
        gs.info("[Late Add Script] REST Response Body: " + responseBody);

        // Handle the response status
        if (httpStatus == 200 || httpStatus == 201) {
            gs.info("[Late Add Script] Successfully sent data to Banner for student ID: " + studentId);
        } else {
            gs.error("[Late Add Script] Failed to send data to Banner. HTTP Status: " + httpStatus + ", Body: " + responseBody);
        }

    } catch (e) {
        gs.error("[Late Add Script] Exception during REST call: " + e.message);
    }
} else {
    gs.error("[Late Add Script] Missing one or more required parameters (studentId, crn, termCode). Aborting REST call.");
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Shree_G
Mega Sage
Mega Sage

Hello @appstorm ,

 

Correct syntax to glide Rest Message is as below :

 

var restMessage = new sn_ws.RESTMessageV2();

 

 


If this solution helped resolve your issue, please consider marking it as helpful or correct.
This will assist others in finding the solution faster and close the thread.