This post is all about unnecessarily complicated data structures like nested arrays with a single item in them.
How often do you see data like this coming out of an action in Microsoft Flow where an array has a single item with another array:
[ [ { "key1": "value 1", "key2": "value 2" }, { "key1": "value 3", "key2": "value 4" } ] ]
So often I see people getting the following error:
InvalidTemplate. Unable to process template language expressions in action ‘Compose’ inputs at line ‘1’ and column ‘2469’: ‘The template language expression ‘items(‘Apply_to_each’)?[‘key1′]’ cannot be evaluated because property ‘key1′ cannot be selected. Array elements can only be selected using an integer index. Please see https://aka.ms/logicexpressions for usage details.’.
What does this error mean?
Obviously, you only wanted to get the Key1’s value from the array and you start to think, why doesn’t this just work?
Did you notice in the data that there were two square brackets around the item?
In my case there will only be 1 array of arrays and therefore I can select just the first item. We need to have a look at my overall flow here.
The apply each is taking my nested array and the apply to each still has to handle the inner array.
Therefore rather than using outputs(‘Compose_2’) I could be using outputs(‘Compose_2’)[0] to get to my array of items. Alternatively, you can also use the first() function
first(outputs('Compose_2'))
Is there a difference between calling Microsoft Graph Endpoints using an HTTP action or creating…
Last week Shane Young asked me about calculating the Sum for a SharePoint column in…
In Power Apps when you do a Patch to create a new item or to…
Getting started with adaptive cards can be difficult. In this post i have written some…
In this post I will look at how to create PDF documents from data. Use…
We all know this problem, you have a nested array in Power Automate but how…