How to add active assignment groups in the Outlook recipient

Samiksha2
Mega Sage

Hi All,

I have a requirement to create a UI button (Send Emails) in the Requested Item table. On click of button, outlook will open.
Recipients would be- Active sctaks' assigned to and if assigned to is empty then the member of assignment group.

Here is my script, but it is setting undefined recipient.

 

function emailOutlook() {
    var ritmNumber = current.number;
    var recipients = [];

    // Query for tasks related to the RITM
    var taskGR = new GlideRecord('sc_task');
    taskGR.addQuery('request_item', ritmNumber);
    taskGR.addQuery('active', 'true');
    taskGR.query();

    while (taskGR.next()) {
        if (taskGR.assigned_to) {
            recipients.push(taskGR.assigned_to.email);
        } else if (taskGR.assignment_group) {
            var groupMembersGR = new GlideRecord('sys_user_grmember');
            groupMembersGR.addQuery('group', taskGR.assignment_group);
            groupMembersGR.query();
            while (groupMembersGR.next()) {
                recipients.push(groupMembersGR.user.email);
            }
        }
    }

    // Remove duplicate email addresses
    recipients = Array.from(new Set(recipients));
    var rec = recipients.join(',');

    window.open('mailto:' + rec + '?subject=testing&bodymessage%20goes%20here', 'email');
}

 

Please help in this.

 

Thanks,
Sam

 

 

1 ACCEPTED SOLUTION

@Samiksha2 

please use GlideAjax and get all the recipients and then use window.open

I hope you will be able to do this.

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

13 REPLIES 13

Ankur Bawiskar
Tera Patron
Tera Patron

@Samiksha2 

try this

function emailOutlook() {
    var ritmNumber = current.number;
    var recipients = [];

    // Query for tasks related to the RITM
    var taskGR = new GlideRecord('sc_task');
    taskGR.addQuery('request_item', ritmNumber);
    taskGR.addQuery('active', true);
    taskGR.query();

    while (taskGR.next()) {
        if (taskGR.assigned_to) {
            recipients.push(taskGR.assigned_to.email.toString());
        } else if (taskGR.assignment_group) {
            var groupMembersGR = new GlideRecord('sys_user_grmember');
            groupMembersGR.addQuery('group', taskGR.assignment_group);
            groupMembersGR.query();
            while (groupMembersGR.next()) {
                recipients.push(groupMembersGR.user.email.toString());
            }
        }
    }

	alert('recipients' + recipients.toString());
    // Remove duplicate email addresses

    window.open('mailto:' + recipients.toString() + '?subject=testing&bodymessage%20goes%20here', 'email');
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hi @Ankur Bawiskar ,
Click is not working now.

@Samiksha2 

can you try with only 1 recipient and see if it works?

did you check what's the browser console error when button is clicked?

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Yes with manual recipients it is working.