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

Hi Ankur, the notification calling the script is based on sc_req_item table

Hi,

so are you saying variables within single row variable set are showing as undefined?

I hope the variable set is not Multi row variable set

which variable is working and which is not?

Regards
Ankur

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

s_bastientheure
Tera Contributor

this is a Single Row variable set

service catalog Article contains several variable sets, all single row type. One contains the date (v_change_date in the script) which works in the notifications

3 variable sets contains reference to sys_user table and these are shwoing undefined in the notification

 

here is the result of the script in the initial post

Bonjour,

undefinedundefinedLe changement de responsable de undefined de undefined vers undefined a été fait dans SX en date du 24-02-2022.

Hi,

irrespective of variable is within single row variable set or present individually this syntax should give the value

current.variables.variableName.getDisplayValue()

are you using correct variable name?

Regards
Ankur

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

s_bastientheure
Tera Contributor

I found the problem

Despite the notification is based on sc_req_item, I have to use this :

current.request_item.variables.variableName.getDisplayValue()

this is strange

I also noticed that at request item level the variables are all displayed and at task level the variable are partially displayed (and I updated the workflow available variables)

find_real_file.png

find_real_file.png