cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Advocate II
Advocate II

UpdateIf in ForAll-Loop not working

Hi,

 

I am trying to update multiple items in a sharepoint list with the values of a collection.

 

The collection is called "Customers_Offline_Delete"

The sharepoint list is called "Customers"

 

Unfortunately the sharepoint list is not being updated.

 

Additional note: The column "To_Be_Deleted" was added to the sharpoint list after it was initially created (just in case this might cause the issue).

 

ForAll(
    Customers_Offline_Delete;
    UpdateIf(
        Customers;
        Customers_Offline_Delete[@ID] = ID;
        {To_Be_Deleted: To_Be_Deleted}
    );;
);;

 

Any help is appreciated. Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Community Support
Community Support

Hi @Lukas1 ,

Do you want to multiple records in your SP List based on your Collection data?

Could you please share a bit more about the "To_Be_Deleted" column in your SP List? Is it a Yes/No type column?

 

Firstly, if you added a new column to your SP List after it was initially created, please consider refresh the SP list data source in your app manually.

 

Based on the formula you provided, I think there is something wrong with it. Actually, I think the combination of ForAll function and Patch function could achieve your needs.

I have made a test on my side, please consider take a try with the following workaround (If there is also a "To_Be_Deleted" column in your Customers_Offline_Delete collection😞

Refresh(Customers);;
ForAll(
      Customers_Offline_Delete;
      Patch(
               Customers;
               LookUp(Customers; ID = Customers_Offline_Delete[@ID]);
               {
                 To_Be_Deleted: Customers_Offline_Delete[@To_Be_Deleted]   // I assume that there is also a "To_Be_Deleted" column in your Customers_Offline_Delete collection
               }
     );;
);;

 

If the "To_Be_Deleted" column is a Yes/No type column in your SP List, please consider modify above formula as below:

Refresh(Customers);;
ForAll(
      Customers_Offline_Delete;
      Patch(
               Customers;
               LookUp(Customers; ID = Customers_Offline_Delete[@ID]);
               {
                 To_Be_Deleted: true    // Update SP list records' To_Be_Deleted column to true
               }
     );;
);;

 

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

3 REPLIES 3
Super User III
Super User III

@Lukas1 

I have 2 ideas for you to try:

 

#1:  Maybe there are no matches here because you are asking is a Table datatype equal to a Number datatype.

 

Customers_Offline_Delete[@ID] = ID;

 

Instead you should ask is the Number datatype IN the Table datatype

 

ID in Customers_Offline_Delete[@ID];

 

#2:  The 3rd argument of UpdateIf is replacing a column value with itself.

 

{To_Be_Deleted: To_Be_Deleted}

 

Perhaps instead you wanted to mark this as true (guessing you are using a yes/no column here).

 

{To_Be_Deleted: true}

 

---
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up."

 

Community Support
Community Support

Hi @Lukas1 ,

Do you want to multiple records in your SP List based on your Collection data?

Could you please share a bit more about the "To_Be_Deleted" column in your SP List? Is it a Yes/No type column?

 

Firstly, if you added a new column to your SP List after it was initially created, please consider refresh the SP list data source in your app manually.

 

Based on the formula you provided, I think there is something wrong with it. Actually, I think the combination of ForAll function and Patch function could achieve your needs.

I have made a test on my side, please consider take a try with the following workaround (If there is also a "To_Be_Deleted" column in your Customers_Offline_Delete collection😞

Refresh(Customers);;
ForAll(
      Customers_Offline_Delete;
      Patch(
               Customers;
               LookUp(Customers; ID = Customers_Offline_Delete[@ID]);
               {
                 To_Be_Deleted: Customers_Offline_Delete[@To_Be_Deleted]   // I assume that there is also a "To_Be_Deleted" column in your Customers_Offline_Delete collection
               }
     );;
);;

 

If the "To_Be_Deleted" column is a Yes/No type column in your SP List, please consider modify above formula as below:

Refresh(Customers);;
ForAll(
      Customers_Offline_Delete;
      Patch(
               Customers;
               LookUp(Customers; ID = Customers_Offline_Delete[@ID]);
               {
                 To_Be_Deleted: true    // Update SP list records' To_Be_Deleted column to true
               }
     );;
);;

 

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

Thank you both!

 

@v-xida-msft, I was able to fix it by using: 

To_Be_Deleted: Customers_Offline_Delete[@To_Be_Deleted]

instead of

To_Be_Deleted: To_Be_Deleted

 

"Patch" and "UpdateIf" are both working fine now. Which one do you recommend in terms of delegation?

 

Thanks a lot!

Helpful resources

Announcements
New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

Power Apps Community Call

Power Apps Community Call: February

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

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

Top Solution Authors
Top Kudoed Authors
Users online (76,997)