cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
i_reminisce
Helper I
Helper I

Move and rename multiple attachments from SharePoint list item

Hello everyone!

 

I looked around and didn't find anything that quite fit my specific issue.

Let me describe how my Flow works to give you guys a better understanding. My Flow starts by waiting for a SharePoint item to be created (data patched from PowerApps), and then essentially uses that data to do various things.

 

One of these things that I want to do is to be able to take the attachments submitted, and then move them to a different SharePoint site (xxx.sharepoint.com/sites/a ----> xxx.sharepoint.com/sites/b). I've been able to do this with no issues, but then a user brought something to my attention.

I've been renaming the file as I move it across, but users want to be able to submit more than one item at a time in my PowerApp. The items get renamed (via Flow) the same thing and all overwrite each other ending with one file.

 

Is there a way to add in a sequential format of some sort? I'm hoping to be able to rename multiple files to be something like "Timecard-i_reminisce-Date-sequentialFormat". Thanks!

 

flowDemonstration.jpg

1 ACCEPTED SOLUTION

Accepted Solutions
SCTdan
Continued Contributor
Continued Contributor

Sure, it's pretty straightforward and very useful

 

 

Hastily thrown together example-

 

First you'll want to add a variable (Initialize Variable action).  Give it a name, set it as an integer, and set your default value.  We'll keep it simple and assume you are ok with just appending -1, -2 etc

 

Add that variable as part of your filename like you've done with the sharepoint fields.

 

Then within your loop, as the last step, add in the Increment variable action.  Choose the variable you created above, and set the value to increment by.  First loop through will use whatever the initial defined value was (1), then just starts counting up according to the value defined in the increment variable action until the loop exits.  

 

 

*You could add some additional logic so that if you only have one attachment, it doesn't include the sequential identifier

 

 

Hope that helps

View solution in original post

13 REPLIES 13
SCTdan
Continued Contributor
Continued Contributor

Can you expand out the part of your flow currently doing this?

 

You should be able to loop through the attachments, renaming and submitting each one in turn.  Create a variable, set it to increment each loop, use that as your sequential identifier.

Here's a picture of it expanded, let me know if you need more information.

 

flowDemonstration1.jpg

 

Can you walk me through the "Create a variable, set it to increment each loop, use that as your sequential identifier." portion of your suggestion? Despite how it seems I'm very new to Flows and don't have much programming experience.

SCTdan
Continued Contributor
Continued Contributor

Sure, it's pretty straightforward and very useful

 

 

Hastily thrown together example-

 

First you'll want to add a variable (Initialize Variable action).  Give it a name, set it as an integer, and set your default value.  We'll keep it simple and assume you are ok with just appending -1, -2 etc

 

Add that variable as part of your filename like you've done with the sharepoint fields.

 

Then within your loop, as the last step, add in the Increment variable action.  Choose the variable you created above, and set the value to increment by.  First loop through will use whatever the initial defined value was (1), then just starts counting up according to the value defined in the increment variable action until the loop exits.  

 

 

*You could add some additional logic so that if you only have one attachment, it doesn't include the sequential identifier

 

 

Hope that helps

The increment variable will definitely be good enough for now, thanks for that!

 

Now you have me interested in knowing how to add in that logic you mentioned... How would I go about doing something like that? I tried a condition based on the number of attachments being > 1, but it doesn't like it since it is an object and not a number.

 

Thanks for all of the help so far!

I figured it out, I just did a CountRows() of the attachments in my PowerApp and submitted that back to SharePoint and used that number in a condition in Flow.

 

Thanks again for all of the help @SCTdan, I really appreciate it!

Hi @i_reminisce 

 

can you help me creating a flow that automatically renaming the file attachment that i uploaded into a sharepoint list? 

 

i need to upload multiple atatchments at once for a single record in a sharepoint list, and i need to renaming it all by adding the record ID Column at the front. for example:

 

ID: 10

Attachments: 
A.jpg

b.pdf

