cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Lina_Ma
Regular Visitor

Renaming a File in SharePoint Online

Hi 🙂

I am trying to rename a file in a document library on SharePoint Online, I want that when a user upload a file, a flow change it name, adding the current date and hour. I am not know the formula to add the date at the name of the file, can help me please whit information about that. Is important too that when the user upload a new document the flow don't generate a new version on the historical version document.

Im am trying whit sharepoint designer because I don't know how to create a flow in Microsoft Flows, thanks fot your helps.

🙂 😃

1 ACCEPTED SOLUTION

Accepted Solutions
v-bacao-msft
Community Support
Community Support

Hi @Lina_Ma,

 

There is no action to rename SharePoint files directly currently. If you want to the feature to be supported in Microsoft Flow, you could vote for the similar ideal in the forum below:

https://powerusers.microsoft.com/t5/Flow-Ideas/New-SharePoint-Action-rename-file-folder-document-set...

Maybe you could consider using "Send a http request to SharePoint" action to rename the file.

Use Compose to get the current Date and Hour, and then prefix it before the file name.

It is recommended to set a Delay action to avoid delays in the execution of the action.

But unfortunately, the action executed in the Flow for the files in SharePoint will change the version of the file, and the Modified user is determined according to the account of the connection configured on the action.

Anyway, if you want to rename the file name, you could refer to the following image:

44.PNG

Besides, for more information about SharePoint http request, please refer to link:

https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-folders-and-files-with-rest

Please take a try.

 

Best Regards,

Barry

 

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

60 REPLIES 60
faustocapellanj
Memorable Member
Memorable Member

Hi @Lina_Ma

 

There have been quite a few posts about what you're looking for here in the forums. The solution in the link below can give you an idea on how to go about what you want to do. Please give it a try and let us know.

https://powerusers.microsoft.com/t5/General-Flow-Discussion/Manipulate-filename-from-email-attachmen...

 

Regards,

Fausto Capellan, Jr

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
v-bacao-msft
Community Support
Community Support

Hi @Lina_Ma,

 

There is no action to rename SharePoint files directly currently. If you want to the feature to be supported in Microsoft Flow, you could vote for the similar ideal in the forum below:

https://powerusers.microsoft.com/t5/Flow-Ideas/New-SharePoint-Action-rename-file-folder-document-set...

Maybe you could consider using "Send a http request to SharePoint" action to rename the file.

Use Compose to get the current Date and Hour, and then prefix it before the file name.

It is recommended to set a Delay action to avoid delays in the execution of the action.

But unfortunately, the action executed in the Flow for the files in SharePoint will change the version of the file, and the Modified user is determined according to the account of the connection configured on the action.

Anyway, if you want to rename the file name, you could refer to the following image:

44.PNG

Besides, for more information about SharePoint http request, please refer to link:

https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-folders-and-files-with-rest

Please take a try.

 

Best Regards,

Barry

 

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.

Barry, Thank you so much! 🙂 I go to trying.

I tried the http request that Barry posted for renaming a file in my SharePoint Online document library, however, the Flow fails with 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.

 

Any ideas?

Hi @kagoodm,

Do you mind posting some screenshots of your Flow?
Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

Absolutely.  Below is what I have in my flow.  I'm hoping there is something simple that I'm missing.

 

Hi @kagoodm

 

The screenshot didn't come through. Do you mind trying to post it again so I can check it out? Thanks.

 

Fausto Capellan, Jr

 

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

Hopefully this comes through this time.

Flow.jpg

Hi @kagoodm

 

Sorry for the late reply. After building a Flow on my end with all the steps on your screenshot, I believe the issue lies in the Body field of the Send an HTTP request to SharePoint. You currently have _metadata and it should be __metadata. This one requires 2 underscore lines and yours only have one. The first screenshot below is yours and the second one is mine. Please compare the highlighted content and update that field accordingly. And once you test, please let me know.

Your screenshotYour screenshotMy screenshotMy screenshot

 

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

Thanks for the extra set of eyes.  I wouldn't have caught that.  I updated it to have an extra _ as you stated and I was able to get the flow to run now without errors. 

 

Thanks again!

Hi @kagoodm

 

I'm glad you got that sorted. Please, do not hesitate to reach out if you have any questions.

 

Regards,

Fausto Capellan, Jr

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Anonymous
Not applicable

Hello

 

thank you for providing a work around for renaming an existing document in a document library.

 

not sure if my previous post went through (trouble adding an image) so I'm posting again

 

i'm blindly following the examples above and don't understand part of the 'Uri' field in the Send an HTTP request to sharepoint.

 

The examples show several different things -

/_api/web/lists/GetByTitle('PMTR')/...

/_api/web/lists/GetByTitle('B')/... 

/_api/web/lists/GetByTitle('CustomCSS')/...

 

can you please tell me what the 'PMTR', 'B' and 'CustomCSS' are adn where do I find what I need to use in my document library?

 

I understand what ever is put in the Uri needs to go in the 'Body' 

 

I'm feeling like dumb screwdriver  here

 

brian

 

 

 

Hi @Anonymous

 

