If user is member of group need to trigger approval to the group member
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-12-2024 10:28 AM
Hello All,
Can anyone please help me how to acheive the below requirement.
I have one group name 'Change approval lead'. Based on the configuration item selected in change request the approval will get trigger,
I have another table name ' group configuration item relation'. In this table CI and its respective domains are stored.
I have created one action in flow designer.
var gr_cmdb = new GlideRecord('cmdb_group_contains_ci');
gr_cmdb.addEncodedQuery("group.group_nameSTARTSWITHChange Domain:^configuration_item=" + inputs.cmdb_ci.sys_id);
gr_cmdb.query();
var v_approver = '';
var approver_user = '';
var approver_group = '';
if (gr_cmdb.next()) {
if (gr_cmdb.group == "02a3266fdbea0510e9c292c4f3961915") {
v_approver = '2d94a2da1beca050d942744c8b4bcb85';
} else if (gr_cmdb.group == "71903aa7db2e0510e9c292c4f396197c") {
v_approver = '91ec04741b80d110d942744c8b4bcbab';
} else if (gr_cmdb.group == "21427a2bdb2e0510e9c292c4f396196b") {
v_approver = '1ff653d51b3630105320a9babb4bcbbd';
} else if (gr_cmdb.group == "6f66f66fdb2e0510e9c292c4f39619de") {
v_approver = '599462da1beca050d942744c8b4bcb80'; }
}
if (v_approver != '') {
outputs.approver_user = v_approver;
} else {
outputs.approver_group = "523a3d9adba2c95016fe8f67059619e4";
}
It is working fine. But now i need to update like below.
For example if gr_cmdb.group == "02a3266fdbea0510e9c292c4f3961915" and if 2d94a2da1beca050d942744c8b4bcb85 is member of 'change Approval lead' then approval will trigger to this user.
Can anyone please help me on this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-12-2024 11:55 AM - edited 10-12-2024 11:57 AM
Hi @pritimayee
You can use below logic
var grMember = new GlideRecord('sys_user_grmember'); // Table stores the mapping of user and group.
grMember.addQuery('user', inputs.change_approval_lead); // replace with actual field name of change approval lead
grMember.addQuery('group', '2d94a2da1beca050d942744c8b4bcb85'); // replace <sys_id_group> with actual sys_id of group.
grMember.query();
if (gr_cmdb.group == "02a3266fdbea0510e9c292c4f3961915" && grMember.hasNext()) {
v_approver = '599462da1beca050d942744c8b4bcb80';
}
Make sure you store the sys_id's in property and use them in your flow/action so that in future if approver changes or group changes then you can simply update the property value instead of updating the complete action/flow
Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2024 10:20 AM
Hello @Voona Rohila ,
Can you please help me with this.
As you have mentioned filed name of change approval lead means? Actually change approval lead is a group.
grMember.addQuery('user', inputs.change_approval_lead); // replace with actual field name of change approval lead
i need to first query the cmdb_group_contains_ci group from the configuration item selected. After checking this need to find out if the appover is member of the change approver lead group.If the approver is the member of the change approver lead group then spproval will get trigger to that user,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2024 12:27 AM
Hi @pritimayee
Try below logic :
var gr_cmdb = new GlideRecord('cmdb_group_contains_ci');
gr_cmdb.addEncodedQuery("group.group_nameSTARTSWITHChange Domain:^configuration_item=" + inputs.cmdb_ci.sys_id);
gr_cmdb.query();
var v_approver = '';
var approver_user = '';
var approver_group = '';
if (gr_cmdb.next()) {
if (gr_cmdb.group == "02a3266fdbea0510e9c292c4f3961915") {
//check if approver is member of group or not.
var grMember = new GlideRecord('sys_user_grmember'); // Table stores the mapping of user and group.
grMember.addQuery('user', '599462da1beca050d942744c8b4bcb80'); // replace <sys_id_group> with actual sys_id of group.
grMember.addQuery('group', '2d94a2da1beca050d942744c8b4bcb85'); // replace <sys_id_group> with actual sys_id of group.
grMember.query();
if (grMember.hasNext())
v_approver = '599462da1beca050d942744c8b4bcb80';
} else if (gr_cmdb.group == "71903aa7db2e0510e9c292c4f396197c") {
v_approver = '91ec04741b80d110d942744c8b4bcbab';
} else if (gr_cmdb.group == "21427a2bdb2e0510e9c292c4f396196b") {
v_approver = '1ff653d51b3630105320a9babb4bcbbd';
} else if (gr_cmdb.group == "6f66f66fdb2e0510e9c292c4f39619de") {
v_approver = '599462da1beca050d942744c8b4bcb80';
}
}
if (v_approver != '') {
outputs.approver_user = v_approver;
} else {
outputs.approver_group = "523a3d9adba2c95016fe8f67059619e4";
}
Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP