alle Technical posts

Logic Apps foreach limits

Lately, I was working on a proof of concept on Logic Apps. I created a Logic App that looped over all files in a specific folder and processed them. I was curious about the performance, so I copied 10.000 files in the folder. The Logic App kicked off and started processing them. After a while the Logic App ended up in a failed state. Let's have a look what happened.

Apparently, I stumbled upon a limitation that is documented over here.
For Each - 03

The documentation suggests to use the query action to filter arrays.  It offers the following capabilities:
For Each 01

You can indeed filter an array, based on a specific query.  However, I did not have an object available that contains the position of an item within the array.  I wanted assurance that I would not hit the for each limit, so this was no option.  If you know a way how to get the position within the array, please let me know via the comments sections below.

I continued my search within the Logic Apps Workflow Definition Language and found the @take function.  This is what the documentation states:
For Each - 04

This did the trick. It takes the first 5000 items from an array. Luckily, you do not get an out-of-range exception if the incoming array contains less items!
For Each 02

It’s always a good practice to validate your design upfront against the Logic Apps limits.

Hope this helps!
Toon

Melden Sie sich zu unserem RSS-Feed an