cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Adam12345
Level: Powered On

Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Hi,

 

I have been trying for the past 6 months to try and get attachments added from a Sharepoint list into a new RFQ work item.

 

The reason I want this, is to try and integrate attachments from SharePoint.

 

I just want attachments that are added on a SharePoint list to automatically attach onto a work item. 

 

Does anyone know any ideas on how to get this done? Im bust for ideas!

 

1 ACCEPTED SOLUTION

Accepted Solutions
Adam12345
Level: Powered On

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

8 REPLIES 8
Super User
Super User

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Hi @Adam12345, unfortunately this isn't something which can be done directly using native actions currently in Flow. However, there is a really useful action called "Send a HTTP Request to DevOps" which means that we can use the REST APIs to achieve what we want.

 

High level approach is:

  1. Get the work item from DevOps
  2. Get the attachments from the list item
  3. Get the content
  4. Upload it to Dev Ops
  5. Associate the attachment with the work item

HighLevel.PNG

 

Steps 1 - 3 are all straight forward with Flow, although if you need any pointers with these please shout and I'll be happy to ellaborate.

 

Let's focus on the first HTTP Request which is going to upload the attachment to DevOps, which in my overview is titled "Send an HTTP REquest to Azure DevOps - Upload Attachment."

 

This works in a similar way to the HTTP Connector for SharePoint, whereby you don't need to worry about generating tokens as the connection will handle the authentication for you. All you need to do is get your API call right.

 

Call1.PNG

Full documentation for this end point can be found here: https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/attachments/create?view=azure-devops-rest...

 

The most important part here is the URI for the endpoint. It will basically take the form of:

/{project}/_apis/wit/attachments?fileName={fileName}&uploadType={uploadType}&areaPath={areaPath}&api-version=5.0

fileName - the DisplayName dynamic content taken from the Get Attachments action

areaPath - the Area Path dynamic content taken from the Get Work Item actions

 

I will need to use the output of this REST call in my next one, so I need to use the Parse JSON action to transform the output into something useful. It will only return two pieces of information, so you can use this schema to parse it:

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "url": {
            "type": "string"
        }
    }
}

Once the file is uploaded, we need to associate it to the work item so that it shows up in attachments. Again, I'm going to use the "Send an HTTP Request to Azure DevOps" to do this. The difference this time, is rather than being a post, it is going to be a PATCH as I'm updating an already existing work item.

Call2.PNG

 

This time the relative URI is much more simple, as all I'm doing is providing the workitem ID (from my workitem action earlier). The majority of the work here takes place in the body of the call. Full documentation for this call can be found here:
https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/work%20items/update?view=azure-devops-res...

 

The only part of the body which will need to change is the url which will come from the Parse JSON step. That is the URL where your attachment has been uploaded to within DevOps. 

 

This has worked for me by attaching a txt file onto a List Item, and watching that flow through into my workitem, and I don't see any reason why it shouldn't work for more complex file types.

 

Let us know how you get on, and if you need any more help please shout.

 

If you have found this post useful, please give it a thumbs up. If it has answered your question, please accept it as the solution so others can benefit.

@MattWeston365

 

 

 





Did my reply help? Please give it a thumbs up.
Did I answer your question? Please mark my post as a solution!


Proud to be a Flownaut!





Community Leader: Black Country PowerApps & Flow User Group

Adam12345
Level: Powered On

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

deepakkoduri
Level: Powered On

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Thanks for the detailed information 🙂

 

When we try to move the SharePoint list item attachments apart from text files all the other files are getting uploaded as corrupted files to the DevOps work Items.  

 

Please help.

Super User
Super User

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Hi @deepakkoduri , I've stayed in contact with the OP as we did a couple of screen shares to get this built. He raised this same issue to me outside of the community so it's something I'm working on at the moment.

 

The issue is related to the way in which a Word document (or anything more complex than a txt file) is encoded within Flow as it is always encoded as a base64 string. The DevOps API actually wants a byte array (regardless of what the documentation suggests) and I've got this working in PowerShell.

 

So I'm working on a solution which will combine my findings in PowerShell with what is available through Flow. I'll report back once I've got the end-to-end solution working.





Did my reply help? Please give it a thumbs up.
Did I answer your question? Please mark my post as a solution!


Proud to be a Flownaut!





Community Leader: Black Country PowerApps & Flow User Group

deepakkoduri
Level: Powered On

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Thanks a lot @MattWeston365. Will wait for you reply.

May I know by when can we have this fix ready for planning a workaround.

Super User
Super User

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Hi @deepakkoduri and @Adam12345 

 

I've now got a solution to this. Give me a day or so as this is going to be a blog style solution since I've had to revert to Azure Automation to actually get this working as I want. The good news though is that it will now take the attachments from a list item and put them into Azure, and the documents don't corrupt.

 

I had a call with Adam not so long back, and I told him I don't do failure, so I'm finally there! Back in touch shortly.





Did my reply help? Please give it a thumbs up.
Did I answer your question? Please mark my post as a solution!


Proud to be a Flownaut!





Community Leader: Black Country PowerApps & Flow User Group

Super User
Super User

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

@deepakkoduri , @Adam12345 

 

Sorry it's taken me longer than I anticipated to get this to you. Here's a blog outlining my solution to your issue:

https://blog.mattweston365.com/2019/06/uploading-attachments-from-sharepoint.html

 

I'll be making an associated video shortly, but if you have any questions in the meantime please shout.





Did my reply help? Please give it a thumbs up.
Did I answer your question? Please mark my post as a solution!


Proud to be a Flownaut!





Community Leader: Black Country PowerApps & Flow User Group

deepakkoduri
Level: Powered On

Re: Getting attachments from SharePoint List and automatically attaching them to a DevOps work item

Thanks @MattWeston365.  I had used Azure Function to handle this.  For Uploading and tagging the attachment I'm using Azure Function which is being called in the Flow with the required parameters.

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

firstImage

Incoming: New and improved badges!

We've given our badges an overhaul and also added some brand new ones!

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

sixthImage

Power Platform World Tour

Find out where you can attend!

seventhimage

Webinars & Video Gallery

Watch & learn from the Power Automate Community Video Gallery!

Top Kudoed Authors (Last 30 Days)
Users online (6,006)