Forum Discussion

Marcin_'s avatar
Marcin_
New Member
1 year ago
Solved

Business Central and Power BI loading data

I’m using Business Central Cloud version and Power BI Desktop.   1.When I create report in Power BI from tables like General Ledger Entries on Item Ledger Entries then the performance is very poor....
  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi Marcin_,

    Thanks for reaching out to the Microsoft fabric community forum.

    Yes, you’re right, these tables can get quite large, and loading them into Power BI will lead to poor performance.

    While Power BI lets you apply filters in the Power Query Editor (like on Posting Date), these filters typically apply after data is loaded from the source. Unfortunately, the default Business Central OData feeds don’t support query folding well enough to push those filters back to the server. So, filtering in Power BI does not reduce the data actually pulled from BC, it just trims it after it’s already been loaded.

    To really limit the data before it gets into Power BI, the best approach is to create a custom API page or query in Business Central. You can design it to expose only the fields you need and include filter parameters like Posting Date. Then, publish that as an OData feed and connect Power BI to it. This gives you true server-side filtering and much better performance.

    If you're working in Power BI Service (Pro or Premium), you could also look at Incremental Refresh, but this only works if your data source supports query folding, which again isn’t fully reliable with standard BC OData. Custom APIs are a safer bet.

    The internal table structures of BC, can be really tough to identify which table is which when loading them into Power BI.

    Microsoft does provide an official list of standard APIs here:

    API (v2.0) for Dynamics 365 Business Central - Business Central | Microsoft Learn

    But this list doesn’t include all the internal tables like Item Ledger Entry or General Ledger Entry by default, those are typically exposed only if someone has published them through the Web Services page in BC.

    If you go to Business Central -> Web Services, you’ll see which tables (pages or queries) are currently published as OData feeds. You can also publish additional ones yourself. That’s the easiest way to make specific BC tables available for Power BI and to see the field names as they’ll appear in your Power BI queries.

     

    If I misunderstand your needs or you still have problems on it, please feel free to let us know.  

    Best Regards,
    Hammad.
    Community Support Team

     

    If this post helps then please mark it as a solution, so that other members find it more quickly.

    Thank you.