GlideAjax returning null

Kingstan M
Kilo Sage

Hi SNC,

GlideAjax returning null value.

Where i am doing wrong?

Script Include 

    checkTheExisingPachingRequest: function(AppServiceId, reqStartDate, reqEndDate) {
        
        var appserviceId = this.getParameter('sysparm_Appci') || AppServiceId;
        var sDate = this.getParameter('sysparm_reqStartDate') || reqStartDate;
        var eDate = this.getParameter('sysparm_reqEndDate') || reqEndDate;

        gs.log("appserviceId >> " + appserviceId);
        gs.log("sDate >> " + sDate);
        gs.log("eDate >> " + eDate);

Catalog Client Script

function onSubmit() {
    //Type appropriate comment here, and begin script below

    // >> topic >> getting boolen value server_patching_request
    var server_patching_request_true_or_false = g_form.getValue('server_patching_request');
    var application_choosen = g_form.getValue('application_service');
    var start_time_choosen = g_form.getValue('start_timestamp');
    var end_time_choosen = g_form.getValue('end_timestamp');

    //alert(server_patching_request_true_or_false + " >> " + g_form.getValue('application_service') + " >> " + g_form.getValue('start_timestamp') + " >> " + g_form.getValue('end_timestamp'));

    // >> topic >> initiate GlideAjax and pass the above values
    var gjx = new GlideAjax('WOWserverbookerUtils');
    gjx.addParam('sysparm_name', 'checkTheExisingPachingRequest');
    gjx.addParam('sysparm_Appci', application_choosen);
    gjx.addParam('sysparm_reqStartDate', start_time_choosen);
    gjx.addParam('sysparm_reqEndDate', end_time_choosen);
    gjx.getXML(CallBack);
    alert(JSON.stringify(gjx));

    function CallBack(response) {
        var output = response.responseXML.documentElement.getAttribute("answer");
        alert(output);
    }


}

1 ACCEPTED SOLUTION

Update the below line as below and try.

var arrAppServiceID = appserviceId.toString().split(',');

Replaced "AppServiceId" with "appServiceId".

 

Regards,
Muhammad

View solution in original post

17 REPLIES 17

Aman Kumar S
Kilo Patron

Kindly share screenshot of your script include.

Also, Can you confirm on these?

1. Do you have client callable marked as true on the script include

2. Functional parameters doesn't work in GlideAjax functions, so remove those, since you will be explicitly passing details using addParams function

Best Regards
Aman Kumar

checkTheExisingPachingRequest: function(AppServiceId, reqStartDate, reqEndDate) {
    gs.log("catalog client script calling checkTheExisingPachingRequest day_M2 >> ");
    var appserviceId = this.getParameter('sysparm_Appci') || AppServiceId;
    var sDate = this.getParameter('sysparm_reqStartDate') || reqStartDate;
    var eDate = this.getParameter('sysparm_reqEndDate') || reqEndDate;

    gs.log("appserviceId > in script inc > day_M2 called " + appserviceId);
    gs.log("sDate > in script inc > day_M2 called " + sDate);
    gs.log("eDate > in script inc > day_M2 called " + eDate);

    var dateStart = new GlideDateTime();
    dateStart.setDisplayValue(sDate, "dd-MM-yyyy hh:mm a");
    gs.log("sDate_into_sDis > in script inc > day_M2 called " + sDate);
    gs.log("dateStart.setDisplayValue > in script inc > day_M2 called " + dateStart.setDisplayValue(sDate, "dd-MM-yyyy hh:mm a"));

    var dateEnd = new GlideDateTime();
    dateEnd.setDisplayValue(eDate, "dd-MM-yyyy hh:mm a");
    gs.log("eDate_into_sDis > in script inc > day_M2 called " + eDate);
    gs.log("dateEnd.setDisplayValue > in script inc > day_M2 called " + dateEnd.setDisplayValue(sDate, "dd-MM-yyyy hh:mm a"));

    var arrAppServiceID = AppServiceId.toString().split(',');
    gs.log("arrAppServiceID >> day_M2 >>" + arrAppServiceID);
    var finalServerList = '';
    var returnval = '';
    for (var i = 0; i < arrAppServiceID.length; i++) {
        var gr = GlideRecord('cmdb_ci');
        gr.get(arrAppServiceID[i]);
        gs.log("gr.get(arrAppServiceID[i]) > day_M2 called " + gr.get(arrAppServiceID[i]));
        finalServerList = this.ServerCIsImpactedByCI(arrAppServiceID[i]);
        gs.log("finalServerList > day_M2 called " + finalServerList);
        var request_count = 0;
        var server_count = finalServerList.length;
        var ritm_numbers = '';

        var req_check = new GlideRecord('sc_req_item');
        req_check.addQuery('variables.f589271edb1155145b8645521596192f', true);
        req_check.addEncodedQuery("cat_item=1e804c12db573450530b322af4961904^active=true^variables.09d9ef9edb1155145b864552159619d0IN" + finalServerList.toString());


        req_check.query();
        while (req_check.next()) {
            var startdateQuery = new GlideDateTime(req_check.variables.start_timestamp);
            var enddateQuery = new GlideDateTime(req_check.variables.end_timestamp);
            gs.log("startdateQuery > in script inc > day_M2 called " + startdateQuery);
            gs.log("enddateQuery > in script inc > day_M2 called " + enddateQuery);

            gs.log("req_check.variables.start_timestamp > in script inc > day_M2 called " + req_check.variables.start_timestamp);
            gs.log("req_check.variables.end_timestamp > in script inc > day_M2 called " + req_check.variables.end_timestamp);

            if (((dateStart.compareTo(startdateQuery) == 1 || dateStart.compareTo(startdateQuery) == 0) && dateStart.compareTo(enddateQuery) == -1) || ((dateEnd.compareTo(startdateQuery) == 1 || dateEnd.compareTo(startdateQuery) == 0) && dateEnd.compareTo(enddateQuery) == -1)) {
                request_count = request_count + 1;
                ritm_numbers = ritm_numbers + req_check.number + ',';
            }
        }

        gs.log("returnval > before if in script inc > day_M2 called in.loop >> " + returnval);
        if (request_count == server_count) {
            gs.log("request_count == server_count >in script inc> day_M2 " + request_count == server_count);
            var strNumber = ritm_numbers.substring(0, ritm_numbers.length - 1);
            returnval = returnval + 'Booking request for ' + gr.name + ' can not be submitted as all the server are schedule with pacthcing request(' + strNumber + ')';

            gs.log("returnval > in script inc > day_M2 called in.loop >> " + returnval);
        }


    }

    gs.log("returnval >> day_M2 called " + returnval);


    return returnval;

},

The reason is :

 

    dateStart.setDisplayValue(sDate, "dd-MM-yyyy hh:mm a");
    dateEnd.setDisplayValue(eDate, "dd-MM-yyyy hh:mm a");
    var arrAppServiceID = AppServiceId.toString().split(',');

 

These are returning "undefined".

BUT - When i try in bg.script, I get expected output.

 

++ @Ankur Bawiskar @Muhammad 

Hi,

Don't use gs.log() but use gs.info()

Regards
Ankur

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

I will follow this practice, Thanks!!

This below changes have fixed the date value from undefined.

var dateEnd = new GlideDateTime();
    dateEnd.setDisplayValue(eDate, "dd-MM-yyyy hh:mm a");
    dateEnd = dateEnd.getDisplayValue();
    gs.log("eDate_into_sDis > in script inc > day_M5 called " + eDate);
    gs.log("dateEnd.getDisplayValue > in script inc > day_M5 called " + dateEnd);
 
This part still giving undefined.
var arrAppServiceID = AppServiceId.toString().split(',');
    gs.log("AppServiceId >> day_M5 >>" + AppServiceId);
    gs.log("arrAppServiceID >> day_M5 >>" + arrAppServiceID);
 
--starting of script include function/method has its declaration already--
 
checkTheExisingPachingRequest: function(AppServiceId, reqStartDate, reqEndDate) {
    gs.log("catalog client script calling checkTheExisingPachingRequest day_M2 >> ");
    var appserviceId = this.getParameter('sysparm_Appci') || AppServiceId;
    var sDate = this.getParameter('sysparm_reqStartDate') || reqStartDate;
    var eDate = this.getParameter('sysparm_reqEndDate') || reqEndDate;