Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
I'm working with a large Power BI dataset and would like to refresh only one specific table on demand. Ideally, I want to have a button inside the Power BI report in the Power BI Service (using Power Automate) that triggers the refresh process.
The key requirement is that the updated data from this one table should instantly be reflected in the report visuals, without triggering a full dataset refresh — because the full model is quite large and takes a long time to process.
I've explored using dataflows with Power Automate, but I understand that even if I refresh a dataflow, I still need to refresh the dataset to see updated visuals, which defeats the purpose.
I understand that the Power BI REST API can only trigger full dataset refreshes, so I’ve started looking into using the XMLA endpoint for table-level refresh. However, I’m unsure how to automate this process — ideally via Power Automate with a button in a Power BI Service report which riggers the table-level refresh
Has anyone successfully set up something similar ?
Solved! Go to Solution.
Hi @Resta_899
Yes, what you're aiming to do—refreshing a specific table in a Power BI dataset on demand via a button in the Power BI Service—is indeed possible by combining Power Automate, the XMLA endpoint, and a script (usually TMSL or XMLA commands). You're correct that refreshing a dataflow alone won't update report visuals unless the dataset is also refreshed, and the Power BI REST API doesn't support partial refreshes. However, since you're using a Premium workspace, you can take advantage of the XMLA Read/Write endpoint, which allows for table-level refreshes.
Here's the approach: First, create a Power Automate flow triggered by a Power BI button. In the flow, use an HTTP action or Azure Automation Runbook (or even a PowerShell/Azure Function) that sends a TMSL refresh command via the XMLA endpoint. The TMSL script can be targeted at the specific table you want to refresh, like this:
{
"refresh": {
"type": "full",
"objects": [
{
"database": "YourDatasetName",
"table": "YourTableName"
}
]
}
}
This command can be sent using a PowerShell script via Invoke-ASCmd or Microsoft.AnalysisServices.Tabular libraries, and you can call it using Power Automate's HTTP with Azure AD or Azure Automation. Once the specific table is refreshed, the dataset will reflect the updated visuals immediately on next interaction or automatic re-query by visuals, assuming the model supports query interactivity (e.g., with Import storage mode).
So yes, it’s a bit of an advanced setup, but it’s absolutely feasible. The key components are:
Premium workspace with XMLA endpoint enabled.
A TMSL/XMLA script for partial refresh.
Power Automate triggering a backend process (PowerShell/Azure Runbook/Azure Function) that executes the script.
A Power BI button connected to the flow.
This solution avoids full dataset refreshes and gives you near-instant updates for a specific table—ideal for large models with on-demand refresh needs.
Hi @Resta_899 ,
May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.
Thank you @Poojara_D12 for your inputs.
Thank you.
Hi @Resta_899
Yes, what you're aiming to do—refreshing a specific table in a Power BI dataset on demand via a button in the Power BI Service—is indeed possible by combining Power Automate, the XMLA endpoint, and a script (usually TMSL or XMLA commands). You're correct that refreshing a dataflow alone won't update report visuals unless the dataset is also refreshed, and the Power BI REST API doesn't support partial refreshes. However, since you're using a Premium workspace, you can take advantage of the XMLA Read/Write endpoint, which allows for table-level refreshes.
Here's the approach: First, create a Power Automate flow triggered by a Power BI button. In the flow, use an HTTP action or Azure Automation Runbook (or even a PowerShell/Azure Function) that sends a TMSL refresh command via the XMLA endpoint. The TMSL script can be targeted at the specific table you want to refresh, like this:
{
"refresh": {
"type": "full",
"objects": [
{
"database": "YourDatasetName",
"table": "YourTableName"
}
]
}
}
This command can be sent using a PowerShell script via Invoke-ASCmd or Microsoft.AnalysisServices.Tabular libraries, and you can call it using Power Automate's HTTP with Azure AD or Azure Automation. Once the specific table is refreshed, the dataset will reflect the updated visuals immediately on next interaction or automatic re-query by visuals, assuming the model supports query interactivity (e.g., with Import storage mode).
So yes, it’s a bit of an advanced setup, but it’s absolutely feasible. The key components are:
Premium workspace with XMLA endpoint enabled.
A TMSL/XMLA script for partial refresh.
Power Automate triggering a backend process (PowerShell/Azure Runbook/Azure Function) that executes the script.
A Power BI button connected to the flow.
This solution avoids full dataset refreshes and gives you near-instant updates for a specific table—ideal for large models with on-demand refresh needs.
Hi @Resta_899 ,
Thanks for reaching out to the Microsoft Fabric Community.
You've made a valid observation regarding the limitations of standard dataset refreshes, and it's true that updates made through dataflows are not immediately reflected in report visuals without an accompanying dataset refresh.
As @Deku mentioned, Power BI Premium and PPU workspaces support Enhanced Refresh, which allows you to selectively refresh individual tables or partitions within a dataset. This can significantly reduce refresh time and resource usage compared to a full dataset refresh. In some cases, you may also need to ensure a model recalculation is performed to maintain accurate relationships and calculations after a partial refresh.
To meet your requirement, triggering a refresh for a specific table from a button in the Power BI Service, with immediate visual updates the recommended approach is as follow:
While the refresh can be scoped to a specific table, do note that visuals may not automatically reflect changes unless the report page is refreshed by the user or a mechanism like auto page refresh is used (if supported by your model type).
For detailed guidance on Enhanced Refresh and workspace requirements, you can refer to Microsoft’s official documentation on Datasets - Refresh Dataset In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn.
I hope this will resolve your issue, if you need any further assistance, feel free to reach out.
If this post helps, then please give us Kudos and consider Accept it as a solution to help the other members find it more quickly.
Thankyou.
Thanks for the detailed response — really appreciate it!
Right now, it's super important for us that the data updates immediately. We already run full dataset refreshes overnight since they take quite a bit of time. But the challenge is that the customer wants to see the data reflected (and only for that table) instantly after performing a write-back action. I guess this is not possible atm?
Thank you for your time
Hello @Resta_899 ,
You're absolutely right, while Enhanced Refresh via REST API (available in Premium/PPU) allows you to refresh a single table, Power BI does not currently support instant visual updates in the report after partial refresh unless the page is manually refreshed or auto page refresh is enabled.
If your dataset is in Import mode, visuals won't auto-update post-refresh. For near real-time updates, consider:
Auto Page Refresh (if using DirectQuery or Hybrid Tables),
Or embedding with JavaScript API to programmatically reload the report after the table refresh.
If this post helps, then please give us Kudos and consider Accept it as a solution to help the other members find it more quickly.
Thankyou.
Hi @Resta_899 ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
Thank you.
Hi @Resta_899 ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
Thank you.
With refresh dataset in group you can perform a enhanced refresh, targeting specific tables or partitions. You may been to perform a model recalc to reprocess relationships etc
User | Count |
---|---|
47 | |
31 | |
28 | |
27 | |
26 |
User | Count |
---|---|
57 | |
55 | |
36 | |
34 | |
28 |