I am building a Logic App to deal with Call Before You Dig email replies we receive. The first email is a confirmation email and it includes a table indicating which utility providers have been notified. I would like to add the contents of that table to an excel spreadsheet and add our own reference number in the process. I found a possible solution in this answer which was taken from John Dyer's Blog.
var data = [];
// first row needs to be headers
var headers = [];
for (var i=0; i<table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
}
// go through cells
for (var i=1; i<table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = {};
for (var j=0; j<tableRow.cells.length; j++) {
rowData[ headers[j] ] = tableRow.cells[j].innerHTML;
}
data.push(rowData);
}
return data;
}
I tried to use this code in a Azure Function but it was getting to complicated for me when it made me download VS. I could not find a way to just add the code in the portal. I installed VS but it started to get beyond me very quickly.
I found an online converter and used it to convert the code into C++ so I could maybe use it in a .net function.
#include <stdio.h>
int main()
{
printf("function tableToJson(table) {
var data = [];
// first row needs to be headers
var headers = [];
for (var i=0; i<table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
}
// go through cells
for (var i=1; i<table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = {};
for (var j=0; j<tableRow.cells.length; j++) {
rowData[ headers[j] ] = tableRow.cells[j].innerHTML;
}
data.push(rowData);
}
return data;
}\n");
return 0;
}
I have used two compose actions to trim the mails content down to just the table in question:
<table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="100%" style="width:100.0%; border-collapse:collapse; border:none">
<tbody>
<tr>
<td colspan="3" valign="top" style="border:solid gray 1.0pt; background:#9CCC6B; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal">
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black">MEMBERS NOTIFIED: The following owners of underground infrastructure in the area of your excavation site have been notified.</span>
</b>
</p>
</td>
</tr>
<tr>
<td width="50%" valign="top" style="width:50.0%; border-top:none; border-left:solid gray 1.0pt; border-bottom:solid gray 1.0pt; border-right:none; background:#9CCC6B; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black">Member name</span>
</b>
</p>
</td>
<td width="25%" valign="top" style="width:25.0%; border-top:none; border-left:solid gray 1.0pt; border-bottom:solid gray 1.0pt; border-right:none; background:#9CCC6B; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black">Station Code</span>
</b>
</p>
</td>
<td width="25%" valign="top" style="width:25.0%; border:solid gray 1.0pt; border-top:none; background:#9CCC6B; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black">Initial Status</span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">G-TEL FOR ENBRIDGE GAS (LEGACY UNION GAS) (ENOW01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">ENOW01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:none; border-right:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Notification sent</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">CITY OF STRATFORD (STRATWS01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">STRATWS01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:none; border-right:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Notification sent</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">FESTIVAL HYDRO (LOCAL HYDRO) (FESTH01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">FESTH01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:none; border-right:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Notification sent</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">WIGHTMAN TELECOM - FIBRE - LIMITED (WT01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">WT01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:none; border-right:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Notification sent</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">CLI FOR ROGERS (ROGWAT01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:none; border-left:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">ROGWAT01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:none; border-right:solid gray 1.0pt; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Cleared</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
<tr>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:solid gray 1.0pt; border-right:none; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">G-TEL FOR BELL CANADA (BCOW01)</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border-top:none; border-left:solid gray 1.0pt; border-bottom:solid gray 1.0pt; border-right:none; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">BCOW01</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
<td valign="top" style="border:solid gray 1.0pt; border-top:none; padding:3.75pt .75pt 3.75pt 3.75pt">
<p class="MsoNormal" align="center" style="text-align:center">
<span class="value">
<span style="font-size:9.0pt; font-family:"Arial",sans-serif">Notification sent</span>
</span>
<b>
<span style="font-size:9.0pt; font-family:"Arial",sans-serif; color:black"></span>
</b>
</p>
</td>
</tr>
</tbody>
</table>
This HTML becomes the input to Azure Function action and the Function I created using the C++ code that was output by the conversion and referenced above.
I am getting an Internal Server Error 500 on the output.
I am hoping someone can point me in the right direction to solve this. I have obviously done something wrong!