Email Notification Subject

snowuser111
Kilo Guru

Hi I am creating a email template where the Subject line should be as below but I am not getting the Item name.

Table Sysapproval_approver

Service Request REQxxxxx for "Item name" has been Approved

Email Script for Subject:

_________________________________________________________________________________

email.setSubject("Service Request " + $(sysapproval) + " " +"for" + " " + req + "has been approved");  

  var gr = new GlideRecord("sc_req_item");

  gr.addQuery("request", current.sys_id);

  gr.query();

while(gr.next())

{

  // template.print(gr.cat_item.getDisplayValue() + " ");

    var req = gr.cat_item.getDisplayValue();

    }

</mail script>

____________________________________________________________________________________


can anyone help where I am wrong in subject why isn't it retrieving the Item Name?


Thanks

1 ACCEPTED SOLUTION

Kalaiarasan Pus
Giga Sage

Not sure what exactly you are looking for but try the below and use the subject you want ...



<mail script>


var requestNumber = '';
var catalogName = '';
var ritmNumber = '';
var gr = new GlideRecord("sc_req_item");
gr.addQuery("sys_id", current.sysapproval);
gr.query();
if(gr.next())
  {
  catalogName = gr.cat_item.name.toString();
  requestNumber = gr.request.number.toString();
  ritmNumber = gr.number.toString();
}

email.setSubject("Service Request " + requestNumber + " " +"for" + " " + catalogName + " has been approved");
//email.setSubject("Service Request " + ritmNumber + " " +"for" + " " + catalogName + " has been approved");


</mail script>



Note : The template must be running on sysapproval_approver


View solution in original post

23 REPLIES 23

Gurpreet07
Mega Sage

Also declare req globally .. i.e . before GlideRecord Statement   ..   Like below



<mail_script>


var req ="" ;


  var gr = new GlideRecord("sc_req_item");


  gr.addQuery("request", current.sys_id);


  gr.query();


while(gr.next())


{


  // template.print(gr.cat_item.getDisplayValue() + " ");


    req = gr.cat_item.getDisplayValue();


    }


email.setSubject("Service Request " + $(sysapproval) + " " +"for" + " " + req + "has been approved");


</mail script>


i tried this as email script" but   subject is not coming. The issue is with only req without req its coming well and good.


----------------------------------------------------------------------------------------------------------------------------------------------------------------------



email.setSubject("Service Request " + $(sysapproval) + " " +"for" + " " + req + "has been approved");


 


  var req = "";


  var gr = new GlideRecord("sc_req_item");


  gr.addQuery("request", current.sys_id);


  gr.query();


  while(gr.next())


  {


      var req = gr.cat_item.getDisplayValue();


  }


----------------------------------------------------------------------------------------------------------------------------------------------------------------------


One request could have multiple of RITMS


But if it has one in that case it should display the Item name in req. is is not coming due to that reason?


In body of email template it displays fine, but for subject line its not comming


in while loop replace instruction      


      var req = gr.cat_item.getDisplayValue();


with


      var req = gr.getDisplayValue();



also try to add a log inside while loop to check weather control enters inside it or not