Showing results for 
Search instead for 
Did you mean: 
Responsive Resident
Responsive Resident

Set variable in forall

It looks like its not possible to set a variable in a forAll() loop.  Any way around this?


My overall problem is SQL Server API limitation.  I am running into too many records to patch for the 100 API calls per 10 seconds.  I wanted to try and create a large SQL statement and then run that with Flow.  


Within my forall() loop my plan was to append onto a string variable for each record in the collection.  


Thank you!VarInLoop.PNG

Community Support
Community Support

Hi @samuelJ ,

Do you want to set a variable within a ForAll function?


Setting a variable within a ForAll function is not supported within PowerApps currently. If you would like this feature to be added in PowerApps, please submit an idea to PowerApps Ideas Forum:


As an alternative solution, I think collection could achieve your needs. On your side, you could consider use Collection to store the string value instead of the Set function. Please consider take a try with the following workaround:

       Collect(SQLStatementCollection, "abc")

If you want to concat these values within the SQLStatementCollection using a space (' '), please use the following formula (set Text property of a Label to following😞

Concat(SQLStatementCollection, Value & " ")


In addition, if you want to store the column value from your toUpdateSmall collection into the SQLStatementCollection, please modify above formula as below:

       Collect(SQLStatementCollection, ColumnNameFromtoUpdateSmall)

Please consider take a try with above solution, check if the issue is solved.


Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Not applicable

This would be extremely helpful to implement, as I was trying to use a ForAll last week to loop through the values in a collection to Set variables attached to the Default properties of various input text boxes, using Switch expressions.




     Switch (

          collectionName.key1 = val1, Set(defaultInput1, collectionName.key1),

          collectionName.key2 = val2, Set(defaultInput2, collectionName.key2),

          collectionName.key3 = val3, Set(defaultInput3, collectionName.key3)




I was attempting the above to load data from my collection into input text / numeric boxes in the OnVisible screen event so a user could read the previously saved data and be able to update it. I'm still looking for a workaround..

I'm having the same issue as well. Were there any solution/update to this?

Advocate II
Advocate II

It's a bit of a pain not having access to variables in a ForAll but using a collections works well - though it does make the "code" a bit more difficult to read.  This is how I do it:


Add a line to the Form OnVisible to reset the collection (unless you're using the variable like a Global in which case put it in the App OnStart)

ClearCollect(colVariables, {colvarVariableOne:""});


Then to read the value use



And to set the value use:

Patch(colVariables, First(colVariables), {colvarVariableOne:"NEW VALUE"});


One thing that can catch you out is that collection column types are set when the collection is initiated so set the default value to be of that type.  For example to create a datetime column use:

ClearCollect(colVariables, {colvarHoliday:DateTimeValue("01/01/2000 00:00"});


Helpful resources

UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Power Apps Community Call Jan. 2022 768x460.png

Power Apps Community Call

Please join us on Wednesday, January 19th, at 8a PDT. Come and learn from our amazing speakers!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Top Solution Authors
Top Kudoed Authors
Users online (2,377)