- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 09:40 PM - edited 01-21-2024 10:14 PM
Hi All,
I have the following script Include:
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 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("SI answer = "+answer);
gs.info("SI answer sys id = "+SYSIDlist[0] + "- CIlist"+CIlist[0] +"CIlist -" +CIlist[1] + " " +SYSIDlist[1]);
return answer;
//return answer;
},
gs.info("SI answer sys id = "+SYSIDlist[0] + "- CIlist"+CIlist[0] +"CIlist -" +CIlist[1] + " " +SYSIDlist[1]);
This info message returns answer like below:
SI answer sys id = 0ef85272db92fb00de9f1bbf29961968- CIlistProductionCIlist -Development f1df074a0f490700552ec4dce1050e48
I have called the script Include in a workflow as below
var si_ci_list = new CRFCheckDevProdCIenv_WF().getCI(current.variables.product.u_client_solution);
var env = si_ci_list;
gs.log("WF Non User CI ENv " + "si_ci_list " +si_ci_list);// this log returns answer as:
WF Non User CI ENv si_ci_list Production,Development
0ef85272db92fb00de9f1bbf29961968,f1df074a0f490700552ec4dce1050e48
However I want to differentiate the sys id meaning I want to separate the sys ids and values of Dev/ Prod and retrieve to use them for querying.
Can someone help
Thanks,
@Dr Atul G- LNG @Maik Skoddow @Anil Lande @Sainath N @Iraj Shaikh
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 09:55 PM
Hello @babarat1 ,
You can give a try to the script's below and let me know how it works for you.
Script Include:
var CRFCheckDevProdCIenv_WF = Class.create();
CRFCheckDevProdCIenv_WF.prototype = Object.extendsObject(AbstractAjaxProcessor, {
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 SYSIDlist = [];
while (grgetCI.next()) {
CIlist.push(grgetCI.used_for + "");
SYSIDlist.push(grgetCI.getUniqueValue());
}
var result = {
CIlist: CIlist,
SYSIDlist: SYSIDlist
};
return JSON.stringify(result);
},
type: 'CRFCheckDevProdCIenv_WF'
});
Workflow Script:
// In your workflow script
var si_ci_list = new CRFCheckDevProdCIenv_WF().getCI(current.variables.product.u_client_solution);
var answer = JSON.parse(si_ci_list);
var SYSIDlist = answer.SYSIDlist;
var CIlist = answer.CIlist;
// Now you can use SYSIDlist and CIlist as separate arrays
gs.log("WF Non Philip User CI ENv SYSIDlist: " + SYSIDlist);
gs.log("WF Non Philip User CI ENv CIlist: " + CIlist);
Let me know your views on this and Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Thanks,
Aniket
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 09:54 PM
the best way to pass multiple values from script include is using JSON structure.
logic is already shared by @Anil Lande
Please let us know if stuck using that
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2024 09:55 PM
Hello @babarat1 ,
You can give a try to the script's below and let me know how it works for you.
Script Include:
var CRFCheckDevProdCIenv_WF = Class.create();
CRFCheckDevProdCIenv_WF.prototype = Object.extendsObject(AbstractAjaxProcessor, {
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 SYSIDlist = [];
while (grgetCI.next()) {
CIlist.push(grgetCI.used_for + "");
SYSIDlist.push(grgetCI.getUniqueValue());
}
var result = {
CIlist: CIlist,
SYSIDlist: SYSIDlist
};
return JSON.stringify(result);
},
type: 'CRFCheckDevProdCIenv_WF'
});
Workflow Script:
// In your workflow script
var si_ci_list = new CRFCheckDevProdCIenv_WF().getCI(current.variables.product.u_client_solution);
var answer = JSON.parse(si_ci_list);
var SYSIDlist = answer.SYSIDlist;
var CIlist = answer.CIlist;
// Now you can use SYSIDlist and CIlist as separate arrays
gs.log("WF Non Philip User CI ENv SYSIDlist: " + SYSIDlist);
gs.log("WF Non Philip User CI ENv CIlist: " + CIlist);
Let me know your views on this and Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Thanks,
Aniket