Forum Discussion
Power Automate Sharepoint file Copy not keeping the created by
- Sep 02, 2020
Ok, so I can't find anywhere that says this is possible or how to do it, but I just figured it out, at least it works for me going cross site. So the trick is to utilize the built in move to command via REST API. There is a hidden little property on it that acts like a move but retains the source since copy doesn't retain metadata but move to command will. So this seems to work, here is a Screen of my test flow. I'll also paste the Body text down below so you can copy and paste, but it's actually pretty simple once you figure out all this undocumented stuff like the Conflictname behavior which I just guessed at to find the right number to override the name. You can also change that to a 2 if you want to generate a new file for each update instead, or 0 to do nothing if one exists. Anyway hope this works for you, not sure how it'll work with files already open for editing but hopefully it still copies and doesn't error when locked for editing otherwise I don't think it'll be possible. You can get status of the job etc. to do retries if that's the case but that's outside my time to spend on this limitations :).
API: _api/site/CreateCopyJobsBody:
{
"exportObjectUris":[
"Link to Item from Get File Properties Step goes here"
],
"destinationUri":"https://Your_Tenant.sharepoint.com/sites/YourSite/YourLibrary_NoSlash_at_end",
"options":{
"IgnoreVersionHistory":true,
"IsMoveMode":true,
"MoveButKeepSource":true,
"NameConflictBehavior":1
}
}
Thank you so much for your help and that seems like a neat hack but I am getting the "BadGateway" errors as well. It says 2 retries occurred.
Just to make sure I didn't miss anything here is the flow
- Sep 02, 2020Yeah I'm literally getting the same thing, it just stopped working out of the blue, annoying cause I had figured this out and now it just quit for no reason it seems.
- Sep 02, 2020Wow figured it out, I don't know what changed with my columns by enabling that view, but add this in.
"NameConflictBehavior":1,
"AllowSchemaMismatch":true
At the end, make sure you put that comma after the 1 in first existing line, then add the allowschemamismatch, this solved it for me and it's working again.- Sean KuchleSep 02, 2020Brass Contributor
That worked great! Thank you so much for your help!
I'm just curious is there anywhere I can go to learn more about these Api calls?