Return sys id in array script include
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 07:20 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 08:25 AM
Hi @DB1
It is working fine in my PDI.
Can you please check if log prints within while meaning if condition is returning some objects.
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()) {
gs.info("I am inside while");
CIlist.push(grgetCI.used_for + "");
SYSIDlist.push(grgetCI.getUniqueValue());
}
if(SYSIDlist.length>0)
gs.info('SI answer = ' +"Sys ID 1 " + SYSIDlist[0] + "Sys ID 2 " + SYSIDlist[1]+" length of the array: "+SYSIDlist.length);
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 08:57 AM
Hi @DB1
| 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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 07:46 AM - edited 01-21-2024 07:49 AM
// SYSIDlist = SYSIDlist + ", " + grgetCI.sys_id.toString();
SYSIDlist.push(grgetCI.sys_id.toString());
you need the above in the "else" part. If you don't want to use Saurabh's version.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 07:53 AM
Still undefined while I try to print the log
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.getUniqueValue());
}
else
{
CIlist = CIlist + ", "+ grgetCI.used_for.toString();
//myStr = myStr + ", " + grgetCI.name;
//SYSIDlist = SYSIDlist + ", " + grgetCI.sys_id.toString();
SYSIDlist.push(grgetCI.sys_id.toString());
}
}
var answer = CIlist + "\n" + SYSIDlist.join(",");
gs.log('SI answer ='+ CIlist +SYSIDlist + "Sys ID 1 " +SYSIDlist[0] + "Sys ID 2 " +SYSIDlist[1]);
//JSON.stringify(answer);
return JSON.stringify(answer);
//return answer;
},sysIDlist[0] or [1] returns undefined
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 08:07 AM
Hi @DB1,
Use below script by using json stringify
gs.log('SI answer = ' + CIlist + JSON.stringify(SYSIDlist) + " Sys ID 1 " + SYSIDlist[0] + " Sys ID 2 " + SYSIDlist[1]);
Mark it as helpful and solution proposed if it serves your purpose.
Thanks,
Anand
