- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-07-2024 02:01 AM
Hello every one,
i need to make a BR that is remove members in a group that i created called "IT URS".
It triggers when a field called 'managed_by' on the cmdb_ci_appl table is change and it is referance to the user table.
What the BR need to do is when the 'managed_by' field is change it takes the previous user and check if he managed another app from the cmdb_ci_appl table, if no he need to remove him from a group called IT URS.
thanks for the help
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-07-2024 03:17 AM
Hi @nadavt182355205 ,
Please write Business rule on cmdb_ci_appl table it will run after update
filter condition : manged_by changes
condition : current.managed_by != previous.managed_by
in script:
(function executeRule(current, previous /*null when async*/ ) {
var previousUser = previous.managed_by;
if (previousUser) {
var appCheck = new GlideRecord('cmdb_ci_appl');
appCheck.addQuery('managed_by', previousUser);
appCheck.addQuery('sys_id', '!=', current.sys_id); // Exclude the current record
appCheck.query();
if (!appCheck.hasNext()) {
var group = new GlideRecord('sys_user_grmember');
group.addQuery('group.name', 'IT URS');
group.addQuery('user', previousUser);
group.query();
if (group.next()) {
group.deleteRecord();
}
}
}
})(current, previous);
Please mark helpful & correct answer if it's really worthy for you.
Thanks,
BK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-07-2024 03:17 AM
Hi @nadavt182355205 ,
Please write Business rule on cmdb_ci_appl table it will run after update
filter condition : manged_by changes
condition : current.managed_by != previous.managed_by
in script:
(function executeRule(current, previous /*null when async*/ ) {
var previousUser = previous.managed_by;
if (previousUser) {
var appCheck = new GlideRecord('cmdb_ci_appl');
appCheck.addQuery('managed_by', previousUser);
appCheck.addQuery('sys_id', '!=', current.sys_id); // Exclude the current record
appCheck.query();
if (!appCheck.hasNext()) {
var group = new GlideRecord('sys_user_grmember');
group.addQuery('group.name', 'IT URS');
group.addQuery('user', previousUser);
group.query();
if (group.next()) {
group.deleteRecord();
}
}
}
})(current, previous);
Please mark helpful & correct answer if it's really worthy for you.
Thanks,
BK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-07-2024 04:05 AM
Hi @nadavt182355205 ,
you need to add table {cmdb_ci_appl} (or the appropriate table if it's customized).
When : After.
filter condition is select Field as managed_by and trigger when it Changed.
BR script:
var previousUser = previous.managed_by;
var appCheck = new GlideRecord('cmdb_ci_appl');
appCheck.addQuery('managed_by', previousUser);
appCheck.query();
if(!appCheck.hasNext()) {
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', 'IT URS');
groupGR.query();
if(groupGR.next()) {
var groupMember = new GlideRecord('sys_user_grmember');
groupMember.addQuery('group', groupGR.sys_id);
groupMember.addQuery('user', previousUser);
groupMember.query();
if(groupMember.next()) {
groupMember.deleteRecord();
}
}
}
Please mark helpful & correct answer if it's really worthy for you.