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

Loop trough a list in all subsites and update them according a parent site list

Hi all,

I am new in Power Automate and SharePoint. Apologies in advance if my cry for help seems a bit basic...

 

I am trying to update a specific list that is in all my subsites, according a master list that is based in my parent site. Both lists (parent and subsites) have the same columns and the idea is to have the same information always, and that the subsite lists get updated whenever an new item is created or modified at the parent list.

 

Basically I just want to make a copy of the parent list to all my subsites, but I can't find a way to do it via Power Automate and so far I couldn't find an explanation to it.

 

Cheers!

2 ACCEPTED SOLUTIONS

Accepted Solutions
v-litu-msft
Community Support
Community Support

Hi @evaristo,

 

OK, according to your description, I create a Flow as below could update subsites list when parent site list is updated.

1. Trigger is When an item is created or modified, site address is parent site.

2. Initialize an array variable to store all subsites, in my Flow, I only put one.

3. Create an Apply to each action to loop all subsites, then Use Get items action to get current subsites list items that InstanceNumber equals to parent's.

InstanceNumber eq '@{triggerOutputs()?['body/InstanceNumber']}'

4. Create a Condition action and use length() function to check if the return items number, if it is 0, means the subsites has no item related with the modified item, then do nothing; Or go to Apply-to-each-2 action and update these items(normally one item return).

5. Update item, subsite address append current subsite, id append id Get items ID:

item()?['ID']

item is key-values that you need to update, for example, I just update two columns, you can add more depends on your requirement:

{
"Title": "@{item()?['Title']}",
"RequestType": "@{item()?['RequestType']}"
}

Screenshot 2021-03-10 155935.jpg

 

Screenshot 2021-03-10 160005.jpg

 

Screenshot 2021-03-10 160120.jpg

   

 

Best Regards,
Community Support Team _ Lin Tu
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

My solution (SEND AN HTTP REQUEST TO SHAREPOINT) already creates an array with all the subsites, although I am getting all the subsites and not the ones with the specific list.

My struggle is to:

1. Get only the subsites that have a specific list

2. Populate each subsite with the information from parent site list but filtered by the subsite name (project code).

 

NOTE: The parent site list has a column called PROJECT CODE and the values in this list are the ones from the subsite names.

 

Anyone who can help me with this? I can't find a way and I believe a LOT of people will seek this feature.

 

Many thanks!

 

View solution in original post

10 REPLIES 10
v-litu-msft
Community Support
Community Support

Hi @evaristo,

 

Could you please share an instance of the Parent list and Subsites?

For example, you could show columns in SharePoint, associated columns between these sites.

 

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hello,

sorry not have posted an example with the columns. I thought it was irrelevant.

 

Parent > Child subsites

 

Parent site:

/customers

 

Child subsites: 

/customers/projectA

/customers/projectB

...

/customers/ProjectZ

 

The columns are:

 

Instance Number (unique value)

Request Type (single text)

Project Code (single text)

Description (Multiple lines text)

Date

 

Regards

 

 

v-litu-msft
Community Support
Community Support

Hi @evaristo,

 

OK, according to your description, I create a Flow as below could update subsites list when parent site list is updated.

1. Trigger is When an item is created or modified, site address is parent site.

2. Initialize an array variable to store all subsites, in my Flow, I only put one.

3. Create an Apply to each action to loop all subsites, then Use Get items action to get current subsites list items that InstanceNumber equals to parent's.

InstanceNumber eq '@{triggerOutputs()?['body/InstanceNumber']}'

4. Create a Condition action and use length() function to check if the return items number, if it is 0, means the subsites has no item related with the modified item, then do nothing; Or go to Apply-to-each-2 action and update these items(normally one item return).

5. Update item, subsite address append current subsite, id append id Get items ID:

item()?['ID']

item is key-values that you need to update, for example, I just update two columns, you can add more depends on your requirement:

{
"Title": "@{item()?['Title']}",
"RequestType": "@{item()?['RequestType']}"
}

Screenshot 2021-03-10 155935.jpg

 

Screenshot 2021-03-10 160005.jpg

 

Screenshot 2021-03-10 160120.jpg

   

 

Best Regards,
Community Support Team _ Lin Tu
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

evaristo
Helper I
Helper I

