Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Show more results as Catalog Item Variable for specific group

AdamUMC
Tera Guru

Hi,

I have a catalog item variable that references "cmdb_ci_business_app".

Now, I want that variable to only show results that:
1. Are Active
2. Have the status "In Production"
3. Managed By Group, which must be one of the groups the person is a member of

If the person is a member of a specific group, say "SpecialGroup", then point 3 can be omitted.

How can I easily achieve this? I've tried several solutions, but nothing works.

Thanks!

4 REPLIES 4

Brad Bowman
Kilo Patron
Kilo Patron

You need to use an Advanced Reference Qualifier that calls a Script Include.  The SI will use GlideRecord to query the referenced table to return records that meet 1. and 2., then for each record that meets 3, push the sys_id to an array.  The return from the SI will be like 'sys_idIN' then the comma-separated joined array.  There are many examples of this.  Give it a shot and post your reference qualifier and script if you get stuck.

AdamUMC
Tera Guru

Thanks @Brad Bowman  ,

I have already tried this once, but unfortiunately it didn't work properly.
Will try agai and post here script include and advanced reference qual.

Ankur Bawiskar
Tera Patron
Tera Patron

@AdamUMC 

try this in advanced ref qualifier on that variable

-> ensure you replace your correct group name

-> ensure you replace : with : as there is a known issue when we reply in community it converts that character

javascript: var query = '';
if (gs.getUser().isMemberOf('SpecialGroup'))
    query = 'active=true^install_status=1';
else {
    var groupsArr = new global.ArrayUtil().convertArray(gs.getUser().getMyGroups());
    query = 'active=true^install_status=1^managed_by_group.sys_idIN' + groupsArr.toString();
}
query;

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Thanks @Ankur Bawiskar!
This works fantastic and is pretty simple!

Is it also possible to ignore the Parent groups of the groups that are set in the "managed_by_groups" of "cmdb_ci_business_app" items? Because now they are included in the overview of this variable.

People are often not directly members of the Parent groups, but indirectly through the Parent-Child relationship between them.

I only want results of which the people are actually directly members of the group(s). Thanks again!