cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
altafr
Frequent Visitor

Using an increment within ForALL

Seemingly simple requirement - want to go through a table looking for  a certain ID and then tag a field within the table with values "01" ," 02", "03" based on how many rows. 

 

So first i filtered all rows required in a collection 

ClearCollect(myrows, Filter (mytable, Field = mycondition));

 

The used a forall 

 

ForAll (

myrows,

Patch(

mytable,

mytable.ID = myrows.ID,

{myfield: Text(Index,"00")},

))

 

Now how do i increment the Index so the next record gets patched with 02 in the forall? 

 

alternatively any other way to approach this problem. any advice appreciated. 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
v-xida-msft
Community Support
Community Support

Hi @altafr ,

Do you want to auto-increment the Index value within your ForAll formula?

 

Based on the needs that you mentioned, if you want to auto-increment the Index value within your ForAll formula, I afraid that there is no direct way to achieve your needs.

 

As an solution, I think a collection could achieve your needs. Please consider modify your formula as below:

Clear(TempCollection);
ForAll (
        myrows,
        Collect(TempCollection, 1);
        Patch(
              mytable,
              LookUp(mytable, ID = myrows[@ID]),
              {
                myfield: Text(CountRows(TempCollection),"00")
              }
         )
)

 

Please consider take a try with above solution, then 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.

View solution in original post

2 REPLIES 2
RandyHayes
Super User III
Super User III

@altafr 

 

Give this a try...

 

Clear(myrows);
ForAll(Filter(mytable, Field = mycondition),
    Collect(myrows,
            {myID: ID,
             myIndex: CountRows(myrows)
            }
    )
);

 

Then for your patch:

ForAll (myrows,
   UpdateIf(mytable,
            ID = myID,
           {myfield: Text(myIndex,"00")}
   )
)

 

I hope this is helpful for you.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too!
v-xida-msft
Community Support
Community Support

Hi @altafr ,

Do you want to auto-increment the Index value within your ForAll formula?

 

Based on the needs that you mentioned, if you want to auto-increment the Index value within your ForAll formula, I afraid that there is no direct way to achieve your needs.

 

As an solution, I think a collection could achieve your needs. Please consider modify your formula as below:

Clear(TempCollection);
ForAll (
        myrows,
        Collect(TempCollection, 1);
        Patch(
              mytable,
              LookUp(mytable, ID = myrows[@ID]),
              {
                myfield: Text(CountRows(TempCollection),"00")
              }
         )
)

 

Please consider take a try with above solution, then 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.

View solution in original post

Helpful resources

Announcements
User Groups Public Preview

Join us for our User Group Public Preview!

Power Apps User Groups are coming! Make sure you’re among the first to know when user groups go live for public preview.

Power Apps Community Call

Monthly Power Apps Community Call

Did you miss the call?? Check out the Power Apps Community Call here!

Power Platform ISV STudio

Power Platform ISV Studio

ISV Studio is the go-to Power Platform destination for ISV’s to monitor & manage applications post-AppSource publish.

Top Solution Authors
Top Kudoed Authors
Users online (61,085)