Need help on creating dynamic table in email script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2024 06:04 AM
Hi All,
I am getting below response from a script.
{"categoryKey":"Business Intelligence Sim|Enrollment Sim|Other","recentIncidents":[{"number":"INC4449511"},{"number":"INC4449512"}],"historicIncidents":[{"number":"INC4306467"},{"number":"INC4347468"},{"number":"INC4359174"},{"number":"INC4380294"},{"number":"INC4422274"},{"number":"INC4449511"},{"number":"INC4449512"}]}
Now I would like to print the data in to a table and need send as notification.
(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */
email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */
event) {
// Add your code here
var category = payload.categoryKey;
var recentIncidentNum = [];
var recentIncidents = payload.recentIncidents;
for (i = 0; i < recentIncidents.length; i++) {
recentIncidentNum.push(recentIncidents[i].number.toString());
}
var historicIncidentNum = [];
var historicIncident = payload.historicIncidents;
for (j = 0; j < historicIncident.length; j++) {
historicIncidentNum.push(historicIncident[j].number.toString());
}
template.print('<table border="1px solid black">');
template.print( "<tr bgcolor='#ddd' align='center'>" );
template.print("<td style='text-align:center' colspan='3'><strong>Alert Similar Incidents</strong></td>");
template.print( "</tr>" );
template.print( "<tr>" );
template.print( "<td><left><b>" + "Recent Incidents" + "</b></left></td>" );
template.print( "<td><left><b> "+"Historic Incidents"+" </b></left></td>" );
template.print( "<td><left><b> "+"Category"+" </b></left></td>" );
template.print( "</tr>" );
template.print( "<tr>" );
template.print( "<td><left>" + recentIncidentNum + "</left></td>" );
template.print( "<td><left>" +historicIncidentNum+ "</b></left></td>" );
template.print( "<td><left>" +category +"</left></td>" );
template.print( "</tr>" );
template.print('</table>');
})(current, template, email, email_action, event);
I am trying with above script. But it is coming as single table. I would like to print historic and recent incidents line by line
How to print this data as dynamic table? Please assist me on this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2024 05:28 PM
Hi, unfortunately your post is a little unclear as to outcome but if you want a single row in table for all 'Recent Incidents' then based on your code I think it would look something like
template.print( "<tr>" );
template.print( "<td><left><b>" + "Recent Incidents" + "</b></left></td>" );
template.print( "<td><left><b>" + recentIncidentNum + "</b></left></td>" );
template.print( "</tr>" );
if you want an individual row per entry them you would need to loop through your payload creating HTML per entry, possibly like this
for (i = 0; i < recentIncidents.length; i++) {
template.print( "<tr>" );
template.print( "<td><left><b>" + "Recent Incident" + "</b></left></td>" );
template.print( "<td><left><b>" + recentIncidents[i]+ "</b></left></td>" );
template.print( "</tr>" );
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2024 11:59 PM
Hi @HarikaG
Can you please let us know how you want the representation to be ? Your requirement is not very clear. If you could share some sample representation, may be we can help.
Thanks & Regards
Amit Verma
Please mark this response as correct and helpful if it assisted you with your question.