Forum Discussion

takui12's avatar
takui12
Helper II
10 months ago
Solved

Power BI Status Update Logic: Seeking Pro-License Solution for "Update In Progress" State

Hello everyone,

I am facing a significant architectural challenge trying to provide users with semi-live feedback on a dataset refresh status within Power BI Service. The goal is to inform users when our main dataset, which takes approximately 60 minutes to refresh, is actively updating.

 

Current Setup & Problem

 

  1. Trigger: A Power Automate button in the report triggers a Flow.

  2. Tracking: The Flow writes the Start_Timestamp to a simple Excel Online table (RefreshStatus).

  3. Logic (DAX): A DAX measure reads this Start_Timestamp and compares it to the Dataset Last Refreshed Date (let's call it End_Timestamp). The formula is essentially: IF(End_Timestamp>Start_Timestamp,"Completed","In Progress").

  4. User Experience: Users must press F5 to see any status change.

 

The Licensing Dilemma

 

My core problem is a Commit Block versus Licensing Constraint:

  1. Single Dataset (Technically Blocked): If I keep the small RefreshStatus table in the same dataset as the main data, the "Update In Progress" status never appears. Power BI Service performs an atomic commit; it holds the entire dataset (including the fast-updating status table) until the full refresh is complete. By the time the data is committed, the status immediately switches to "Completed."

  2. Composite Models (Licensing Blocked): The technical solution is to use two separate Datasets (Main Data + Status Data) and link them using DirectQuery on Power BI Datasets. I have a Premium license, but my colleagues have Pro licenses, and therefore cannot consume the report, as this feature requires Premium/PPU capacity access for all users.

The Ask

 

Is there a Pro-license compatible way to achieve this "semi-live" status update?

  • Can we force the refresh of only the small status table within the main dataset's refresh cycle? (The Power BI API doesn't support this easily for Import Mode).

  • Is there a non-DAX, Pro-compatible workaround that allows a visible text element on the report to update immediately after the Flow runs, circumventing the main dataset's commit block? (e.g., using a reliable SharePoint connection directly on a small, separate data source).

Any guidance or successful patterns for providing true "In Progress" status in a Pro environment would be greatly appreciated!

Thank you!

  • Hi takui12 ,

    Thank you for pointing out the issue. I incorrectly mentioned that a SharePoint Online List could be used in DirectQuery mode. That was an honest oversight because while Power BI supports composite models and DirectQuery over many sources (like SQL, Dataverse and Fabric data warehouses), SharePoint Lists are Import-only. When you connect to them, Power BI always loads the data once at refresh time, with no live query capability.

     

    Given that limitation and with only read access to SQL and no Premium capacity, there isn’t a straightforward way to show semi-live refresh status inside your Power BI report using Pro licensing alone. The best alternatives are to use a Power BI Push/Streaming dataset for status updates, though this has limitations and will be deprecated or to rely on external notification methods like Teams or email alerts from Power Automate. Unfortunately, a fully integrated, instantly updating status inside the report isn’t feasible with current Power BI Pro features and your available data sources.

     

    Create a report on a SharePoint List in Power BI Desktop - Power BI | Microsoft Learn

    Use composite models in Power BI Desktop - Power BI | Microsoft Learn

    Real-time streaming in Power BI - Power BI | Microsoft Learn

