Resources

FAQ

Answers to common questions about operating and extending your BC2Fab deployment.

Contents

How is the data synchronizing working?

  • BC2Fab uses Business Central APIs to extract data from Business Central, i.e. it is pulling instead of pushing data.
  • All queries provided by BC2Fab and generated by the BC2Fab query generator include the hint DataAccessIntent = ReadOnly so data is pulled from the read-only replica. Read-only replicas are available for all production environments. See the DataAccessIntent property for more details.
  • Various performance patterns were used to maximize loading performance, including those described in the Business Central performance guidance.

How to size the Fabric Capacity for the mirroring?

Based on our internal benchmarks and information from clients, BC2Fab is approximately 5 to 10 times more CU-efficient than standard Gen2 Dataflows.

The default usage of incremental refresh minimizes the computational load. For most scenarios aiming for near-real-time synchronization (refresh intervals between 5 to 15 minutes), a Fabric F2 capacity will likely be sufficient for the mirroring process.

Our Recommendation:

  • Start with an F2 Capacity: Configure your desired refresh frequency (e.g., every 15 minutes) on an F2 SKU.
  • Monitor: Use the Fabric Capacity Metrics app to observe consumption and adjust the capacity if necessary

This estimation applies strictly to the mirroring/ingestion process handled by BC2Fab. Any additional workloads—such as heavy SQL transformations, Notebooks, or Power BI reporting running on top of the mirrored data—consume their own Capacity Units and must be factored into your total sizing calculation separately.

What licenses do I need to run BC2Fab?

BC2Fab requires a license for the BC2Fab solution, an active Fabric or Fabric Trial Capacity (F2 or larger), and at least one Power BI Pro or Premium Per User account to manage and share the workspace assets.

How to test BC2Fab?

  • Install the BC2Fab workload.
  • The trial will be activated automatically for 30 days.
  • The trial includes all premium features.

How close to real-time will the data be available in Fabric?

It depends mainly on your refresh frequency and the mirroring ingestion time.

  • With BC2Fab Premium licenses, you can schedule refreshes at high frequency (for example, every 2 or 3 minutes) due to the incremental load that will only load new and changed data. See the section: How do I change the refresh….
  • This incremental load from Business Central typically runs in ~1 minute.
  • The mirroring replication (landing zone → OneLake/Delta) typically takes less than 2 minutes, assuming the Fabric capacity is not throttling/overloaded. (Microsoft Learn)

Microsoft doesn't guarantee a specific mirroring replication delay. They describe mirroring as near real-time and list factors that influence latency. (Microsoft Learn)

In practice, the duration of these steps typically translates to an end-to-end delay from data entry in Business Central to report availability of 5 to 15 minutes for most setups - assuming the reports are using Direct Lake Mode to directly reflect the changed data.

How do I change the refresh time and schedule?

The BC2Fab workload deploys a Fabric pipeline named bc2fab_refresh that orchestrates loads from Business Central into the mirrored database. Scheduling is controlled on that pipeline.

  1. In Microsoft Fabric, open the workspace that hosts the BC2Fab workload.
  2. Select the bc2fab_refresh pipeline and choose Schedule from the command bar.
  3. Adjust the frequency, start time, end time, or deactivate the schedule. For more details, see Scheduled pipeline runs in Fabric.

You can also trigger an on-demand load by selecting Run now on the pipeline whenever you need an immediate refresh.

How do I build Power BI reports on top of the mirrored data?

The mirrored bc2fab_mirror database supports building semantic models in Import or Direct Lake mode. When using Direct Lake, reports stay synchronized without maintaining dataset refreshes.

Direct Lake Mode

  1. Open the Fabric workspace and launch the bc2fab_mirror database to review the synchronized Business Central tables.
  2. From the mirroring experience, choose New > Semantic model, provide a name and select the workspace where the semantic model should be created. Select the mirrored tables that should be part of the semantic model.
  3. Use the web authoring experience to build relationships, DAX measures etc. Changes to the model will automatically be saved to the model in the service.
  4. Build Power BI reports in the service or connect with Power BI Desktop to the Direct Lake Semantic Model.

Import Mode

  1. Open Power BI Desktop.
  2. Select Get data > OneLake catalog.
  3. Select the bc2fab_mirror database in the workspace that was used for mirroring, then choose Connect.
  4. Select the tables that should be loaded.

For more details on creating semantic models in Import or DirectQuery storage modes, see this Microsoft Learn article.

How can I see how up to date the data is?

Use Fabric monitoring tools for transparency of the loading process.

  • The overview on the mirroring database bc2fab_mirror shows the last completed mirroring time for every table so you can see when each dataset finished syncing.
  • All mirrored tables expose a Modified at BC2FAB column that records when each row was last retrieved from Business Central.

Surface those timestamps through T-SQL queries or Power BI reports to get transparency into the freshness of data.

How can I see the number of rows per table (and per table and company) in my mirrored database?

Open the SQL endpoint of the mirroring database (normally called bc2fab_mirror) and run one of the queries below. The SQL query editor is described in this Microsoft Learn article.

How are tables and fields named in BC2Fab?

BC2Fab mirrors Business Central with the same table and field names from Business Central, removing only special characters such as ., ,, and / from table names.

