Query filter

nikhitha24
Tera Guru

Hi Team,

 

Can someone please help me on the below query.

 

  • Assignment group = PSOAu - FPCS - Control Systems Select
    • Filter: sys_class_name=cmdb_ci_win_server^ORsys_class_name=cmdb_ci_linux_server^install_status=1^manufacturerLIKEVMware^dns_domainINjbar.irnnew.bhpbilliton.net.au,mac.irnnew.bhpbilliton.net.au,mookaocrs.com,nhub.irnnew.bhpbilliton.net.au,npd.irnnew.bhpbilliton.net.au,ob24.irnnew.bhpbilliton.net.au,port.local,waio-opsnet.local,yandi.irnnew.bhpbilliton.net.au';
  • Assignment group CONTAINS Hosting AND Assignment group CONTAINS Hypervisor
    • Filter: sys_class_name=cmdb_ci_win_server^ORsys_class_name=cmdb_ci_linux_server^install_status=1^manufacturerLIKEVMware
  • Assignment group = Hosting - Tools & Auto - Automation - MinAu
    • Filter: sys_class_name=cmdb_ci_win_server^ORsys_class_name=cmdb_ci_linux_server^install_status=1^manufacturerLIKEVMware

Want to write a script for the conditions need to visible on the selected server variable it is reference table for the server class.

 

8 REPLIES 8

Hi @nikhitha24 

 

So you want to populate only those CIs in the Select Server CIs variable where the logged in user is part of the Assignment Group for that particular CI ?

 

Thanks & Regards

Amit Verma


Please mark this response as correct and helpful if it assisted you with your question.

Hi @Amit Verma 

 

yes your understanding is correct.

Hi @nikhitha24 

 

Please refer to the following background script and update your script include accordingly :

 

// Get All User Groups
var arr_util = new global.ArrayUtil();
var userGroups = arr_util.convertArray(gs.getUser().getMyGroups());
// Array to Collect User Managed by Group CIs Sys_id
var CIs = [];
// Make an instance of cmdb_ci_server Table
var gr = new GlideRecord('cmdb_ci_server');
// Iterate over the user Groups and fetch the CIs where current logged in user is part of the managed by group
for(var i=0 ; i < userGroups.length ; i++){
gr.addQuery('managed_by_group',userGroups[i]);
gr.query();
if(gr.next()){
CIs.push(gr.sys_id.toString());
}
}
gs.print(CIs);

 

Thanks & Regards

Amit Verma


Please mark this response as correct and helpful if it assisted you with your question.

Amit Verma
Kilo Patron
Kilo Patron

Hi @nikhitha24 

 

Found a really simple solution while exploring. You can make use of a Simple Reference Qualifier as shown in the snip below to achieve this :

 

AmitVerma_0-1704447583155.png

 

I have checked it on my instance and it is working as expected. Please test and let me know the results.

 

Thanks & Regards

Amit Verma


Please mark this response as correct and helpful if it assisted you with your question.