Email functionality from SCTASK hide under conditions

MalikB
Tera Contributor

Enable the email functionality from SCTASKs

This feature is available on the SCTASK if:

The SCTASK is not in a final status (completed or canceled). It must be in the open, in progress, or pending status.
The logged-in operator must be a member of the SCTASK assignment group.

This principle is already in place on RITM and INC, and should be maintained:
The email is sent to the recipients from ServiceNow (the sender is the ServiceNow mailbox).
The name of the operator sending the email is clearly recorded in the activities.
Sent and received emails must appear in the activities (in work notes) - with a timestamp.
The reply email must be considered an additional comment if it comes from the requester or the recipient.

what is done in Client script : 

function onLoad() {

    if (g_form.getValue('state') == 5 ) { // 5 : canceled 
		//alert( "not active ");
       $('email_client_open').hide();
    } else {
       /* var ga = new GlideAjax("XXX_Client_email");
        ga.addParam("sysparm_name", "memberOfAssignmentGroupItem");
        ga.addParam("sysparm_itemId", g_form.getValue("number"));
        ga.getXML(getResponse);*/
		
    }
}

function getResponse(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    if (answer == 'false') {
        $('email_client_open').hide();
    }
    if ((answer == 'true') && g_form.getValue('state') > 2) {
        $('email_client_open').hide();
    }
}

 

in Script Include : 

var XXX_Client_email = Class.create();
XXX_Client_email.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getOpenedByEmail: function(user) {
        var gro = new GlideRecord('sys_user');
        gro.addQuery('sys_id', user);
        gro.query();
        if (gro.next()) {
            return gro.email;
        }
    },

    getRequestedForEmail: function(requestedFor) {
        var grr = new GlideRecord('sys_user');
        grr.addQuery('sys_id', requestedFor);
        grr.query();
        if (grr.next()) {
            return grr.email;
        }
    },

    memberOfAssignmentGroupIncident: function() {
        var incidentId = this.getParameter('sysparm_incidentId');
        var gri = new GlideRecord("incident");
        gri.addQuery("number", incidentId);
        gri.query();
        if (gri.next()) {

            var query = 'user=' + gs.getUserID() + '^group=' + gri.assignment_group.sys_id.toString();

            var count = new GlideAggregate('sys_user_grmember');
            count.addEncodedQuery(query);
            count.addAggregate('COUNT');
            count.query();
            var countMember = 0;
            if (count.next()) {
                countMember = count.getAggregate('COUNT');
            }
            if (countMember > 0) {
                return true;
            } else {
                return false;
            }
        }
    },

    memberOfAssignmentGroupItem: function() {
        var itemId = this.getParameter('sysparm_itemId');
        var gri = new GlideRecord("sc_req_item");
        gri.addQuery("number", itemId);
        gri.query();
        if (gri.next()) {
            var query = 'user=' + gs.getUserID() + '^group=' + gri.assignment_group.sys_id.toString();

            var count = new GlideAggregate('sys_user_grmember');
            count.addEncodedQuery(query);
            count.addAggregate('COUNT');
            count.query();
            var countMember = 0;
            if (count.next()) {
                countMember = count.getAggregate('COUNT');
            }
            if (countMember > 0) {
                return true;
            } else {
                return false;
            }
        }
    },

	memberOfScTaskAssignmentGroup: function() {
		var taskSysId = this.getParameter('sysparam_task_sys_id');
		if(!taskSysId) return false;

		var task = new GlideRecord('sc_task');
		if(task.get(taskSysId) && task.assignment_group){
			return gs.getUser().isMemberOf(String(task.assignment_group));
		}
		return false;
	},
    type: 'XXX_Client_email'
});

Capture d’écran 2025-05-15 à 10.46.49.png

0 REPLIES 0