- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 02:34 AM
Hi All,
Would like to seek some help here as I'm not able to display the MRVS table in the Approval email notification but those variables that outside the MRVS do display accordingly.
Here is the code, and if someone can point me out where goes wrong?
Thanks in advance.
(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */ event) {
template.print("Summary of Requested items:<br />");
var set = new GlideappVariablePoolQuestionSet();
set.setRequestID(current.getValue('sysapproval'));
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.space(4);
template.print(vs.get(i).getLabel() + " = " + vs.get(i).getDisplayValue() + "<br/>");
}
var mrvs;
var rowCount;
var ritmGR = new GlideRecord('sc_req_item');
if (ritmGR.get(current.sys_id)) {
mrvs = ritmGR.variables.book_details; //multi row variable set info
rowCount = mrvs.getRowCount();
if(rowCount >= 0){
template.print('<table border="1px solid black" style="font-family:Arial">');
template.print( "<tr bgcolor='#ddd'align='center'>" );
template.print("<td style='text-align:center' colspan='10'><strong>Book Details</strong></td>");
template.print( "</tr>" );
template.print( "<tr>" );
template.print( "<td><center><b>Type</b></center></td>" );
template.print( "<td><center><b>Title </b></center></td>" );
template.print( "<td><center><b>Subtitle</b></center></td>" );
template.print( "<td><center><b>Author / Editor</b></center></td>" );
template.print( "<td><center><b>Year of Published</b></center></td>" );
template.print( "<td><center><b>International Standard Book Number</b></center></td>" );
template.print( "<td><center><b>Publisher</b></center></td>" );
template.print( "<td><center><b>URL</b></center></td>" );
template.print( "<td><center><b>Estimated Price (SGD)</b></center></td>" );
template.print( "</tr>" );
var mvrs = current.variables.book_details;
var ritm = current.getUniqueValue();
var rowCount2 = mvrs.getRowCount();
for (var a = 0; a < rowCount2; a++) {
var row = mvrs.getRow(a);
template.print( "<tr>" );
template.print( "<td><center>" +row.type + "</center></td>" );
template.print( "<td><left>" +row.title + "</left></td>" );
template.print( "<td><left>" +row.subtitle + "</left></td>" );
template.print( "<td><left>" +row.author_editor + "</left></td>" );
template.print( "<td><center>" +row.year_of_published + "</center></td>" );
template.print( "<td><left>" +row.international_standard_book_number_isbn + "</left></td>" );
template.print( "<td><left>" +row.publisher + "</left></td>" );
template.print( "<td><left>" +row.url + "</left></td>" );
template.print( "<td><center>" +row.estimated_price_sgd + "</center></td>" );
template.print( "</tr>" );
}
template.print('</table>');
}}})(current, template, email, email_action, event);
Solved! Go to Solution.
- Labels:
-
Service Catalog

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 08:12 AM
instead of using current.sys_id , replace it with current.sysapproval
try now.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 06:29 AM
i would suggest here to add logs in your script. this way you can troubleshoot this. i did not trigger using email script , i just tried to get the values using background script, if we are able to fetch the details then it will also work in email script.
start adding logs from the top to bottom, this way you can identify this issue. check which line is not working in your end.
what are you getting by below log? it should return json , share the log
var mvrs = current.variables.book_details;
gs.log('Result is '+mvrs);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 07:01 AM
I inserted the gs log as what you suggested, but I did not get anything.
It just stops from executing further before the var mrvs.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 07:05 AM
did you get json result ? by adding below line.
gs.log('Result is '+mvrs);
are you doing it on personal instance ? if yes i can try to quickly troubleshoot it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 07:09 AM
Guess you have replied after I answered your question.
The execution stop before it goes to var mvrs.
I'm actually working on my Dev instance and can't really migrate to the personal instance and try cause there are other dependencies.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2019 07:13 AM
can you paste your updated script ? i will add the logs and then you can validate the log table to check the log details.