Check group type of a group

hugogomes
Giga Expert

Hi everyone,

I'm developing a catalog item, to create and modify groups.

My issue is to add or check the group type (incident, request, change, problem)

Is there a way to check, through client script if a certain group contains group types? Also, I will need to add the group type, in a workflow run script.

I tried to do something like this:

var gr = new GlideRecord('sys_user_group');

gr.addQuery('name',id);

gr.Quey();

while(gr.next()){

if (gr.type == 'Incident'){

g_form.setValue('incident_process',true);

}

}

I'm kind of confused with this.

Any help?

Thank you

1 ACCEPTED SOLUTION

vinothkumar
Tera Guru

Hi Hugo,



Instead of incident, you have to pass the sys_id, since it is a glide list, it will contains the sys_id rather than display value.



var gr = new GlideRecord('sys_user_group');  


gr.addQuery('name',id);  


gr.Quey();  


while(gr.next()){  


if (gr.type == 'sys_id'){     //Pass the sys_id of the record referred here[sys_user_group_type] .


g_form.setValue('incident_process',true);  


}  


}  


View solution in original post

11 REPLIES 11

What does the field - "id" refer??


  1. gr.addQuery('name',id);  

Hi,



group.type will return sys_id as this is a GlideList field. Use below script



  1. var gr = new GlideRecord('sys_user_group');  
  2. gr.addQuery('name',id);  
  3. gr.addQuery('group.type',,'sys_id of Incident group type');  
  4. gr.query();  
  5. if(gr.next()){  
  6. g_form.setValue('description', 'Contains incident');  
  7. }

saprem_d
Giga Guru

Hi,



Following can be groups types in SNOW based on my implementation experiences as ServiceNow does not provide a floating license like remedy does



- Incident Management


- Change Management


- Problem Management


- Knowledge Management


- HR Group


- Scrum Team


- Approval Groups


- Integration Groups



Group type is OOB glide list field referring to sys_user_group_type table and this means you can have multiple values in the type field.



a Sample script to query a group in a workflow attached on incident table is below



var grpType = current.assignment_group.type



if(grpType == 'sys_id') // glideList always return sys_id


vinothkumar
Tera Guru

Hi Hugo,



Instead of incident, you have to pass the sys_id, since it is a glide list, it will contains the sys_id rather than display value.



var gr = new GlideRecord('sys_user_group');  


gr.addQuery('name',id);  


gr.Quey();  


while(gr.next()){  


if (gr.type == 'sys_id'){     //Pass the sys_id of the record referred here[sys_user_group_type] .


g_form.setValue('incident_process',true);  


}  


}  


rambabuboyapati
Kilo Guru

As Grorup Type is a Reference field, it holds a sys_ids. You need to amend your initial script as below.



  1. if (gr.type == 'Incident'){  

to


  1. if (gr.type.getDisplayValue() == 'Incident'){  


Hope this helps.