The CreatorCon Call for Content is officially open! Get started here.

How to display name instead of user ID for updated by in e-mail notifications

jas101
Tera Expert

Hi all,

 

Please see below for our 'Incident Escalated' e-mail, specifically the 'What will it contain' notification details:

 

* * *

<font face="Calibri">

 

The following incident has been set to escalated by ${sys_updated_by}:

 

Customer: ${caller_id}

Updated: ${sys_updated_on}

Priority: ${priority}

Assignment group: ${assignment_group}

Assigned to: ${assigned_to}

 

Click here to view the incident: ${URI_REF}

* * *

 

We just want to change this part: The following incident has been set to escalated by ${sys_updated_by}: so instead of showing the user ID of who last updated the record, it shows the name of who last updated it. We have tried dot walking using ${sys_updated_by.name}: but this is not working. I have since realised this is because it is not a reference field back to the sys_user table.

 

I understand this should be relatively simple so any assistance would be much appreciated.

 

Many thanks,

D

1 ACCEPTED SOLUTION

Hi dasi,



I put in my reply that the script would return the UserID.



It depends what you want to display. If you want the name, you need to do a little more scripting, and use the mail script as proposed by Sanjeev Kumar above, edited to suit your needs. I've added comments in Blue.



  1. <mail_script>  
  2. var userid = current.sys_updated_by;       // Gets the User ID
  3. var gr = new GlideRecord('sys_user');   // Creates new GlideRecord Object
  4.       gr.addQuery('user_name', userid);     // Queries the table for the record of our user found in line 2
  5.       gr.query();  
  6.       if (gr.next()) {                                                                       // If it finds one....
  7.           var userName = gr.name;                           // set the variable "username" as the users name.
  8.         }  
  9.  
  10. template.print("Updated By: "+userName);   // Print the text "Updated By:" and then the username variable from line 7.
  11. </mail_script>  


Best to remove the comments before adding to your email. This has been tested and works fine on my instance.


View solution in original post

27 REPLIES 27

Thanks Neil - so there is no way round having to script this solution then?


Workaround with a little bit of scripting..



Create a new field on the table u_updated_by_name. Make this field Text Type. Keep this Field Hidden.


Create a On-Before Update Business Rule that will set the value on this Field as the display name of the User:-



current.u_updated_by_name = current.sys_updated_by.getDisplayValue();



Now use the ${u_updated_by_name} in your Email Notification.



Thanks,


Subhajit


Thank-you Subhajit, I am trying your proposed solution now but the new field does not seem to be populating with a name as hoped (I have it visible on the incident form for testing). Any ideas?


@dasi: have you used current.update() so that it gets populated


You can use the same BR that Sanjeev provided over here.



Thanks,


Subhajit