send email to group members when group manager is deactive

vivian08081
Giga Expert

Hi

I want to send out an email to notification all the members in the group when the group's manager is deactived.

I use client script to do the following action when the user record of the group manager is set to inactive.

1. set the group manager field to empty

2. delete the manager from the group member list

I want to greate an email, but which table should I use? Since I don't know how to set the value of who'll receive this email.

And could you also give some advice for create the event and business rule?

1 ACCEPTED SOLUTION

vivian08081
Giga Expert

Hi All


To solve this requirement, I add the group members to CC list and write the code into Email script.


Hope this could help you if you have the same requirement with me.


View solution in original post

11 REPLIES 11

Something like this should helps on After update BR on sys_user_group table with condition when manager is empty.



var gr = new GlideRecord('sys_user_grmember');


gr.addQuery('group', current.sys_id);


gr.query();


while(gr.next())


gs.eventQueue('Event Name', current, gr.user, gr.user.name);


Here's what I'm done on my instance.


1. client script


find_real_file.png


function onSubmit() {
var userName = g_form.getValue('user_name');
//var tempManager;
    if(isDeactived()){
      //tempManager = setTempManager();
      setTempManager();
    }


}
function isDeactived(){

var activeFlag = g_form.getValue('active');
if(activeFlag=="false"){
  alert('User has been deactived');
  return true;
}
return false;
}


function setTempManager(){
var userName = g_form.getValue('user_name');
var user_sys_id;
var groupName;
var manager_Temp;
var group_sys_id;
var count =0;


// get deactived user sys_id
var usert = new GlideRecord('sys_user');
usert.addQuery('user_name',userName);
usert.query();
while(usert.next()){
  user_sys_id = usert.getValue('sys_id');
}

var groupTbl = new GlideRecord('sys_user_group');
groupTbl.addQuery('manager',user_sys_id);
groupTbl.query();
while(groupTbl.next()){
  count++;
  groupName = groupTbl.getValue('name');
  group_sys_id = groupTbl.getValue('sys_id');

        var grmember = new GlideRecord('sys_user_grmember');
        grmember.addQuery('group',group_sys_id);
        grmember.addQuery('user',user_sys_id);
        grmember.query();
        while(grmember.next()){
          grmember.deleteRecord();
        }
       
      // var grmemberM = new GlideRecord('sys_user_grmember');
        //grmemberM.addQuery('group',group_sys_id);
        //grmemberM.query();
      // while(grmemberM.next()){
          //manager_Temp=grmemberM.getValue('user');
          //break;
        //}
        groupTbl.setValue('manager','');
 
        groupTbl.update();
      }
//return manager_Temp;
}




2. business rule:


find_real_file.png


find_real_file.png




3. event


find_real_file.png



4. email


find_real_file.png


When I deactive the user, it seems that business rule doesn't work.No email send out. Only client script worked.



Is there anything wrong?


In your business rule, use this condition



find_real_file.png


tried it. But still can't work.



Don't know why


Harsh Vardhan
Giga Patron

Hi Wei,



have you checked the group there is an option to send an email to all group members. if you will checked then it will send it to all group members?