The CreatorCon Call for Content is officially open! Get started here.

Return sys id in array script include

DB1
Tera Contributor

Hello All,

 

I have the following Script Include where I need to return multiple sys ids in array.

Could you please help with how to achieve the same?

SI:

 

getCI: function(getAppname) {

		var grgetCI = new GlideRecord('cmdb_ci_service');
		grgetCI.addEncodedQuery('u_client_solution!=NULL');
		grgetCI.addQuery('u_client_solution',getAppname);			
		grgetCI.query();
		var CIlist = "";
		var myStr = "";
		var SYSIDlist = [];
		while(grgetCI.next()){	

			if(CIlist == ''){
				CIlist = grgetCI.used_for.toString();
				//myStr = grgetCI.name;
				SYSIDlist.push(grgetCI.sys_id.toString());
			}
			else
			{
				CIlist = CIlist + ", "+ grgetCI.used_for.toString();
				//myStr = myStr + ", " + grgetCI.name;
				SYSIDlist = SYSIDlist + ", " + grgetCI.sys_id.toString();
			}
		}
		var answer = CIlist + "\n" + SYSIDlist;		
		gs.log('SI answer = ' +  + "Sys ID 1 " +SYSIDlist[0] + "Sys ID 2 " +SYSIDlist[1]);
		//JSON.stringify(answer);
		return JSON.stringify(answer);	
		//return answer;

	},

TIA

@Dr Atul G- LNG @Ankur Bawiskar @Maik Skoddow @Anil Lande 

10 REPLIES 10

Saurabh Gupta
Kilo Patron

Hi @DB1 

 

Can you please try below code-

getCI: function(getAppname) {
    var grgetCI = new GlideRecord('cmdb_ci_service');
    grgetCI.addNotNullQuery('u_client_solution');
    grgetCI.addQuery('u_client_solution', getAppname);
    grgetCI.query();
    var CIlist = [];
    var SYSIDlist = [];
    while (grgetCI.next()) {
        CIlist.push(grgetCI.used_for + "");
        SYSIDlist.push(grgetCI.getUniqueValue());
    }
    gs.info('SI answer = ' + +"Sys ID 1 " + SYSIDlist[0] + "Sys ID 2 " + SYSIDlist[1]);
    var answer = CIlist.join(",") + "\n" + SYSIDlist.join(",");
    return answer;
},
C

If the provided solution meets your needs, kindly consider marking it as helpful and accepting it as the solution. This helps others who may have similar questions.


Thanks and Regards,

Saurabh Gupta

Hi,

Thanks for the reply. How about the else part

 

else
			{
				CIlist = CIlist + ", "+ grgetCI.used_for.toString();
				//myStr = myStr + ", " + grgetCI.name;
				SYSIDlist = SYSIDlist + ", " + grgetCI.sys_id.toString();
			}

Hi @DB1 

Else part is not needed.


Thanks and Regards,

Saurabh Gupta

var CRFCheckDevProdCIenv_WF = Class.create();
CRFCheckDevProdCIenv_WF.prototype = Object.extendsObject(AbstractAjaxProcessor, {
 
getCI: function(getAppname) {
var grgetCI = new GlideRecord('cmdb_ci_service');
grgetCI.addNotNullQuery('u_client_solution');
grgetCI.addQuery('u_client_solution', getAppname);
grgetCI.query();
var CIlist = [];
var SYSIDlist = [];
while (grgetCI.next()) {
CIlist.push(grgetCI.used_for + "");
SYSIDlist.push(grgetCI.getUniqueValue());
}
//gs.info('SI answer = ' + +"Sys ID 1 " + SYSIDlist[0] + "Sys ID 2 " + SYSIDlist[1]);
var answer = CIlist.join(",") + "\n" + SYSIDlist.join(",");
gs.info(answer);
return answer;
},
 
type: 'CRFCheckDevProdCIenv_WF'
});
 
Still returns undefined only