C.doc

 

Rename it so it will be:

10 - A.jpg

10 - b.pdf

10 - C.doc

 

how i can achieve that? please help.

 

much thanks,

pytbyt

 

 

Hey there @PytByt !

 

I can give it a shot, but I need to know how you're submitting the pictures to Sharepoint. Are you doing it through PowerApps?

Hi @i_reminisce , thank for your reply.


Yes, i'm using powerapps with submitform formula for submitting the the whole form including the multiple attachments into my sharepoint list table. 

 

Please help me.

 

Best Regards,

PytByt 

@PytByt 

 

This worked for me, let me know if you need explanations as to what is going on in the flow.

 

The concat formula is 

concat(triggerBody()?['ID'], ' - ', items('Apply_to_each')?['DisplayName'])

FlowTest.jpg

 

Here's a picture of the attachments after they've been renamed (couldn't get it to work with .doc, but I didn't spend any time on troubleshooting why... SharePoint was being fussy about uploading one)

FlowTest1.jpg

Hi @i_reminisce 

 

Im sorry for my late reply.. 

 

i have a few question:

  1. I need to make sure what exactly inside the "Get Attachment Content" is in the flow?
  2. Is it possible to rename the whole attachment name?for example:The actual uploade name of the attachment is: newpic.jpg and then change it with flow into: 10 - Copy ID Card.jpg (where 10 is the ID from ID column of my SP list)how can i achieve that?
  3. How can i use the flow? i mean, i already created it and make it running but, i dont see the result and i dont know how to add it into my app in powerapss. Please help.

 

Thanks.

 

Regards,

PytByt

 

 

 

 

@PytByt , apologies for my late reply, was enjoying my holiday :). Here are my responses:

 

  1. I need to make sure what exactly inside the "Get Attachment Content" is in the flow?
    1. FlowTest2.jpg
    2. The "Id" is set to the ID of the "When an item is created", and the "File Identifier" is set to the Id of "Get attachments"
  2. Is it possible to rename the whole attachment name?for example:The actual uploade name of the attachment is: newpic.jpg and then change it with flow into: 10 - Copy ID Card.jpg (where 10 is the ID from ID column of my SP list)how can i achieve that?
    1. To do this you would have to do something like:
      1. Run a condition against the name of the original attachment and if it matches the file TYPE (ex. jpg, doc, or pdf), to rename it appropriately...
      2. The way I would do this is with split() expressions in multiple conditions, pictures below for example
  3. How can i use the flow? i mean, i already created it and make it running but, i dont see the result and i dont know how to add it into my app in powerapss. Please help.
    1. When you have a flow that is made of a trigger involving an item being created in a SharePoint list, then you're done... If you have PowerApps submitting data to the same SharePoint list then all you need to do is sit back and wait for the Flow to run when the new item gets created in Sharepoint. If you are NOT creating new items on Sharepoint, but instead modifying existing items, then you need to change the flow trigger (When an item is created) to the SharePoint trigger (When an item is created or modified).

 

If you need more details then what I've provided please let me know, but understand that I may not be as quick to respond as things are picking back up at work.

 

Picture examples of Question #2:

The concat expression is: 

concat(triggerBody()?['ID'], ' - ', 'Copy ID Card', '.jpg')

The last expression is:

last(split(items('Apply_to_each')?['DisplayName'], '.'))

FlowTest5.jpg

 

Here is the flow run demonstrating the rename of the file:

FlowTest3.jpgFlowTest4.jpg

It may be a bit hard to tell, but the file was uploaded to SharePoint as "FlowTest2.jpg", and then was renamed to "3 - Copy ID Card.jpg" after the Flow run completed.

hi @i_reminisce  

 

wow! you are a life saver mate! thanks a lot!

 

and i hope you did enjoy your holiday...

 

cheers,

pytbyt

@PytByt 

 

We've all got to start somewhere! I'm happy my meager knowledge could help you out 🙂

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Users online (5,409)