Display variables that are references in email notification

s_bastientheure
Tera Contributor

Hi,

I want to display variables content into a notification

Accessing variables doesn't work directly in notification HTML  so i've created an email script

I can display some variables (e.g. a date variable) but I can't get others like reference to sys_user table

I tried several methods but it always displays 'undefined'

All my variables are part of variable sets and I'm sure of the variable names
In the script below, only the current.variables.v_change_date.getDisplayValue() displays something right

(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */ event) {

template.print(current.variables.v_employee_name.first_name);

template.print(current.variables.v_employee_name.first_name.getDisplayValue());

var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id',current.variables.v_employee_name);
gr.query();
if (gr.next()){
template.print(gr.first_name);
template.print(gr.first_name.getDisplayValue());
}

template.print("Le changement de responsable de " + current.variables.v_employee_name.name.getDisplayValue() + " de " + current.variables.v_former_manager.name + " vers " + current.variables.v_new_manager.name + " a été fait dans SX en date du " + current.variables.v_change_date.getDisplayValue() + ".");

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

1 ACCEPTED SOLUTION

So here is the issue

your notification is on sc_req_item table but the object you are passing to eventQueue() is current which is sc_task table

Do this

gs.eventQueue('event_name', current.request_item.getRefRecord(), f_manager, n_manager);

Regards
Ankur

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

View solution in original post

15 REPLIES 15

s_bastientheure
Tera Contributor

Ankur, thanks for your help

there was 3 ways to solve

- change the business rule event creation as shown by Ankur

- change email script current.variables.<variable_name> by curent.variables.request_item.<variable_name>

- change business rule table from sc_task to sc_req_item as this is a single task workflow and task closure is equivalent to req closure