Add Advanced reference qualifier using script include
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-27-2023 06:15 AM
Hello all,
I have a custom table - u_m2m_sys_user_cmdb_ci_service with 3 fields - User(sys_user), CI 1(u_cmdb_ci_service) and CI 2 (u_dev_prod_ci_secondary)
I need to create a variable on a catalog item to reference this table. However I need to query the table based on the logged in user and get to display the list of Application Names (a field on CI 1) to show up the value from 1 particular field from CI 1 (u_cmdb_ci_service.u_application_name)
I need help to achieve the same.
Below is the Script Include I am trying to build.
I tried from background and it returns expected result. How do I use it on Script Include?
var usersCmdbCIList = [];
var grUserCmdbCI= new GlideRecord('u_m2m_sys_user_cmdb_ci_service');
grUserCmdbCI.addQuery('sys_user','8d9b33fa4718919075211711e36d43c3'); // this should have current logged in user name
grUserCmdbCI.query();
while(grUserCmdbCI.next()) {
//usersCmdbCIList.push(grUserCmdbCI.getUniqueValue());
//var userCI = usersCmdbCIList.push(grUserCmdbCI.getDisplayValue('u_cmdb_ci_service.u_application_name'));
gs.print(grUserCmdbCI.getDisplayValue('u_cmdb_ci_service.u_application_name'));
//Your not pushing it so it will only take the last of the query
//var list = gruser_list.getDisplayValue('u_cmdb_ci_service.u_application_name');
}
@Peter Bodelier @Sandeep Rajput @Ankur Bawiskar @Anand Kumar P

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-27-2023 06:34 AM
Hi,
If you want to use this script include as an advanced reference qualifier for a variable,
then you will need to return something that can be used as a encoded query on the table.
In this case I would suggest something like this:
var usersCmdbCIList = [];
var grUserCmdbCI= new GlideRecord('u_m2m_sys_user_cmdb_ci_service');
grUserCmdbCI.addQuery('sys_user', gs.getUserID());
grUserCmdbCI.query();
while(grUserCmdbCI.next()) {
usersCmdbCIList.push(grUserCmdbCI.getUniqueValue());
}
return 'sys_idIN' + usersCmdbCIList.join(',');
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-27-2023 11:33 AM - edited 10-27-2023 11:37 AM
Hi @babarat1,
You can use below script to call in script include.
initialize: function() {},
getApplicationNamesForCurrentUser: function() {
var userCmdbCIList = [];
var grUserCmdbCI = new GlideRecord('u_m2m_sys_user_cmdb_ci_service');
grUserCmdbCI.addQuery('sys_user', gs.getUserID());
grUserCmdbCI.query();
while (grUserCmdbCI.next()) {
userCmdbCIList.push(grUserCmdbCI.u_cmdb_ci_service.u_application_name);
}
return userCmdbCIList;
},
Thanks,
Anand