9 Replies

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi takui12 , Thank you for reaching out to the Microsoft Fabric Community Forum.

     

    Under Pro licensing, the cleanest way to show semi-live refresh status is to use a composite model. Keep your main dataset in Import mode but connect the small RefreshStatus table via DirectQuery to a lightweight source like a SharePoint list or SQL table. DirectQuery tables refresh live on render, so when Flow writes In Progress, users see it immediately and once the Import dataset finishes, the status flips to Completed. This avoids the atomic commit issue that blocks your current setup and works fully under Pro.

     

    If DirectQuery isn’t an option, you can fall back on a Push dataset, with Flow pushing In Progress and Completed updates. This works in Pro and can be shown via a dashboard tile, but it’s less elegant and Microsoft is phasing out streaming datasets by 2027.

     

    Use composite models in Power BI Desktop - Power BI | Microsoft Learn

    DirectQuery in Power BI: When to Use, Limitations, Alternatives - Power BI | Microsoft Learn

    Composite model guidance in Power BI Desktop - Power BI | Microsoft Learn

    Real-time streaming in Power BI - Power BI | Microsoft Learn

  • Hi takui12 ,

     

    Your “status table in the same dataset” won’t show “In Progress” during a refresh because Power BI commits Import models transactionally—nothing becomes visible until the whole refresh commits. (The REST API even calls the default mode “transactional.”) See Microsoft’s docs on commit modes and enhanced refresh. Refresh Dataset API

     

    The clean way of doing this is to spend money on a Fabric capacity, but here is a workaround I've used in the past. Note this does require powerautomate licensing:

     

     

    1. Move the status store out of the model into a DQ-capable source:
      • Azure SQL Database (easiest) or SQL Server via gateway. Both are DirectQuery sources that Pro can use. DirectQuery overview.
    2. Make a composite model (Import + DirectQuery):
      • Keep your main dataset tables in Import.
      • Add the tiny RefreshStatus table via DirectQuery from SQL. Composite models (Import + DQ from SQL) are Pro-friendly. Composite models.
    3. Wire up Power Automate:
      • Flow step A (from the report button): write start_ts=utcNow() and server_state='InProgress'.
      • Flow step B: Refresh visuals of the active page (Power BI action). This forces the status visual to re-query the DQ table and display “In Progress” instantly - no page F5. References: APR docs, Flow + Power BI blog, MSSQLTips guide.
    4. Show a server-verified state:
      • In the Flow that kicked the dataset refresh, poll Get Refresh History until it returns a terminal state and write that status back to SQL, which your card reads via DQ. Get Refresh History.

    This is the most reliable Pro-only pattern I’ve used to show “Update in progress” within seconds, without violating the Import model’s transactional semantics.

     

    If you found this helpful, consider giving some Kudos. If I answered your question or solved your problem, mark this post as the solution.

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi takui12 , hope you are doing great. May we know if your issue is solved or if you are still experiencing difficulties. Please share the details as it will help the community, especially others with similar issues.

    • v-priyankata's avatar
      v-priyankata
      Community Support

      Hi takui12 

      I wanted to check if you had the opportunity to review the information provided by user. Please feel free to contact us if you have any further questions.

       

      • takui12's avatar
        takui12
        Helper II

        Hi there, thanks for tour replies but even if those solution may works, I don't have access to a sql server to write anything there, only reading, so...

    • takui12's avatar
      takui12
      Helper II

      I've tried but when i select the SharePoint list in pbi, it doesn't give me any direct query option...

      • v-hashadapu's avatar
        v-hashadapu
        Community Support

        Hi takui12 ,

        Thank you for pointing out the issue. I incorrectly mentioned that a SharePoint Online List could be used in DirectQuery mode. That was an honest oversight because while Power BI supports composite models and DirectQuery over many sources (like SQL, Dataverse and Fabric data warehouses), SharePoint Lists are Import-only. When you connect to them, Power BI always loads the data once at refresh time, with no live query capability.

         

        Given that limitation and with only read access to SQL and no Premium capacity, there isn’t a straightforward way to show semi-live refresh status inside your Power BI report using Pro licensing alone. The best alternatives are to use a Power BI Push/Streaming dataset for status updates, though this has limitations and will be deprecated or to rely on external notification methods like Teams or email alerts from Power Automate. Unfortunately, a fully integrated, instantly updating status inside the report isn’t feasible with current Power BI Pro features and your available data sources.

         

        Create a report on a SharePoint List in Power BI Desktop - Power BI | Microsoft Learn

        Use composite models in Power BI Desktop - Power BI | Microsoft Learn

        Real-time streaming in Power BI - Power BI | Microsoft Learn

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi takui12 , Hope you're doing fine. Can you confirm if the problem is solved or still persists? Sharing your details will help others in the community.