cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
sudosaurus
Post Prodigy
Post Prodigy

Schedule create folders for monday to friday?

Hello,

 

I'm looking to create a flow where on a weekly schedule trigger, would it be possible to create folders; Monday; Tuesday; Wednesday; Thursday; Friday. 

 

Ideally we'd like to append the date with a "-" between the day and the date.

 

Then at the end of the week have these folders moved to an archive folder, followed by the above re-running and creating new folders for the following week with their dates.

 

It sounds doable in theory but not sure where to start.

47 REPLIES 47
Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

I would start with the folder creation part. You can create an array and use the utcnow function to generate the different day folders. The easiest thing would be if you would schedule the flow on the Monday.

 

After that you can loop through your array to create the new folder per item().

 

Below is an example.

Btw, I forgot about Friday, you might want to update the expression 😁

 

createArray(concat('Monday - ', utcNow('yyyy-MM-dd')), concat('Tuesday - ', addDays(utcNow(),1,'yyyy-MM-dd')), concat('Wednesday - ', addDays(utcNow(),2,'yyyy-MM-dd')), concat('Thursday - ', addDays(utcNow(),3,'yyyy-MM-dd')))

 

weeklyfolder_creation.png



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

@Expiscornovus 

 

What am I putting under "Folder Path"?

 

sudosaurus_0-1646222870695.png

 

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

Use the expression editor and add:

item()


Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

@Expiscornovus 

 

OK that worked well thanks. 

How would I apply this to a sub folder of a document library?

 

For example I have a three sub folders named "Hub One", "Hub Two" and "Hub Three".

 

I would need the folders with their dates added to each one.

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

In that case you probably are looking at a nested loop. 

 

Try something like below.

 

nestedloop.png



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

Hi @Expiscornovus 

 

That worked great!

 

Once last thing (hopefully). Can you think of a way to order these folders Mon-Fri rather than Friday being at the top?

Only way I can think about doing it is appending numbers to the beginning of each day, ie. 1.Monday, 2.Tuesday, 3.Wednesday etc.

sudosaurus_0-1646224837537.png

 

sudosaurus
Post Prodigy
Post Prodigy

@Expiscornovus 

 

Could we change the expression for the WeeklyFolderArray so that the folders are formatted this way instead?


02-03-2022 - Wednesday

 

I think this would allow the day order to work better.

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

Sure, try this expression instead for the WeeklyFolderArray:

createArray(concat(utcNow('dd-MM-yyyy'), ' - Monday'), concat(addDays(utcNow(),1,'dd-MM-yyyy'), ' - Tuesday'), concat(addDays(utcNow(),2,'dd-MM-yyyy'), ' - Wednesday'), concat(addDays(utcNow(),3,'dd-MM-yyyy'), ' - Thursday'), concat(addDays(utcNow(),4,'dd-MM-yyyy'), ' - Friday'))


Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

Thanks @Expiscornovus that worked well! 🙂

 

There was one other thing I wanted to run past you:

I've built this second flow to run the day before, which essentially will archive all the named folders to a sent folder.

 

Whilst the workflow does appear to run through and the folders do indeed get moved, the flow does error at the end with this:

The destination path cannot be the same as the source object itself.
clientRequestId: 491bf6c2-91e1-4406-8e9a-163f7977b87f
serviceRequestId: 491bf6c2-91e1-4406-8e9a-163f7977b87f


sudosaurus_0-1646232841971.png

Is there any clear way to get around this without sticking the Sent folders in a folder outside of the "Skypark Hub" folder?

 

Thanks.

Expiscornovus
Super User
Super User

Hi @sudosaurus,


Like you already mentioned, this is because your Sent folder is also listed by your filter array. I would add another expression to your filter array to exclude it.

 

Btw, in the apply to each I would also use a Move folder action instead of a Move file and use the {FullPath} and {Path} properties to move the folders.

 

1. The same error for the Sent folder on my environment

 

sentfolderisalsolisted.png

 

2. The new expression for the Filter Array which you can add via advanced mode:

@and(not(equals(item()?['Title'], 'Sent')),equals(item()?['{IsFolder}'], true))

 

notequaltosent.png



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

Hi @Expiscornovus ,

 

Where are you getting the {FullPath} and {Path} values from?

sudosaurus_0-1646257527560.png

I tried using these in the expression editor and it said they were invalid.


Dynamic content only shows a SharePoint value named "Full Path" which I'm guessing isnt the same.

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

Those are coming from the body of your Filter Array action and originally from your Get files action. Display names of those properties are Full Path and Folder Path 😁

 

FullPath_Path_properties_movefolder02.gif

 

 

After saving your flow, navigating away from it and opening it again you should see that Microsoft also updated the icons and only shows the internal names. 

 

save_openagain.png

 

