Email script

Sironi
Kilo Sage

Hi,

someone help on incident script,

send  incident details list to assigned to if incident state is OnHold on single notification .

ex: DavidLoo hasbeen assigned to 10-incidents , in 10-incidents there are 7 incidents have state -onhold. so DavidLoo should receive 7-incident details (number, shortdescription, caller , priority)  in a single email.

i tried with below script, it is getting single incident details, how to get all in single email.

template.print("number :"+"${number}\n");

template.print("number :"+"${priority}\n");

template.print("number :"+"${caler_id}\n");

template.print("number :"+"${short_description}\n");

 

1 ACCEPTED SOLUTION

Hi,

I just updated the job code

It triggered 3 emails to 3 different users

Email triggered to David Loo has incident info Assigned to David Loo

Email triggered to Rosie Mathews has incident info Assigned to Rosie Mathews

Email triggered to Fred Luddy has incident info Assigned to Fred Luddy

Now the only thing you need to check is why it didn't send email to other 6 users

Updated Job Code:

sendEmail();

function sendEmail() {

	var gr = new GlideAggregate("incident");
	gr.addAggregate("COUNT");
	gr.addEncodedQuery('active=true^assigned_toISNOTEMPTY');
	gr.groupBy("assigned_to");
	gr.query();
	while(gr.next()) {
		var user = gr.assigned_to;
		var incRec = new GlideRecord('incident');
		incRec.get('assigned_to', user);
		gs.eventQueue('test_list', incRec, incRec.assigned_to, incRec.assigned_to);
	}
}

Regards
Ankur

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

View solution in original post

46 REPLIES 46

Sudhanshu Talw1
Tera Guru

 

 

 

Assuming that current contains all the incidents:

while(current.next()){

if(current.state =="Code"){

template.print("number :"+current.number);

template.print("Priorty :"+current.priorty);

template.print("CALLER ID :"+current.caller_id);

template.print("short desc:"+${short_description}");

template.print("\n");

}

}

Hope it works

 

Thanks 

Sudhanshu

i used below, but notworking

(function runMailScript(current, template, email, email_action, event) {

// Add your code here

template.print("<table width=70% border=1><tr bgcolor=#e2e0de><td>Number</td><td>Priority</td><td>Caller ID</td><td>Short Desc</td></tr>");

var inc = new GlideRecord('incident');
inc.addQuery('assigned_to', current.assigned_to);
inc.query();
while (inc.next()) {
while (current.next()) {
if (current.state == "Code") {
template.print("number :" + current.number);
template.print("Priorty :" + current.priorty);
template.print("CALLER ID :" + current.caller_id);
template.print("\n");

}

}
}

template.print('</table>');

})(current, template, email, email_action, event);

Jaspal Singh
Mega Patron
Mega Patron

Hi,

 

You can try using below mailscript.

(function runMailScript(current, template, email, email_action, event) {

    // Add your code here
    var getrec = new GlideRecord('incident');
    getrec.addQuery('assigned_to', current.assigned_to);
	getrec.addQuery('state','5');//replace 5 with correct on-hold state value
    getrec.query();
    while (getrec.next()) {
        template.print("Number: " + current.number + "\n");
        template.print("Priority: " + current.priority + "\n");
        template.print("Caller ID: " + current.caller_id + "\n");
        template.print("Short Desc: " + current.short_description + "\n");
        template.print('-----------------------');
    }

})(current, template, email, email_action, event);

 

Call the mail script in the notification body in form ${mail_script:abcdef}

Replace abcdef with mail script name.

hi jaspal,

result is something like below.

find_real_file.png