The CreatorCon Call for Content is officially open! Get started here.

Need to send notification after user got removed from assignment group using schedule job

Parul Sahu
Tera Contributor

Hi All, 

 

I have a requirement to Delete Users from Assignment Group. Deleted user data need to be attached in form of excel in Record. Also to send out notification to all the users who were removed from groups.

 

I am facing issue on how to use event Queue after delete of Record . I have tried this script below `but Event Queue is not working 

 @Ankur Bawiskar  can you help me please on this

var Headers = ["Group", "User ID", "Full Name", "Email Address", "Access revoked on", "Reason for revocation", "Successful or Not?(Y/N)"];
var fileName = 'revocation.csv';
var csvData = ''; //The variable csvData will contain a string which is used to build the CSV file contents
for (var i = 0; i < Headers.length; i++) { //Build the Headers
    csvData = csvData + '"' + Headers[i] + '"' + ',';
}
csvData = csvData + "\r\n";

var group_member = [];
var group_member_error = [];


// Querying Movers Records from Group Member Table
var grGrpMember = new GlideRecord('sys_user_grmember');

grGrpMember.addEncodedQuery('user.active=true^user.department.u_functional_department_code_id!=F008^user.user_name=Test_SNGroup_5^ORuser.user_name=SARAPNA1^group.u_nvs_tenant=2e6a3e3e4f2bfe803fb88e401310c76c^group.type!=15573f074faa36c417ff260f0310c727,7e741272efe2010047920fa3f8225643^ORgroup.type=NULL^group.type!=7e741272efe2010047920fa3f8225643,15573f074faa36c417ff260f0310c727^ORgroup.type=NULL^group.type=7e741272efe2010047920fa3f8225643,db55642a4f56db8400628e401310c77d^ORgroup.type=7e741272efe2010047920fa3f8225643');
grGrpMember.setLimit(3);
grGrpMember.query();
while (grGrpMember.next()) {

    grGrpMember.deleteRecord();

    var result1 = grGrpMember.deleteRecord();

    if (result1 == true) {



        var group_member_text = grGrpMember.group.getDisplayValue() + "," + grGrpMember.user.user_name + "," + grGrpMember.user.getDisplayValue() + "," + grGrpMember.user.email + "," + grGrpMember.sys_updated_on + "," + 'Movers' + "," + 'Yes';
        group_member_text.split(',');
        group_member.push(group_member_text.split(','));


    } else {

        var group_member_text_error = grGrpMember.group.getDisplayValue() + "," + grGrpMember.user.user_name + "," + grGrpMember.user.getDisplayValue() + "," + grGrpMember.user.email + "," + grGrpMember.sys_updated_on + "," + 'Non P&O' + "," + 'No';
        group_member.push(group_member_text_error.split(','));

    }


}

// Querying Leavers Records
var grGrpMember1 = new GlideRecord('sys_user_grmember');

grGrpMember1.addEncodedQuery('user.active=false^user.department.u_functional_department_code_id=F008^user.user_name=Test_SNGroup_1^group.u_nvs_tenant=2e6a3e3e4f2bfe803fb88e401310c76c^group.type!=15573f074faa36c417ff260f0310c727,7e741272efe2010047920fa3f8225643^ORgroup.type=NULL^group.type!=7e741272efe2010047920fa3f8225643,15573f074faa36c417ff260f0310c727^ORgroup.type=NULL^group.type=7e741272efe2010047920fa3f8225643,db55642a4f56db8400628e401310c77d^ORgroup.type=7e741272efe2010047920fa3f8225643'); // FOR LEAVERS
grGrpMember1.query();
while (grGrpMember1.next()) {

    var result = grGrpMember1.deleteRecord();
    if (result == true) {
        var group_member_text1 = grGrpMember1.group.getDisplayValue() + "," + grGrpMember1.user.user_name + "," + grGrpMember1.user.getDisplayValue() + "," + grGrpMember1.user.email + "," + grGrpMember1.sys_updated_on + "," + 'Inactive' + "," + 'Yes';
        group_member.push(group_member_text1.split(','));

    } else {

        var group_member_text_error1 = grGrpMember1.group.getDisplayValue() + "," + grGrpMember1.user.user_name + "," + grGrpMember1.user.getDisplayValue() + "," + grGrpMember1.user.email + "," + grGrpMember1.sys_updated_on + "," + 'Inactive' + "," + 'No';
        group_member.push(group_member_text_error1.split(','));

    }

}

var user_alreadytraverse = "";

for (var k = 0; k < group_member.length; k++) {
    for (var m = 0; m < group_member[k].length; m++) {

        if (m == (group_member[k].length - 1)) csvData = csvData + '"' + group_member[k][m].toString() + '"';
        else csvData = csvData + '"' + group_member[k][m].toString() + '"' + ',';

        if (user_alreadytraverse.indexOf(group_member[k][3]) == -1 && m == 3) {
            if (user_alreadytraverse == "") {
                user_alreadytraverse = group_member[k][3];
            } else {
                user_alreadytraverse = user_alreadytraverse + "," + group_member[k][3];
            }
        }
    }
    csvData = csvData + "\r\n";
}


var userList_array = user_alreadytraverse.split(",");

for (var p = 0; p < userList_array.length; p++) {
    var user_group_Array = "";
    for (var q = 0; q < group_member.length; q++) {
        if (userList_array[p] == group_member[q][3]) {
            if (user_group_Array == "") {
                user_group_Array = group_member[q][0];
            } else {
                user_group_Array = user_group_Array + "," + group_member[q][0];
            }
        }
    }

    gs.eventQueue('sn_hr_core.notify_movers', null, userList_array[p], user_group_Array);

}


//}

//Attach the file to a record.
var grRec = new GlideRecord("sn_hr_core_case");
grRec.initialize();
grRec.short_description = 'revocation';
grRec.description = 'test';
grRec.hr_service = '781682191bcc3094db3aa9b9ab4bcbe7';
grRec.contact_type = 'test';
grRec.opened_for.setDisplayValue('Guest');
grRec.insert();
var grAttachment = new GlideSysAttachment();
grAttachment.write(grRec, fileName, 'application/csv', csvData);

ame, 'application/csv', csvData);

1 REPLY 1

Ankur Bawiskar
Tera Patron
Tera Patron

@Parul Sahu 

try to write the code in before delete BR

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader