Forum Discussion
Is There Effective Alternative to Incremental Refresh for Dynamics 365 Business Central Data Source
- 2 months ago
In that scenario, the Historical + Current split approach is probably the most practical option. A common workaround with standard Microsoft Dynamics 365 Business Central APIs is to keep older fiscal years static and refresh only the recent months more frequently, then append the queries together in Power BI.
RangeStart and RangeEnd may still provide some benefit if the Business Central endpoint accepts the date filter, but since query folding is limited, they usually should not be relied on as a fully effective Incremental Refresh solution for large tables like Value Entries or Item Ledger Entries.
For large BC tables, keeping the queries as simple as possible helps the most. Filtering by posting date early, splitting data by year or period, removing unnecessary columns and avoiding heavy Power Query transformations before filtering can help reduce refresh times.
I have seen practical implementations where separate yearly queries or an “Archive + Active” approach were used to keep refresh times manageable without Fabric or SQL staging, though they are not available to me currently to share them. While more manual operationally, it is currently one of the more realistic approaches when limited to standard Business Central APIs and Power BI only.
You can go through below MS docs and discussions though:
Configure incremental refresh for Power BI semantic models - Power BI | Microsoft LearnWeb Service Performance (OData, API, and SOAP) - Business Central | Microsoft Learn
Solved: Business Central and Power BI loading data - Microsoft Fabric Community
Business Central and Power BI: What can you do to make it better?
Hello v-hashadapu ,
Thank you for the clarification.
Unfortunately, the client cannot afford Microsoft Fabric licensing or a separate SQL staging environment. Therefore, I am looking for the most practical workaround using only Business Central and Power BI Pro/Premium capabilities.
Could you please advise on the recommended approach in this scenario?
For example:
1) Is it a good practice to split data into Historical and Current queries (e.g., data before a certain date and recent data) and then append them?
2) Can RangeStart and RangeEnd parameters still provide any benefit with Business Central APIs, even if full query folding is not available?
3) Are there any Microsoft-recommended patterns for handling large tables such as Value Entries, Item Ledger Entries, and G/L Entries without Fabric, SQL staging, or custom APIs?
4) Has anyone successfully implemented a pseudo-incremental refresh approach directly against standard Business Central APIs?
Additionally, have you implemented any such solution in real-world Business Central environments? If so, could you please share the approach that was used?
If there are any Microsoft articles, community forum discussions, blog posts, documentation, sample implementations, or web links that address this challenge for high-volume Business Central tables, I would greatly appreciate those references.
I am specifically looking for proven approaches that help reduce refresh times and improve performance for heavy tables when Fabric, SQL staging, and custom APIs are not viable options.
Thank you for your guidance.
In that scenario, the Historical + Current split approach is probably the most practical option. A common workaround with standard Microsoft Dynamics 365 Business Central APIs is to keep older fiscal years static and refresh only the recent months more frequently, then append the queries together in Power BI.
RangeStart and RangeEnd may still provide some benefit if the Business Central endpoint accepts the date filter, but since query folding is limited, they usually should not be relied on as a fully effective Incremental Refresh solution for large tables like Value Entries or Item Ledger Entries.
For large BC tables, keeping the queries as simple as possible helps the most. Filtering by posting date early, splitting data by year or period, removing unnecessary columns and avoiding heavy Power Query transformations before filtering can help reduce refresh times.
I have seen practical implementations where separate yearly queries or an “Archive + Active” approach were used to keep refresh times manageable without Fabric or SQL staging, though they are not available to me currently to share them. While more manual operationally, it is currently one of the more realistic approaches when limited to standard Business Central APIs and Power BI only.
You can go through below MS docs and discussions though:
Configure incremental refresh for Power BI semantic models - Power BI | Microsoft Learn
Web Service Performance (OData, API, and SOAP) - Business Central | Microsoft Learn
Solved: Business Central and Power BI loading data - Microsoft Fabric Community
Business Central and Power BI: What can you do to make it better?