or continue reading…
In Power Apps, adding a file as an attachment to the list is very easy. However, when we want to put a file in a SharePoint document library – there is a problem. PowerApps does not yet have a ready component for editing the content of a SharePoint document library.
The situation is similar with copying files. Power Apps does not have ready-made mechanisms – you should use Power Automate, which has ready-made solutions. As it turns out, they are not without flaws. Fortunately, there is an alternative.
The following articles will discuss methods that use standard Power Automate mechanisms and the alternative – SharePoint REST API
Standard mechanisms
Power Automate
- Get attachments
- Get attachment content
- Create file
- Copy file
- Get file content
- Create file
Power Automate and
SharePoint REST API
- Send an HTTP request to SharePoint
We will also check the speed comparison of both solutions
Adding a file as an attachment to a SharePoint list and copying to the library
Adding an attachment to a SharePoint list item
In Power Apps, adding a file directly to the list is only possible using forms. So we create a form in the application with the field for adding an attachment.
After placing the form on the screen and connecting it to the data source, you only need to remember to add the Attachments field and insert a button and link an action to it
SubmitForm( Form )
Saving the form will create a row in the SharePoint list with the file as an attachment. The Power Apps form allows you to attach several files.
The examples presented below take into account such a scenario.
Copy an attachment from the list to the document library
The next step is to create a Power Automate that will transfer our file to the SharePoint document library. This task is performed by a simple Power Automate flow that is run from the OnSuccess function of the form
- In the ListItemID variable I will remember the ID of the line from which I want to download attachments
- Download all attachments from the list item
- Download all attachments from the list item
- For each of the attachments
- download its content
- create a file based on its name and contents