- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago - last edited 2 hours ago
Hi,
I have a scenario where i have two catalog variables, Servers and Applications. Servers is pointing to cmdb_ci_server, while applications pointing to the cmdb_ci_appl tables. Servers selection should autopopulate the Applications. it is autopopulating for 1 selection, but when i select multiple Servers, it is not working. Please make it as simple as possible. Kindly help.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var gr = new GlideAjax('cmdbServer');
gr.addParam('sysparm_name', 'cmdbFunction');
gr.addParam('sysparm_id', newValue);
gr.getXML(callBackFunction);
function callBackFunction(response){
var answer = response.responseXML.documentElement.getAttribute('answer');
g_form.setValue('application', answer);
}
}
var cmdbServer = Class.create();
cmdbServer.prototype = Object.extendsObject(AbstractAjaxProcessor, {
cmdbFunction: function() {
var abc = this.getParameter('sysparm_id');
var gr = new GlideRecord('cmdb_rel_ci');
gr.addQuery('parent', abc);
gr.addQuery('type.name', 'Runs on::Runs');
gr.query();
while(gr.next()){
return gr.child.name;
}
},
type: 'cmdbServer'
});
Regards
Suman P.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hope your variables are list collector. Modify your script include as below
var cmdbServer = Class.create();
cmdbServer.prototype = Object.extendsObject(AbstractAjaxProcessor, {
cmdbFunction: function() {
var abc = this.getParameter('sysparm_id');
var gr = new GlideRecord('cmdb_rel_ci');
gr.addQuery('parent.sys_id', 'IN', abc);
gr.addQuery('type.name', 'Runs on::Runs');
gr.query();
var returnArr = [];
while(gr.next()){
returnArr.push(gr.child.name.toString());
}
return returnArr.join(",");
},
type: 'cmdbServer'
});
Palani
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi,
I am still not getting the output as required.
Regards
Suman P.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
add alert message in the client script and see what data is coming in answer variable.
var gr = new GlideAjax('cmdbServer');
gr.addParam('sysparm_name', 'cmdbFunction');
gr.addParam('sysparm_id', newValue);
gr.getXML(callBackFunction);
function callBackFunction(response){
var answer = response.responseXML.documentElement.getAttribute('answer');
alert(answer);
g_form.setValue('application', answer.toString());
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Hi,
It shows only second one.
Regards
Suman P.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Can you try this:
var cmdbServer = Class.create();
cmdbServer.prototype = Object.extendsObject(AbstractAjaxProcessor, {
cmdbFunction: function() {
var abc = this.getParameter('sysparm_id');
var gr = new GlideRecord('cmdb_rel_ci');
gr.addQuery('parent.sys_id', 'IN', abc);
gr.addQuery('type.name', 'Runs on::Runs');
gr.query();
var returnArr = [];
while(gr.next()){
returnArr.push(gr.child.sys_id.toString());
}
return returnArr.join(",");
},
type: 'cmdbServer'
});
Palani
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Hi,
parent itself is a reference field in cmdb_rel_ci table right, why we need .sys_id again?
Regards
Suman P.