Skip to main content

Notifications

Community site session details

Community site session details

Session Id : 1ZRqsUy9rWqZk/JR5W2ltJ
Power Automate - Building Flows
Unanswered

Split array into multiple equal divided arrays

Like (0) ShareShare
ReportReport
Posted on 24 Mar 2021 15:31:45 by 79

Hope one can help me out here.

 

Current situation: I collect SharePoint list items using a SharePoint HTTP request action and returns around 3000 items. All those items are updated based on several conditions, which is causing the current flow to run more than 2 to 3 hours daily.

 

To be situation; I want to split the total items returned in x-number of equal divided arrays and process them simultaneously. For example, I have 3000 items and want to have them processed in 5 simultaneous threads of each 600 items. Where thread 1 holds the first 600, thread 2 the next 600, and so on...

 

As a starting point I used the solution of Paul Murana on this blog post, which is quite close to what I want to achieve. When I adjust it to the list and queries, I want to use, the items in the different threads are far from equal. One holds 500 items while the other holds 1700 items.

 

If more info is required, please reach out!

 
 
 
 
  • BenVdP Profile Picture
    79 on 26 Mar 2021 at 09:22:40
    Re: Split array into multiple equal divided arrays

    Hi @Paulie78 ,

     

    Actually, it does! The only thing is now, can I get this to work in a dynamic way? Currently I have a for each action for each thread. But ideally I would like to have it in such a way as the 'Each thread' action in your solution. Is that possible?

     

    ConcurrentThreads.png

  • Paulie78 Profile Picture
    8,407 Super User 2025 Season 1 on 24 Mar 2021 at 16:51:42
    Re: Split array into multiple equal divided arrays

    I wrote that article 😃

    You could use the skip and take methods to create a different approach. So it would be like this:

     

    First section: take(arrayname, 600)

    Second section: take(skip(arrayname, 600), 600)

    Third: take(skip(arrayname, 1200), 600)

    and so on

     

    This would remove the guessing tactic that I used in that blog post. Does that make sense?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge Winners! 🌸

Congratulations to all our community participants!

Warren Belz – Community Spotlight

We are honored to recognize Warren Belz as our May 2025 Community…

Congratulations to the April Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard > Power Automate - Building Flows

#1
David_MA Profile Picture

David_MA 161 Super User 2025 Season 1

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 148 Super User 2025 Season 1

#3
stampcoin Profile Picture

stampcoin 139

Overall leaderboard
Loading started