Hi @v-litu-msft ,

thank you for your reply and detailed explanation! It was really a light to me in the middle of this SharePoint / Power Automate world... 🙂

 

I tried to follow your example but by some reason I couldn't get the items copied from parent site to subsites, although I believe I am on the right path and very close to achieve it.

 

The only change I made was the creation of an array with all the subsites I have:

evaristo_0-1615386901144.png

 

I used the following command to get the array of subsites:

 

evaristo_6-1615387187567.png

 

 

evaristo_2-1615386983744.png

 

evaristo_3-1615387017241.png

 

After this I tried your approach, following the steps you describe at your example and just adapting the columns of my list:

 

evaristo_4-1615387072669.png

 

evaristo_7-1615387470104.png

 

I used the folowing to tipify the Item:

 

{
"Title": "@{item()['Title']}",
"RequestType": "@{item()['RequestType']}",
"RequestDescription": "@{item()['RequestDescription']}",
"a87a": "@{item()['a87a']}"
}

 

 

What do you think I did wrong? By the way is it possible to filter the subsite query to get only the projects that I have the site collection that I need to update?

 

Best regards,

evaristo

v-litu-msft
Community Support
Community Support

Hi @evaristo,

 

Which step failed? Could you please share the error details? Thanks.

 

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi @v-litu-msft ,

it didn't fail, but in the last step the results are empty and child lists are not populated.

 

I paste here all the flow results:

 

evaristo_3-1615458700430.png

 

 

evaristo_2-1615458658499.png

evaristo_4-1615458745093.png

evaristo_5-1615458782270.png

evaristo_6-1615458835825.png

evaristo_7-1615458854558.png

 

Best regards

 

Hello,

after some attempts doing what you said and changing some parameters at the way I am creating my array, when I run the flow I get the following error at the last step:

image.png

I guess (but not sure) the problem is because not all the subsites have the destination list... For example the query is giving me an array of 14 subsites, but only 1 has the list that I pretend to populate.

 

Therefore I would like your help to:

 

  1. Filter the SEND AN HTTP REQUEST TO SHAREPOINT function so I can get only an array with the subsites that have the destination list

 

  1. Populate in each destination list only the values where the PROJECT CODE values from the parent list are equal to SITE NAME of each subsite.

 

Do you think it's possible?

 

Once again thanks a lot for your support. If you're available I would more than happier to explain you in a Teams meeting my problem.

 

Best regards

evaristo
Helper I
Helper I

Hello @v-litu-msft ,

sorry to bother you but I think your solution was very close to sort my problem...

Have you seen my latest reply? I have pasted the error that I am getting when I try to run my flow.

Regards,

evaristo

v-litu-msft
Community Support
Community Support

Hi @evaristo,

 

Sorry for reply late.

Filter out subsites is complex but it is possible. You could use the extract the substring of subsites after the "sites/", for example, a subsite is:

https://domain.sharepoint.com/sites/IceCream/watermelon

Use split()  function we could extract the string after "sites/":

split('https://domain.sharepoint.com/sites/IceCream/watermelon','sites/')[1]

 then use split function again to separate it by using "/" and convert the substring "IceCream/watermelon" to an array:

split('IceCream/watermelon','/')

["IceCream", "watermelon"]

Then use length() function to get its length, if its length equals 2, it means it is a subsites.

Then append the subsite into a array variable.

 

Best Regards,
Community Support Team _ Lin Tu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

My solution (SEND AN HTTP REQUEST TO SHAREPOINT) already creates an array with all the subsites, although I am getting all the subsites and not the ones with the specific list.

My struggle is to:

1. Get only the subsites that have a specific list

2. Populate each subsite with the information from parent site list but filtered by the subsite name (project code).

 

NOTE: The parent site list has a column called PROJECT CODE and the values in this list are the ones from the subsite names.

 

Anyone who can help me with this? I can't find a way and I believe a LOT of people will seek this feature.

 

Many thanks!

 

View solution in original post

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

R2 (Green) 768 x 460px.png

Microsoft Dynamics 365 & Power Platform User Professionals

DynamicsCon is a FREE, 4 half-day virtual learning experience for 11,000+ Microsoft Business Application users and professionals.

Top Solution Authors
Users online (1,311)