I want to add assignment group members to attendee table
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @Purushotham9963 ,
Please use approach below and try.
- Create the Business Rule
- Table: CAB Agenda Item [cab_agenda_item]
- Advanced: Check this box.
- When: async
- Insert: Check this box.
- (Leave Update, Delete, and Query unchecked).
- script:
(function executeRule(current, previous /*, gs, script_include*/) {
// Get the sys_id of the CAB Meeting
var meetingSysId = current.getValue('cab_meeting');
// Get the sys_id of the Task (the Change Request) that was just added
var taskSysId = current.getValue('task');
var grTask = new GlideRecord('task');
if (!grTask.get(taskSysId)) {
return;
}
var assignmentGroupSysId = grTask.getValue('assignment_group');
if (gs.nil(assignmentGroupSysId)) {
return;
}
// Now, get all members of that Assignment Group
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('group', assignmentGroupSysId);
grMember.query();
while (grMember.next()) {
var userSysId = grMember.getValue('user');
// We must check if this user is already an attendee for this meeting
var grAttendeeCheck = new GlideRecord('cab_attendee');
grAttendeeCheck.addQuery('cab_meeting', meetingSysId);
grAttendeeCheck.addQuery('attendee', userSysId);
grAttendeeCheck.setLimit(1); // We only need to know if one exists (more efficient)
grAttendeeCheck.query();
if (!grAttendeeCheck.hasNext()) {
var grNewAttendee = new GlideRecord('cab_attendee');
grNewAttendee.initialize();
grNewAttendee.setValue('cab_meeting', meetingSysId);
grNewAttendee.setValue('attendee', userSysId);
grNewAttendee.insert();
}
}
})(current, previous);Regards,
Vishal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago
My BS is working fine as Asyc and insert with below script for adding members from assignment to attendees list
but if i remove assignment group , members should remove automatically(do not remove common members)
(function executeRule(current, previous /*null when async */) {
// Get the sys_id of the CAB Meeting
var meetingSysId = current.cab_meeting;
// Get the sys_id of the Task (the Change Request)
var taskSysId = current.task;
// Validate both values exist
if (!meetingSysId || !taskSysId) {
gs.info('CAB Auto Add: Missing cab_meeting or task reference');
return;
}
// Get the Task record
var grTask = new GlideRecord('task');
if (!grTask.get(taskSysId)) {
gs.info('CAB Auto Add: Could not find task record');
return;
}
// Get the Assignment Group from Task
var assignmentGroupSysId = grTask.getValue('assignment_group');
if (gs.nil(assignmentGroupSysId)) {
gs.info('CAB Auto Add: No assignment group on task');
return;
}
// Get all members of that Assignment Group
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('group', assignmentGroupSysId);
grMember.query();
while (grMember.next()) {
var userSysId = grMember.getValue('user');
// Check if this user is already an attendee for this meeting
var grAttendeeCheck = new GlideRecord('cab_attendee');
grAttendeeCheck.addQuery('cab_meeting', meetingSysId);
grAttendeeCheck.addQuery('attendee', userSysId);
grAttendeeCheck.setLimit(1);
grAttendeeCheck.query();
if (!grAttendeeCheck.hasNext()) {
// Add new attendee record
var grNewAttendee = new GlideRecord('cab_attendee');
grNewAttendee.initialize();
grNewAttendee.setValue('cab_meeting', meetingSysId);
grNewAttendee.setValue('attendee', userSysId);
grNewAttendee.insert();
gs.info('CAB Auto Add: Added user ' + userSysId + ' to CAB meeting ' + meetingSysId);
} else {
gs.info('CAB Auto Add: User ' + userSysId + ' already an attendee');
}
}
})(current, previous);
Thanks in advance
Thank in advance
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
@Vishal_Jaiswal
working fine , thank you
if i want remove the agenda item (change request) , attendees also needs to remove from list
Thank you in advance
