How to update multiple records in a model-driven app grid using Power Fx commanding
If you wanted to add a button to a command bar to perform an update on multiple records in a grid, you can easily create a formula that results in slow performance caused by multiple grid refreshes. This post outlines, the most performant way of applying updates to multiple records from a Power Fx command button.
Step 1 - Add your button
Inside the modern command bar editor, add a button to the Main Grid or Sub Grid command bars of the Account entity.
Step 2 - Set the Visibility rule
Any buttons on a grid that apply to selected records will only become visible if you provide a visibility rule.
Select the Visibility property, and select Show on condition from formula.

In the formula bar at the top, enter the following:
!IsEmpty(Self.Selected.AllItems)
Step 3 - Add the command formula
Select the Action of the button, and select Run formula.

In the formula bar at the top, enter the following:
// Paralle Updates
Patch(
Accounts,
ForAll(Self.Selected.AllItems,
{
Account:ThisRecord.Account,
'Credit Hold':'Credit Hold (Accounts)'.Yes
}
)
)
Note: If you are adding a button for a different entity, you will need to change the table name (Accounts) and primary key column name (Account).
Step 4 - Save and Publish, then Play your app!
The changes will take a short while to appear in your app. You will see a message similar to the following when the changes are ready:

Parallel vs Sequential Patches
If you used the following formula, it would result in multiple grid refreshes since the Patches will be done in sequence.
// Sequential Updates
ForAll(Self.Selected.AllItems,
Patch(
Accounts,
ThisRecord,
{ 'Credit Hold':'Credit Hold (Accounts)'.No }
)
);
Using the parallel version above instead of this sequential one will try and perform as many parallel updates as the browser can handle. This is due to the limited number of HTTP requests that can be sent simultaneously from the browser.
You can see in the timeline below, that only 6 parallel requests are in progress at once.

Despite this, this technique will be considerably more efficient than performing the updates sequentially, and the grid will only be refreshed the once, instead of with each record updated.
Published on:
Learn moreRelated posts
Tips to Export Data To Data Lake From MS Dynamics 365 CE And Use It In Power BI.
Integrating Dynamics 365 with Azure Data Lake allows you to continuously sync operational data for cost-effective big data analytics, AI workl...
Copilot Cowork and Dynamics 365 Customer Engagement: What It Means for Sales and Service Teams
Microsoft’s Copilot Cowork update matters because it moves AI closer to daily sales and service work inside Dynamics 365. Sellers, service man...
Beyond Attribution: Pipeline Intelligence from Marketing Activities with Dynamics 365 CE/CRM and Power BI
At New Dynamic, a marketing reporting project evolved into something much larger. What began as an effort to better understand marketing activ...
Why Solution Structure Determines Whether Microsoft Dynamics 365 Customer Engagement Environments Scale Successfully
Many Microsoft Dynamics 365 Customer Engagement environments do not become difficult overnight. The friction builds gradually. Deployments req...
The Revenue Leak Your Dynamics CRM Cannot See
Key Takeaways: 1. The biggest revenue loss in field sales is invisible. It never shows up in a report; it's the nearby visit a rep never knew ...
What Are Power Fx Functions And How Do They Work With Power Apps?
When you build an app in Microsoft Power Apps, the screen layout is only the visible part. The real behavior of the app depends on the logic b...
AI Agents in Microsoft Power Platform: Where Custom Agentic CRM Fits in Dynamics 365 Customer Engagement
In many CRM planning conversations right now, AI agent discussions are starting before organizations have fully aligned governance, integratio...
Business Process Flows in Dynamics 365 CE
Let’s look back at an oldie but a goodie in Dynamics 365 CE/CRM: Business Process Flows! These are designed to standardize how records m...
20 Most Commonly Used JavaScript Scenarios with Sample Code Snippets in Form Script – Dataverse / Dynamics 365 CE
JavaScript plays a critical role in Microsoft Dataverse and Dynamics 365 Customer Engagement (CE) applications. While Power Automate and Busin...
Dynamics 365 CE and Power Platform Developer Syllabus
Extensive & Advanced Syllabus for Power Platform & Dynamics 365 CE If you want to become an expert in Microsoft Power Platform and Dyn...