cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
samuelJ
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

4 REPLIES 4
v-xida-msft
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:

https://powerusers.microsoft.com/t5/PowerApps-Ideas/idb-p/PowerAppsIdeas

 

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:

Clear(SQLStatementCollection);
ForAll(
       toUpdateSmall,
       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:

Clear(SQLStatementCollection);
ForAll(
       toUpdateSmall,
       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.
Anonymous
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.

 

ForAll(

     collectionName,

     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?

HarjitSamra
Advocate I
Advocate I

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

First(colVariables).colvarVariableOne

 

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

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

secondImage

Demo Extravaganza is Back!

We are excited to announce that Demo Extravaganza for 2021 has started!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Power Apps June 2021

June Power Apps Community Call

Did you miss the call? Check out the recording here!

Top Solution Authors
Top Kudoed Authors
Users online (22,172)