- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2019 06:08 AM
Hello everyone,
I am looking to have the assigned to field cleared out automatically if the assigned to user is removed from the group. What would be the best way to go about this please?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2019 09:19 AM
OK, let's take a step back for a moment and simplify things.
You want to remove the user from the "Assigned to" field on any active, Task-derived record when the user is removed from a group, correct? So we need to look at all Task records where "Active" is true, the "Assignment group" is the Group the User was just removed from and the "Assigned to" field is the removed user.
To do that, we want to create a new "Advanced", "After Delete" Business Rule on the Group Member table:
So this BR will only trigger whenever a User is removed from a Group.
Here's the code you can use in the Script field:
(function executeRule(current, previous /*null when async*/) {
var groupId = current.getValue("group");
var groupName = current.group.getDisplayValue();
var userId = current.getValue("user");
var userName = current.user.getDisplayValue();
//look for all Active Task records assigned to the Group AND User
var gr = new GlideRecord("task");
gr.addEncodedQuery("active=true^assignment_group=" + groupId + "^assigned_to=" + userId);
gr.query();
while (gr.next()) {
//add a work note to let people know why the field was cleared
gr.work_notes.setJournalEntry("Assigned to field cleared because '" + userName + "' was removed from the current Assignment group '" + groupName + "'");
gr.assigned_to = "";
gr.update();
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2019 06:43 PM
You are welcome. Glad it helped.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2019 02:25 PM
Tee Fortune,
I took a look at this and made a few small adjustments to work for RITMs and Tasks that are created from the initial Request. Below is the script that will remove the assigned to from the RITM and the Task with a nice note in the Activity record.
Hope this helps.
Maarshall
//Business Rule to remove assigned to from RITM & Task records when assigned to is removed from group assigned
(function executeRule(current, previous /*null when async*/) {
var groupId = current.getValue("group");
var groupName = current.group.getDisplayValue();
var userId = current.getValue("user");
var userName = current.user.getDisplayValue();
//look for all Active Task records assigned to the Group AND User
var gr = new GlideRecord("sc_task");
gr.addEncodedQuery("active=true^assignment_group=" + groupId + "^assigned_to=" + userId);
gr.query();
while (gr.next()) {
//add a work note to let people know why the field was cleared
gr.work_notes.setJournalEntry("Assigned to field cleared because '" + userName + "' was removed from the current Assignment group '" + groupName + "'");
gr.assigned_to = "";
gr.update();
}
var gr1 = new GlideRecord("sc_req_item");
gr1.addEncodedQuery("active=true^assignment_group=" + groupId + "^assigned_to=" + userId);
gr1.query();
while (gr1.next()) {
//add a work note to let people know why the field was cleared
gr1.work_notes.setJournalEntry("Assigned to field cleared because '" + userName + "' was removed from the current Assignment group '" + groupName + "'");
gr1.assigned_to = "";
gr1.update();
}
})(current, previous);