How to push multiple sys_id's with comma separated

ServiceNow Use6
Tera Guru

Hi,

How to convert the following script to reflect it for multiple values. The following script works only for single value. Kindly help.

var answer ={};
		pcQuery.addQuery('assigned_to', userID);
		pcQuery.query();
		if (pcQuery.hasNext()) {
			pcQuery.next();
			answer.serial_number = pcQuery.serial_number.toString();
			answer.model_id = pcQuery.model_id.getDisplayValue().toString();

			return new JSON().encode(answer);
		}

Regards

Suman P.

4 REPLIES 4

Aman Kumar S
Kilo Patron

Try this:

var answer =[];
pcQuery.addQuery('assigned_to', userID);
pcQuery.query();
while (pcQuery.hasNext()) {//for multiple values
    pcQuery.next();
    var keyValue = {};
    keyValue.serial_number = pcQuery.serial_number.toString();
    keyValue.model_id = pcQuery.model_id.getDisplayValue().toString();
    answer.push(keyValue);
}
return new JSON().encode(answer);
		
Best Regards
Aman Kumar

Mahesh23
Mega Sage

Hi,

Try below code

as you are using the if(pcQuery.hasNext()) it will return only one record use "while" instead of "if" it will return multiple record

var answer = {};
var pcQuery = new GlideRecord('table_name');
pcQuery.addQuery('assigned_to', userID);
pcQuery.query();
while (pcQuery.hasNext()) {
    answer.serial_number = pcQuery.serial_number.toString();
    answer.model_id = pcQuery.model_id.getDisplayValue().toString();
}
return JSON.stringify(answer);

 

OR 

var answer =[];
var pcQuery = new GlideRecord('table_name');
pcQuery.addQuery('assigned_to', userID);
pcQuery.query();
while (pcQuery.hasNext()) {
    var obj= {};
    obj.serial_number = pcQuery.serial_number.toString();
    obj.model_id = pcQuery.model_id.getDisplayValue().toString();
    answer.push(obj);
}
return JSON.stringify(answer);




Hi,

If your issue has been resolved mark the response as mark as correct answer and close the thread 

Thanks

Cris P
Tera Guru

Hi there, try creating the object within the while loop, something like this:

 

pcQuery.addQuery('assigned_to', userID);
pcQuery.query();
var arr = [];
while (pcQuery.next()) {
	var answer = {};
	answer.serial_number = pcQuery.serial_number.toString();
	answer.model_id = pcQuery.model_id.getDisplayValue().toString();
        arr.push(answer);
}
return new JSON().encode(arr); //will be an array of objects