Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Unable to set multiple sysid values into list type field

Rakesh50
Mega Sage

Hi,

we have written a script include for returning multiple sys_id's. We want to set these Id's into list type field. If we getting single sys_id from script include we are able to set but if script include returning multiple sys_id's not setting values in list type field. Tried using answer.join(' , '); and without join(',') but not setting.

 

 exUsers: function() {
        var output = [];
        var exampleID= this.getParameter('sysparm_exampleID');
        var groupID = this.getParameter('sysparm_groupID');
	var ticketID = this.getParameter('sysparm_ticketID');	
        var qry = new GlideRecord('x_xxxx_string');
        qry.addQuery('example', exampleID);
        qry.addQuery('group', groupID);
	    qry.addQuery('type', ticketID);
        qry.query();
        while (qry.next()) {
           output.push(qry.getValue('user'));
        }
		gs.info("Output Value: " +output);
        return JSON.stringify(output);
    },

Client script :- 
var ga = new GlideAjax('FormUtils');
	ga.addParam('sysparm_name','exUsers');
	ga.addParam('sysparm_groupID',  group);
	ga.addParam('sysparm_exampleID',  example);
	ga.addParam('sysparm_ticketID',  ticketType);
	ga.getXML(populate);
	
	function populate(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	    alert(answer);
		g_form.setValue('watch_list', answer.join(','));
	}

 

1 ACCEPTED SOLUTION

exUsers: function() {
        var output = [];
        var exampleID= this.getParameter('sysparm_exampleID');
        var groupID = this.getParameter('sysparm_groupID');
	var ticketID = this.getParameter('sysparm_ticketID');	
        var qry = new GlideRecord('x_xxxx_string');
        qry.addQuery('example', exampleID);
        qry.addQuery('group', groupID);
	    qry.addQuery('type', ticketID);
        qry.query();
        while (qry.next()) {
       output.push(qry.getDisplayValue('user'));    
}
		gs.info("Output Value: " +output);
        return JSON.stringify(output);
    },

Client script :- 
var ga = new GlideAjax('FormUtils');
	ga.addParam('sysparm_name','exUsers');
	ga.addParam('sysparm_groupID',  group);
	ga.addParam('sysparm_exampleID',  example);
	ga.addParam('sysparm_ticketID',  ticketType);
	ga.getXML(populate);
	
	function populate(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	var data = JSON.parse(answer);
		g_form.setValue('watch_list', demo);
	}

View solution in original post

11 REPLIES 11

exUsers: function() {
        var output = [];
        var exampleID= this.getParameter('sysparm_exampleID');
        var groupID = this.getParameter('sysparm_groupID');
	var ticketID = this.getParameter('sysparm_ticketID');	
        var qry = new GlideRecord('x_xxxx_string');
        qry.addQuery('example', exampleID);
        qry.addQuery('group', groupID);
	    qry.addQuery('type', ticketID);
        qry.query();
        while (qry.next()) {
       output.push(qry.getDisplayValue('user'));    
}
		gs.info("Output Value: " +output);
        return JSON.stringify(output);
    },

Client script :- 
var ga = new GlideAjax('FormUtils');
	ga.addParam('sysparm_name','exUsers');
	ga.addParam('sysparm_groupID',  group);
	ga.addParam('sysparm_exampleID',  example);
	ga.addParam('sysparm_ticketID',  ticketType);
	ga.getXML(populate);
	
	function populate(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	    alert(answer);
		g_form.setValue('watch_list', answer);
	}

Hello Rakesh,

 

Refer above code and let me know, if your are causing same error.

 

Regards,

Vaishnavi LATHKAR

 

 

 

@Vaishnavi Lathk I have tried again with your suggestion and i'm getting like below

Rakesh50_0-1689063572224.png

 

exUsers: function() {
        var output = [];
        var exampleID= this.getParameter('sysparm_exampleID');
        var groupID = this.getParameter('sysparm_groupID');
	var ticketID = this.getParameter('sysparm_ticketID');	
        var qry = new GlideRecord('x_xxxx_string');
        qry.addQuery('example', exampleID);
        qry.addQuery('group', groupID);
	    qry.addQuery('type', ticketID);
        qry.query();
        while (qry.next()) {
       output.push(qry.getDisplayValue('user'));    
}
		gs.info("Output Value: " +output);
        return JSON.stringify(output);
    },

Client script :- 
var ga = new GlideAjax('FormUtils');
	ga.addParam('sysparm_name','exUsers');
	ga.addParam('sysparm_groupID',  group);
	ga.addParam('sysparm_exampleID',  example);
	ga.addParam('sysparm_ticketID',  ticketType);
	ga.getXML(populate);
	
	function populate(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	var data = JSON.parse(answer);
		g_form.setValue('watch_list', demo);
	}

do you want only sys_id's?

 

@Vaishnavi Lathk Instead of using getDisplayValue i have used getValue in script include and in client script 

used the JSON.parse now it is working fine