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

How do I get the correct currency to display in approval notifications?

chrisdamico
Kilo Explorer

The issue is the emails are not showing the correct currency.   How do I update the notification and script to ensure the correct currency is displayed for the approver?

The request.itil.approve.role email template has the following:

Short Description: ${sysapproval.short_description}

Priority: ${sysapproval.priority}

Requested For: ${sysapproval.requested_for}

Requested By: ${sysapproval.opened_by}

Total Price: ${sysapproval.price}

${mail_script:request.itil.approve.role_script_1}

Comments:

${sysapproval.description}


${mailto:mailto.approval} via e-mail


${mailto:mailto.rejection} via e-mail


Click here to view Approval Request in ServiceNow: ${URI}

The mail script contains the following code:

template.print("Summary of requested items:\n");  
var item = new GlideRecord("sc_req_item");
item.addQuery("request", current.sysapproval);
item.query();

while(item.next()) {
     
  template.print(item.number + ":   " + item.quantity + " X " + item.cat_item.getDisplayValue() + " at " + item.cat_item.price.getDisplayValue() + " each \n");
 
    template.print("       Options:\n");
  var keys = new Array();
  var set = new GlideappVariablePoolQuestionSet();
  set.setRequestID(item.sys_id);
  set.load();
  var vs = set.getFlatQuestions();
  for (var i=0; i < vs.size(); i++) {
    if(vs.get(i).getLabel() != '') {
      template.space(4);
      template.print('         ' +   vs.get(i).getLabel() + " = " + vs.get(i).getDisplayValue() + "\n");  
    }
  }
}

Thanks!

1 ACCEPTED SOLUTION

Abhinay Erra
Giga Sage

Oops I am sorry, this should go in a mail script. Use this


<mail_script>


template.print(current.sysapproval.price.getCurrencyDisplayValue());


</mail_script>


View solution in original post

12 REPLIES 12

Abhinay Erra
Giga Sage

Here you go



template.print("Summary of requested items:\n");  
var item = new GlideRecord("sc_req_item");
item.addQuery("request", current.sysapproval);
item.query();


while(item.next()) {
     
  template.print(item.number + ":   " + item.quantity + " X " + item.cat_item.getDisplayValue() + " at " +item.cat_item.price.getCurrencyDisplayValue() + " each \n");
 
    template.print("       Options:\n");
  var keys = new Array();
  var set = new GlideappVariablePoolQuestionSet();
  set.setRequestID(item.sys_id);
  set.load();
  var vs = set.getFlatQuestions();
  for (var i=0; i < vs.size(); i++) {
    if(vs.get(i).getLabel() != '') {
      template.space(4);
      template.print('         ' +   vs.get(i).getLabel() + " = " + vs.get(i).getDisplayValue() + "\n");  
    }
  }
}


I tried that before I responded to your post.   Let me test it again and I will get back to you.   Thanks so much for your assistance!


Abhinay Erra
Giga Sage

chrisdamico



Don't forget to mark my response as correct so that it gets remove form unanswered list and others who have same question can find the answer quickly.



If you are viewing this from the community inbox you will not see the correct answer button. You need to open the thread directly and you will see a correct answer button with red star.     Please review this How To Mark Answers Correct From Community Inbox