cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

Form attachment to SharePoint column field using SharePoint HTTP Patch

Hi, 

 

I got a flow where I get response details from a Form. One of the options in the form is the ability to upload a file. 

This file is usually an image (Jpeg).  I'm parsing the response details for this option in the form. Then I'm adding these to the SharePoint HTTP Patch JSON step.

The column I want to upload these files to is called "screenshot", when running this I get the following error

 

An entry without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified. 

 

MSTR_Flow_Issue.jpg

 

MSTR_Flow_Issue2.jpg

1 ACCEPTED SOLUTION

Accepted Solutions
v-bacao-msft
Community Support
Community Support

 

Hi @F_Quint ,

 

If you want to upload the file uploaded in the Form submission as an item attachment, you can refer to this video below:

https://www.youtube.com/watch?v=Foy8i6jPZrg

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

4 REPLIES 4
v-bacao-msft
Community Support
Community Support

 

Hi @F_Quint ,

 

If you want to upload the file uploaded in the Form submission as an item attachment, you can refer to this video below:

https://www.youtube.com/watch?v=Foy8i6jPZrg

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

THIS. IS. NOT. A. SOLUTION!

This post clearly requested a solution "using SharePoint HTTP Patch", whereas the solution you have linked to uses "Add Attachment" instead of "Send an HTTP Request to SharePoint".

But the "Add Attachment" action only supports one file and it is not capable of overwriting conflicts!

This is a bad solution. If you have multiple files, you must use an "Apply to each" loop to encapsulate the "Add Attachment" action, but not only that, you must also run an "Apply to each" loop beforehand to delete all attachments with conflicting file names! Not good...

See my reply to a similar thread, copied below:

 

I found a tutorial to batch delete attachments to a SharePoint list item here but have had trouble finding an example of how to "Send an HTTP Request to SharePoint" to batch upload files to a SharePoint list item. NOT TO A DOCUMENT LIBRARY OR FOLDER, BUT SPECIFICALLY TO A LIST ITEM...

It seems there should be a way to batch multiple attachments into one REST API request and have those all upload and overwrite any existing duplicates of the same file names, all in one request and without using a preliminary DELETE request (like the example linked above) to avoid conflicts.

I can't even find an example HTTP request to upload attachments, specifically, to a list item. I can use the "Add Attachment" action in Power Automate, and obviously that works fine, but it requires, first, an "Apply to each" loop to delete all existing file conflicts (any file with a name matching one you intend to upload) followed by another "Apply to each" to run the "Add Attachment" action for each file. And you can't have these request running in parallel because they would interfere with each other.

So the crux of the problem is we need to upload all the desired attachments in one batch request that overwrites all conflicting file names! This has to be possible, I just haven't found any examples...

 

 

Link to tutorial for SharePoint HTTP Batch Delete attachments from SharePoint list item

 

EDIT: Well crap... According to this documentation, it's actually not possible to upload multiple files to SharePoint API via a single batch. However, this other documentation explains how to structure SharePoint HTTP requests to upload/delete/modify files attached to a SharePoint list item, which may be preferable to the above mentioned DELETE-then-UPLOAD method. Even if only one file per "batch" is allowed, if the HTTP request can overwrite conflicting files without first deleting, then it obviates one whole SharePoint request per file and eliminates the entire "Apply to each" loop to delete the conflicts.

HEATFreight_0-1673709673235.png

Here is the solution:

 

/_api/web/getfolderbyserverrelativeurl('Lists/List1/Attachments/1/')/files/add(overwrite=true,url='filename.txt')

 

HEATFreight_0-1673721867850.png


The answer is also found here, but they do not go into how lists are also folders and how to access list items as folders. The above syntax makes it easy to understand.

Ok I was probably on the right path but I was unable to make that work as a SharePoint HTTP request due to "ill-formed JSON stream" errors.

However, I found another solution which completely solves my issue!

The solution to this problem is to use "Create File" instead of "Add Attachment".

This blog says you need to disable "Allow chunking" and you will be able to overwrite existing SharePoint files, but in my testing that is not necessary. You do not need to disable chunking.

 

All you need to do is use "Create file" and the file will be created or overwritten seamlessly without having to check if it exists and delete it first! "Add Attachment" gives an error if the file already exists, but "Create File" works whether it exists or not. "Add Attachment" is specific to attaching files to list items, but "Create File" works for any folder in SharePoint. "Lists" is a folder and each list is itself a folder and the attachments to a list is a folder and each list item is a folder.

Therefore, if you want the file to attach to a list item in a SharePoint list, the syntax for "Folder Path" in your "Create File" action is as follows:

 

/Lists/<List Name>/Attachments/<List Item Id>

 

In my testing, I am able to concurrently add attachments to the same list item using the "Create File" action, whereas previously the "Add Attachment" action would fail if another "Add Attachment" action was already modifying an attachment to the same list item. I suppose if any two concurrent "Create File" actions tried to create or modify a file with the exact same name, that would cause issues, but as long as all the file names are different, "Create File" seems to have no trouble at all with simultaneously adding several attachments to the same list item!

This has significantly reduced the run times in my flow! I no longer have to run a loop to delete old versions of the attachments and I no longer have to attach them synchronously. Asynchronous is fine with "Create File"! How is this not common knowledge? It seems super important, yet I had to figure this out myself because none of the other threads on this issue mentioned it at all (well until I came across the blog I linked to above).

For my purposes, there is no reason to ever use "Add Attachment" because it's such a weak and error-prone action. You either have to augment it with other actions to prevent the "file already exists" or "record is already being modified" types of errors, or you have to use it only in special circumstances where the file definitely does not exist and the list item is definitely not already being modified concurrently by another "Add Attachment" action.

Why would anyone ever use "Add Attachment" when "Create File" obviates the preemptive deletion of the existing files and also doesn't fail with concurrent/asynchronous actions? I think more folks would use "Create File" instead of "Add Attachment" if they understood this difference and if they understood the folder structure of attachments to list items.

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (889)