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.
🙂 😃
Solved! Go to Solution.
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:
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:
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
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.
Regards,
Fausto Capellan, Jr
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:
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:
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
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?
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
Hopefully this comes through this time.
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 screenshot
My screenshot
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
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.
Regards,
Fausto Capellan, Jr
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. 🙂
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
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
Hi @jkeckard007
Can you please spell out the entire error message since it's cutting off on the screenshot?
Thanks.
User | Count |
---|---|
88 | |
37 | |
26 | |
13 | |
13 |
User | Count |
---|---|
127 | |
54 | |
37 | |
24 | |
21 |