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

Munender Singh
Mega Sage

Hello,

 

Please replace the following lines:

while (qry.next()) {
output.push(qry.getValue('user'));
}

with:

while (qry.next()) {
output.push(qry.getValue('user').toString());
}

 

Regards,

Munender

@Munender Singh if i'm using toString() i'm getting null value in alert. Not working!!

Sandeep Rajput
Tera Patron
Tera Patron

@Rakesh50 

 

Since you already have stringified the object in the script include, you do not have to join the answer variable again in the client script.

Try the following code and see if this works.

 

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

 

 

@Sandeep Rajput Getting this sys_id's and directly setting into list field

Rakesh50_0-1689062734606.png