Hi everyone...., I almost finish my app.., One part is that I have to create a pdf file, So I watched a couple of videos in order to populate a word document using power automate.., Then I did the template, I added all the content controls for the non repeating content with simple text holders. I solved this using the "Ask to powerapps" solution.... all these fields in the template are ok.. but when I see the repeating content section I don´t know how to do it...., I have seen some videos using SP list, but in my case I am using an xls sheet on onedrive..., so, I don´t have idea in order to solve this situation.. The Details table is the following (excel)
Date | FacNumber | Serie | Client | OrderNum | Qty | Cost |
5-jun | 4 | A | Client One | 3 | 10 | 2 |
5-jun | 4 | A | Client One | 4 | 9 | 2 |
5-jun | 4 | A | Client One | 8 | 9 | 2 |
5-jun | 4 | A | Client One | 12 | 10 | 2 |
if someone could help me out, Thank you in advanced
Details: FacNumber is the same in all the rows, Serie: is only a kind of document, Client: All the rows have the same Client, OrderNumber: is different in every row.., (OrderNumber, Quantity, Cost) are fields of another table..., .
Alex
Solved! Go to Solution.
Hi @alexaristide ,
Do you want to create a PDF file with repeating table based on the Table rows from your canvas app?
Based on the needs that you mentioned, I think it is not necessary to populate a Word document with repeating content control. Instead, I think a HTML Table in a HTML file could achieve your needs.
Firstly, within your canvas app, you could generate HTML table using Html Text control based on your Table rows. Then you could pass the generated HTML Table string value to your Power Automate flow. Within your Power Automate flow, you could create a HTML file based on the passed HTML text value in your OneDrive folder. Then you could add a "Convert file" action of OneDrive connector to convert the HTML file content into a PDF file content. With the converted PDF file content, you could create your PDF file.
I have made a test on my side, please consider take a try with the following workaround:
Flow's configuration as below:
App's configuration as below:
Within your app, you need to create a connection to your above flow firstly.
Set the HtmlText property of the Html Text control (HtmlText1) to following:
"<h3>Asset Checkout Notification</h3>" &
"<table width='100%'> " &
"<tr>
<td> Employee: </td>" & "<td>John Smith (johnsm@contoso.com)</td>" &
"</tr>" &
"<tr>
<td> Checkout Date: </td> <td>" & Today() & "</td>
</tr>" &
"<tr>
<td> Return date: </td> <td>" & DateAdd(Today(), 1, Months) & "</td>
</tr>" &
"</table> <br>" &
"<strong> Items: </strong>" &
"<table width='100%' border='1' cellpadding='5' style='border:1px solid black; border-collapse:collapse'>" &
"<tr style='background-color:#efefef' >
<td> Date </td> <td> FaceNumber </td> <td> Serie </td><td> Client </td><td> OrderNum </td><td> Qty </td><td> Cost </td>
</tr>
" &
Concat('Your Excel Table',
"<tr><td>" & Date & " </td>
<td>" & FaceNumber & " </td>
<td>" & Serie & " </td>
<td>" & Client & " </td>
<td>" & OrderNum & " </td>
<td>" & Qty & " </td>
<td>" & Cost & " </td>
</tr>") &"
</table>"
Set the OnSelect property of the "Upload" button to following:
GeneratePDFFilebasedonHTMLtablepassedfromapp.Run(HtmlText1.HtmlText)
When press the "Upload" button from your canvas app, the above flow would be fired to create a PDF file.
The generated PDF file would be stored in your OneDrive folder, and looks like below:
Please consider take a try with above solution, then check if the issue is solved.
More details about firing a flow from a canvas app, please check the following video resource:
https://www.youtube.com/watch?v=1wl9AtxWdkg
More details about formatting table rows as a HTML Table, please check the following blog:
https://powerapps.microsoft.com/en-us/blog/html-email-reporting-with-tabular-data/
https://www.youtube.com/watch?v=IhE0-HumNNo
Best regards,
Hi @alexaristide ,
Do you want to create a PDF file with repeating table based on the Table rows from your canvas app?
Based on the needs that you mentioned, I think it is not necessary to populate a Word document with repeating content control. Instead, I think a HTML Table in a HTML file could achieve your needs.
Firstly, within your canvas app, you could generate HTML table using Html Text control based on your Table rows. Then you could pass the generated HTML Table string value to your Power Automate flow. Within your Power Automate flow, you could create a HTML file based on the passed HTML text value in your OneDrive folder. Then you could add a "Convert file" action of OneDrive connector to convert the HTML file content into a PDF file content. With the converted PDF file content, you could create your PDF file.
I have made a test on my side, please consider take a try with the following workaround:
Flow's configuration as below:
App's configuration as below:
Within your app, you need to create a connection to your above flow firstly.
Set the HtmlText property of the Html Text control (HtmlText1) to following:
"<h3>Asset Checkout Notification</h3>" &
"<table width='100%'> " &
"<tr>
<td> Employee: </td>" & "<td>John Smith (johnsm@contoso.com)</td>" &
"</tr>" &
"<tr>
<td> Checkout Date: </td> <td>" & Today() & "</td>
</tr>" &
"<tr>
<td> Return date: </td> <td>" & DateAdd(Today(), 1, Months) & "</td>
</tr>" &
"</table> <br>" &
"<strong> Items: </strong>" &
"<table width='100%' border='1' cellpadding='5' style='border:1px solid black; border-collapse:collapse'>" &
"<tr style='background-color:#efefef' >
<td> Date </td> <td> FaceNumber </td> <td> Serie </td><td> Client </td><td> OrderNum </td><td> Qty </td><td> Cost </td>
</tr>
" &
Concat('Your Excel Table',
"<tr><td>" & Date & " </td>
<td>" & FaceNumber & " </td>
<td>" & Serie & " </td>
<td>" & Client & " </td>
<td>" & OrderNum & " </td>
<td>" & Qty & " </td>
<td>" & Cost & " </td>
</tr>") &"
</table>"
Set the OnSelect property of the "Upload" button to following:
GeneratePDFFilebasedonHTMLtablepassedfromapp.Run(HtmlText1.HtmlText)
When press the "Upload" button from your canvas app, the above flow would be fired to create a PDF file.
The generated PDF file would be stored in your OneDrive folder, and looks like below:
Please consider take a try with above solution, then check if the issue is solved.
More details about firing a flow from a canvas app, please check the following video resource:
https://www.youtube.com/watch?v=1wl9AtxWdkg
More details about formatting table rows as a HTML Table, please check the following blog:
https://powerapps.microsoft.com/en-us/blog/html-email-reporting-with-tabular-data/
https://www.youtube.com/watch?v=IhE0-HumNNo
Best regards,
This is a great solution, in fact it is a complete solution about how to create a PDF file with a table inside…, but I already have a template with logo, and other fields of the document to create,..., If a take this solution I would have to change all about the final document.., so, if you could help me out in order to continue with my solution..,
I took idea from this video in order to do the template and how to populate (using Ask in powerapps) the non repeating content…
https://www.youtube.com/watch?v=-1jsBllmr-w&t=692s
but when I have to add the repeating content section is the problem…, in that video the example is using a SP list, in my case is an XLS sheet…,
thank you
Hi @alexaristide ,
Based on the needs that you mentioned, I think the solution I provided would achieve your needs better.
If you still want to use "Populate a Microsoft Word Template" action in your flow, please check and see if the following blog would help in your scenario:
Firstly, you need to convert your whole Excel table records into a JSON Table string value using the JSON function in your canvas app. Then pass the converted JSON table string value to your flow. Within your flow, you need to use the json function convert the passed JSON Table string value into a actual JSON Table (array value). After that, you could apply the converted JSON table into the Repeating section field in your "Populate a Microsoft Word Template" action.
In addition, within your flow, you could also do some modification to the converted JSON Table (using Select action or Parse JSON action) to meet the fields name you set in your Repeating section control.
More details about passing JSON string from canvas app to Power Automate flow, please check the following video:
https://www.youtube.com/watch?v=HLdOO4JPZ2I
Note: The whole process logic is the same, the only different thing is that you need to pass your Excel table records as a JSON String from your canvas app to your flow.
Best regards,
User | Count |
---|---|
251 | |
251 | |
82 | |
45 | |
29 |
User | Count |
---|---|
343 | |
264 | |
129 | |
69 | |
57 |