The URLs you posted below are the ones you need to add to the SharePoint HTTP Request. Here's one of the URLs again and its breakdown: /_api/web/lists/GetByTitle('CustomCSS')/

The bold text inside the parenthesis is the name of the folder I need to Flow to work with. In your case, it will be the name of your folder. To become acquainted with SharePoint REST API, I have added a link below for you to check.

https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-lists-and-list-items-with-rest

 

Regards,

Fausto Capellan, Jr

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

Hi Brian.  I know exactly where you're coming from...I was lost trying to figure this out as well.

 

In my particular use case, I wanted to take my document that gets stored into the SharePoint Online library and completely rename it to Something-ID#.

 

In my example, the PMTR wass the name of my SharePoint Online document library.  I've copied/pasted in my actual values below.  My error was when I tried manually typing it all out based on screen prints and missed one extra _.

 

In my Compose step, I did the following to concatenate a string of Something-ID#:

concat('the text I wanted my file to be renamed as-', triggerBody()?['ID'])

 

In my Send an HTTP request to SharePoint, I did the following:

Site Address:  your SharePoint Online site where the document library exists

Method:  POST

Uri:      /_api/web/lists/GetByTitle('your SharePoint Online document library ')/items(@{triggerBody()['ID']}) Where you are seeing the @{triggerBody()['ID']}), I pulled that in from the available fields in my SharePoint Online document library.

 

Headers: 

content-type:     application/json;odata=verbose

IF-MATCH:  *

X-HTTP-Method:  MERGE

 

Body:  {'__metadata':{'type':'SP.Data.your SharePoint Online document libraryItem'},'FileLeafRef':' @{outputs('Compose')}'}

 

Doing this, I was able to get my documents to be completely renamed to just the Something-ID# like we were hoping for.

 

Hope this helps.  🙂

Anonymous
Not applicable

thank you both for replying, I'm begining to understand now and I believe the problem I'm having is with my document library name.

The error I"m getting is this:

{
  "message": "List 'CAM  Agreement Documents' does not exist at site with URL 'https://*********.sharepoint.com/teams/International/RAM'.\r\nclientRequestId: 8909cbe0-c331-4db2-b240-b7d0edcda2d8\r\nserviceRequestId: 5a77bd9e-4025-0000-1f04-751ff44fe38f",
  "status": 404,
  "source": "https://********.sharepoint.com/teams/International/RAM/_api/web/lists/GetBYTitle('CAM%20%20Agreement%20Documents')/items(845)",
  "errors": [

    "-1",
    "System.ArgumentException"
  ]
}

 

However the URL shows the name is correct:

https://***********.sharepoint.com/teams/International/RAM/CAM%20%20Agreement%20Documents/Forms

 

There are indeed two spaces in the name after 'CAM' but before 'Agreement'

I've tried

'CAM%20 Agreement%20Documents'

'CAM%20%20Agreement%20Documents'

'CAM  Agreement Documents'

 

While there are two spaces library name in the URL, there is only one in the web address specificed in the document library settings: 

Web Address:Description:

https://*******.sharepoint.com/teams/International/RAM/CAM Agreement Documents/Forms/Alll Docs.aspx

 

So I've tried:

CAM Agreement Documents

CAM%20Agreement%20Documents

 

in all cases I get the same error message saying the 'list' cannot be found

 

Does REST require something special with spaces?  I've read about using '+' instead, but i'm not sure

 

thank you for your time

brian

 

 

 

 

Hi @Anonymous

 

Let's step away from Flow for a bit and focus on the SharePoint REST API part. To understand SharePoint REST better, I suggest you play around with it directly on the browser so you can learn it a lot faster. For example, to make sure I am accessing the correct REST API data points, I browse to my site and append the following to the site URL:

_api/web/lists/. This will give you all the lists in the site in XML format. And then to access the list, you would then use this URL: _api/web/lists/GetByTitle('List or Doc Library Name here'). This will give you all the information about that specific list. And if you want to see all the items in that list or library, you would use this URL: _api/web/lists/GetByTitle('List or Doc Library Name here')/items. As you become acquainted with this, everything will start to fall into place and then you will be able to use inside your Flow.

Please go over the link I sent in my previous reply. I normally keep that link and some others related to SharePoint REST API handy in the event I need to do something with it.

 

Regards,

Fausto Capellan, Jr

 

 

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Anonymous
Not applicable

Thank you so much Fausto for your patience and for your help

 

I now get it. I didn't realise I could use the browser, that certainly speeds things up.

 

In case any one else reads this, the  'List or Doc Library Name here' in   _api/web/lists/GetByTitle('List or Doc Library Name here') is the name of the document library on the list settings page and not what's shown in the URL.

 

Also, double spaces are handled without a problem (as in _api/web/lists/getbytitle('CAM%20-%20Document%20Library')/items).

 

Thank also Kagoodm for laying out exactly what you did to get it working (my problem was with the name)

 

 

I am trying to do this also but I am getting the below error

Error.JPGHttp.JPG

Hi @jkeckard007

Can you please spell out the entire error message since it's cutting off on the screenshot?

Thanks.

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (3,803)