Behind the scenes, BC2Fab aligns API queries with the Business Central field list so objects match their Business Central counterparts—this is ensured for the standard BC2Fab objects and for queries generated with the BC2Fab query generator and facilitates subsequent queries on the data.

How can I use my own endpoints for mirroring?

Custom APIs and tables can be mirrored as long as they expose the Business Central change tracking columns that BC2Fab expects.

Limitation: FlowFields are not fully supported by BC2Fab. FlowFields can slow down loads, and not all FlowField changes are tracked by the incremental load change-tracking mechanism. Instead of exposing FlowFields on mirrored endpoints, expose the underlying fact table and build the calculation in Fabric or Power BI. As a result the BC2Fab query generator does not allow adding FlowFields.

After creating the Queries (e.g. by using the BC2Fab query generator), endpoints for custom tables need to be added to the BC2Fab table config. Once added, they are automatically picked up by the mirroring mechanism—no changes are required in Fabric.

Follow the instructions how to add custom tables.

If custom fields should be added to an existing standard table for mirroring, the Entity Set Name in the existing BC2Fab table config needs to be replaced by the custom API endpoint. To do so the Assist-Edit of the "Entity Set Name" (... in the field) can be used to select the custom endpoint. The other relevant fields (Publisher, Group, API Version) will be set based on this selection.

How can I extend or change the mirrored data after the initial load?

Adding new tables: If you add new tables in BC2Fab Setup in Business Central, they will be picked up automatically and fetched with the next load.

Changing an existing table schema (fields): If you add or remove fields on endpoints that are already being mirrored, go to the BC2Fab workload → Tables tab and use the Reset button for the affected table. The next refresh will reload the table using the updated schema.

Should I limit the columns in my Custom Queries?

No, we recommend including any columns that might be needed for future reporting.

Because BC2Fab is optimized for efficient refreshes (loading only new or changed data), adding extra columns has a minimal impact on compute and storage overhead.

Including these fields upfront ensures that Fabric and Power BI builders can enhance semantic models later without requiring additional changes to the APIs in Business Central.

How can I extend the mirrored data with other data sources?

OneLake lets you combine Business Central data with other sources without copying tables out of Fabric.

For BC2Fab mirrored data, use schema shortcuts as the recommended approach. Schema shortcuts expose the full mirrored schema in a Lakehouse and keep it in sync as new mirrored tables are added over time.

Why schema shortcuts are recommended

  • Automatic table onboarding: when BC2Fab starts mirroring a new table into the mirrored database schema, it automatically appears through the schema shortcut without creating additional shortcuts.
  • No duplicate storage: shortcuts reference OneLake data in place, so you can model and join data without copying mirrored tables.
  • Lower maintenance: you manage one shortcut per schema instead of one shortcut per table.

Prerequisites

  • The target Lakehouse must be schema-enabled.
  • You need permissions on both the source (mirroring database) and the target Lakehouse.

How to create a schema shortcut

  1. Open (or create) a schema-enabled Lakehouse that you use for blended analytics. This lakehouse can be part of the same or a different Fabric workspace.
  2. In the Lakehouse, create a new shortcut and choose the mirrored database schema from bc2fab_mirror as source.
  3. Save the shortcut and verify that the mirrored tables are visible in the Lakehouse.
  4. Use Dataflows Gen2, pipelines, or notebooks to combine BC2Fab tables with other data

Microsoft documentation for this pattern: Lakehouse schemas and schema shortcuts.

How are deleted records handled with incremental loading?

Business Central logs deletions for BC2Fab so incremental loads remove the same rows from the mirrored database.

This targeted logging keeps analytics aligned BC while minimizing data storage and processing overhead.

How do I get notified about load failures?

Monitor pipeline executions in Fabric and trigger notifications when runs fail.

  1. To monitor the recent runs, open the bc2fab_refresh pipeline, go to Run history, and review recent executions for status and duration.
  2. To receive email notifications when refreshes fail, open the bc2fab_refresh pipeline, go to Schedule, and scroll down to the Failure notifications section. Enter the name or email address of the recipient who should receive notifications.

Pipeline Schedule - Failure notifications section showing email input field

How does the loading impact Business Central?

BC2Fab is designed to avoid affecting transactional performance in Business Central.

  • Read-only replica: All data extraction runs against the Business Central read-only replica, so the operational write database remains untouched by analytics workloads.
  • Incremental Loading: Each pipeline run processes only the records that changed since the prior refresh by using Business Central systemRowVersion values, keeping load windows short.
  • API queries only: The integration calls API queries instead of API pages to maximize throughput.

How is the access to Business Central working?

BC2Fab authenticates to Business Central with an Azure AD service principal and stores the credentials securely in Azure Key Vault.

For the installation follow the instructions.

Does BC2Fab support Business Central On-Premise versions?

Currently, BC2Fab does not support Business Central On-Premise versions.

Please tell us about your interest via the contact form.

What needs to be considered when pausing/resuming the Fabric capacity?

Fabric capacities can be paused and resumed manually or resumed automatically (e.g. via Azure Automation Runbooks) to control costs. The BC2Fab loading process will not run while the capacity is paused.

After resuming the capacity, resume the bc2fab_mirror database to restart mirroring. This can be done manually in the mirroring experience (see the Fabric mirroring troubleshooting guidance) or via API by calling the Start Mirroring endpoint.