Btw, I just noticed that the filter array doesn't exclude the already moved folders in Sent. So, that expression probably should be adjusted to something like below:

@and(and(not(equals(item()?['{Path}'], 'Weekly Folders/Hub Two/Sent/')),equals(item()?['{IsFolder}'], true)), not(equals(item()?['{Name}'], 'Sent')))

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

I just saw the last bit about the filter array maybe being incorrect.

 

When I run this flow I get this error message:

 

sudosaurus_0-1646260651257.png

This is essentially my folder structure:

sudosaurus_1-1646260687949.png

and the folders did manage to move from the Skypark Hub folder to the Sent folder.

sudosaurus_2-1646260723353.png

However no other folders in the Tolvdaddon Hub or Worle Hub folders were moved.

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

I see you have a nested loop. In my example setup the archive flow only had three steps and no nesting.

 

Btw, in an earlier reply I only targeted the Get files to one specific hub folder, but now the limit entries is looking at the root.

 

wholesetup_archive.png

 

Looking at your screenshot with the error it looks like our filter expression is still missing some things. I would have expected 15 items instead of 6 in the second loop. It is probably not excluding or including everything it should.

 

What I have done so far in my example is the following 6 criteria in the Filter Array:

- IsFolder is equal to true

- {Name} is not equal to Sent

- {Path} (Folder Path) is not equal to 'Weekly Folders/'

- {Path} (Folder Path) is not equal to 'Weekly Folders/Hub One/Sent/'

- {Path} (Folder Path) is not equal to 'Weekly Folders/Hub Two/Sent/'

- {Path} (Folder Path) is not equal to 'Weekly Folders/Hub Three/Sent/'

 

Putting that together in one expression would be this:

@and(and(and(and(and(not(equals(item()?['{Path}'], 'Weekly Folders/Hub Two/Sent/')),equals(item()?['{IsFolder}'], true)), not(equals(item()?['{Name}'], 'Sent'))), not(equals(item()?['{Path}'], 'Weekly Folders/'))),not(equals(item()?['{Path}'], 'Weekly Folders/Hub One/Sent/'))),not(equals(item()?['{Path}'], 'Weekly Folders/Hub Three/Sent/')))

 

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

Hi @Expiscornovus 

 

So, I have updated my filter array with the above and changed Hub One, Hub Two and Hub Three to the folders at my end.

 

However I still get the same error as before.

 

I tried putting the "Move folder" action directly into the main "Apply to each" section however when I add the Full Path and Folder path values, it creates a new "Apply to each".

 

sudosaurus_0-1646303846665.png

 

Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

I would delete both apply to each actions and start fresh with that part of the move folder setup.

 

You can avoid this setup by using the exact order of steps from the gif I shared earlier. That should prevent it from going into a second nested loop 😁

 

1. Place a Move folder action directly under the Filter Array

2. Add the Full Path & Folder Path fields to the Move Folder action.

3. This should place the move file in the one (and only) apply to each loop

4. Replace the value field by the body from the Filter array action in the Select an output from previous steps field.

 

FullPath_Path_properties_movefolder02.gif



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

Hi @Expiscornovus 

 

The flow is now successfully running however it's only doing it on one of the Hub folders.

The other two are not being processed.

 

@and(and(and(and(and(not(equals(item()?['{Path}'], 'Weekly Folders/Skypark Hub/Sent/')),equals(item()?['{IsFolder}'], true)), not(equals(item()?['{Name}'], 'Sent'))), not(equals(item()?['{Path}'], 'Weekly Folders/'))),not(equals(item()?['{Path}'], 'Weekly Folders/Tolvaddon Hub/Sent/'))),not(equals(item()?['{Path}'], 'Weekly Folders/Worle Hub/Sent/')))
Expiscornovus
Super User
Super User

Hi @sudosaurus,

 

I see you still have my library name (Weekly Folders) in your expression. In your setup it was Post, correct?

 

Try this instead:

@and(and(and(and(and(not(equals(item()?['{Path}'], 'Post/Skypark Hub/Sent/')),equals(item()?['{IsFolder}'], true)), not(equals(item()?['{Name}'], 'Sent'))), not(equals(item()?['{Path}'], 'Post/'))),not(equals(item()?['{Path}'], 'Post/Tolvaddon Hub/Sent/'))),not(equals(item()?['{Path}'], 'Post/Worle Hub/Sent/')))

 

Can you also share a screenshot of your Get files (properties only action)? I want to double check what  configuration you are using over there.



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


sudosaurus
Post Prodigy
Post Prodigy

HI @Expiscornovus ,

 

This is now working correctly.

 

I realised that I had the folders limited to /Post/Skypark Hub/ in my Get files action.

I've now changed this to /Post/ and the flow works correctly through all the folders.

 

Thanks 🙂

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
Top Kudoed Authors
Users online (2,332)