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

Get Display Value and in mail script

jimpaige
Giga Contributor

Hi all,

I'm using this mail script to capture variables for a catalog item to be sent in a notification:

printVars();

function printVars() {

      template.print('<b>Catering Request Details</b>\n');

      var cv = new GlideRecord('sc_item_option_mtom');

      cv.addQuery('request_item', current.sys_id);

      cv.addNotNullQuery('sc_item_option.value');

      cv.orderBy('sc_item_option.order');

      cv.addQuery('sc_item_option.value', '!=', '0');

      cv.addQuery('sc_item_option.value', '!=',"false");

      cv.query();

      while(cv.next()) {

          template.print('\n' + cv.sc_item_option.item_option_new.question_text + ':\t<b>' + cv.sc_item_option.value + '</b>');

      }

}

I have a few variables that are type Reference and for these the sys_id is returned.   I think need to include a getDisaplayValue condition in the script but not sure where to put, of if that is even the correct approach.   Any ideas anyone?

Thanks,

Jimmy

1 ACCEPTED SOLUTION

Here you go



template.print('<b>Catering Request Details</b>'+ "<br/>");


var set = new GlideappVariablePoolQuestionSet();


set.setRequestID(current.sys_id.toString());


set.load();


var vs = set.getFlatQuestions();


for (var i = 0; i < vs.size(); i++) {


      if (vs.get(i).getLabel() != '' && vs.get(i).getDisplayValue()!='' && vs.get(i).getDisplayValue()!='false') {


              template.print(' ' + vs.get(i).getLabel() + " = " + vs.get(i).getDisplayValue() + "<br/>");


      }


}


View solution in original post

8 REPLIES 8

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Jim,



Please refer below link and adjust your code. Let me know if you are blocked.


Showing Request Item / Catalog Variables in Mail Script


Hi Pradeep,



Not sure which part to adjust.


I also need each variable to print onto a new line in the email, at the moment everything is:



Catering Request Details Requestor: bebc31ea4f9016007c249dde0310c7c8 Requestor email:example@example.com Authorised By: bebc31ea4f9016007c249dde0310c7d8Authorised by email: email:example@example.com Contact Number: 123 Date Required:2016-07-19 Purpose: test Start Time: 9:00 AM End Time: 2:00 PM Region:2bd7bebf4f8092007c249dde0310c773 Location: d902eb6fdb4ca20095b9dd1dbf9619be Team:8d04eb23db8ca20095b9dd1dbf96198c Charge Code: af177767db8ca20095b9dd1dbf96193fPlease Specify: toasted_muesli Layout: original



Any ideas how to achieve this?


Here you go



template.print('<b>Catering Request Details</b>'+ "<br/>");


var set = new GlideappVariablePoolQuestionSet();


set.setRequestID(current.sys_id.toString());


set.load();


var vs = set.getFlatQuestions();


for (var i = 0; i < vs.size(); i++) {


      if (vs.get(i).getLabel() != '' && vs.get(i).getDisplayValue()!='' && vs.get(i).getDisplayValue()!='false') {


              template.print(' ' + vs.get(i).getLabel() + " = " + vs.get(i).getDisplayValue() + "<br/>");


      }


}