GlideAJAX and ScriptInclude issue

Community Alums
Not applicable

Hi,

I have written 2 GlideAJAX with one ScriptIncludes encapsulating both the functions. I have to see that the incidents and RITM's selected as list collector at the task level `should populate in the work notes. Incidents are displaying well, but not RITM's. Kindly help.

 

GlideAjax 1:

 

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

    var inc = g_form.getValue("incidents_submitted_by_itam");

    var ga = new GlideAjax("listCollectorWNClass");
    ga.addParam("sysparm_name", "listCollectorIncidentFunction");
    ga.addParam("sysparm_id", inc);
    ga.getXMLWait();


    var answer = ga.getAnswer();
	g_form.setValue("work_notes", answer);
 //   g_form.work_notes = answer;
}

GlideAjax 2

 

function onSubmit() {
   //Type appropriate comment here, and begin script below
    var rq_item = g_form.getValue("requests_submitted_by_itam");
	
    var ga = new GlideAjax("listCollectorWNClass");
    ga.addParam("sysparm_name", "listCollectorRITMFunction");
    ga.addParam("sysparm_id", rq_item);
    ga.getXMLWait();


    var answer = ga.getAnswer();
	g_form.setValue("work_notes", answer);
}

ScriptIncludes

 

var listCollectorWNClass = Class.create();
listCollectorWNClass.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    listCollectorIncidentFunction: function() {
        var incArr = this.getParameter('sysparm_id').toString().split(',');
        var numArr = [];
        var answer;

        for (var i = 0; i < incArr.length; i++) {
            var inc1 = new GlideRecord('incident');

            if (inc1.get(incArr[i].toString())) {
                numArr.push(inc1.number);
            }
        }
        gs.log("Test for Suman", numArr);
        answer = numArr.join(',');
        return answer;

        // return JSON.stringify(numArr);
    },

    listCollectorRITMFunction: function() {
        var rqArr = this.getParameter('sysparm_id').toString().split(',');
        var numArr = [];

        for (var i = 0; i < rqArr.length; i++) {
            var rq_itm = new GlideRecord('sc_req_item');

            if (rq_itm.get(rqArr[i].toString())) {
                numArr.push(rq_itm.number);
            }
        }
        gs.log("Test for Suman", numArr);
         answer = numArr.join(',');
        return answer;

        // return JSON.stringify(numArr);
    },

    type: 'listCollectorWNClass'
});

 

RITM.PNG

 

W.PNG

 

Regards

Suman P.

1 ACCEPTED SOLUTION

Hi @Community Alums 

 

Highlighted the changes below in red

 

Script include :

 

listCollectorIncRitmFunction: function() {

        var incArr = this.getParameter('sysparm_incId').toString().split(',');

        var ritmArr = this.getParameter('sysparm_ritmId').toString().split(',');

        var newIncArray =[];

        var newritmArray =[];

        var object = {

            incident :'',

            ritm :''

        };

       

        for (var i = 0; i < incArr.length; i++) {

            var inc1 = new GlideRecord('incident');

            if (inc1.get(incArr[i].toString())) {

                newIncArray.push(inc1.number);

            }

        }

         object.incident = newIncArray.toString();

     
         for (var i = 0; i < ritmArr.length; i++) {

            var rq_itm = new GlideRecord('sc_req_item');

            if (rq_itm.get(ritmArr[i].toString())) {

                newritmArray.push(rq_itm.number);

            }

        }
        object.ritm = newritmArray.toString();
        return JSON.stringify(object);

    },

 

Client script :

function onSubmit() {

    //Type appropriate comment here, and begin script below

    var inc = g_form.getValue("incidents_submitted_by_itam");

    var rq_item = g_form.getValue("requests_submitted_by_itam");

    /*Inc & Ritm both*/

    var gaIncRitm = new GlideAjax("listCollectorWNClass");

    gaIncRitm.addParam("sysparm_name", "listCollectorIncRitmFunction");

    gaIncRitm.addParam("sysparm_ritmId", rq_item);

    gaIncRitm.addParam("sysparm_incId", inc);

    gaIncRitm.getXMLWait();

    /*Set values*/

    /*Put some alerts- info messages to check what you are receiving from script include*/

    g_form.addInfoMessage('Response=' + JSON.parse(gaIncRitm.getAnswer()));

    var answer = JSON.parse(gaIncRitm.getAnswer());

    var setValues = "Incident :" + answer.incident.toString() + '\n' + 'Ritms :' + answer.ritm.toString();

    g_form.setValue("work_notes", setValues);

}

 

This should work.

I'm able to get it in worknotes :

 

VishalBirajdar_0-1696248015487.png

 

 

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

View solution in original post

18 REPLIES 18

Hi @Community Alums 

 

Found it...!!!

In script include,

update below line  as toString() - parenthesis is missing 

 var changeArr = this.getParameter('sysparm_changeID').toString.split(',');

 

with this :

 var changeArr = this.getParameter('sysparm_changeID').toString().split(',');

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Community Alums
Not applicable

Hi @Vishal Birajdar 

Can you please try from your end, I am very much in need of this.

Regards

Suman P.

Community Alums
Not applicable

Thank you, I sent you linkedIn Connection request. You saved me.

Sure...!! & always welcome...!!!

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates