Resources

BC Model Accelerator

Auto-generated SQL views with surrogate keys for every BC table relationship. Multi-company by default.

Business Central Model Accelerator

BC2Fab mirrors your BC data reliably to Fabric — but raw BC data isn't analytics-ready yet. The Model Accelerator auto-generates SQL views with surrogate keys for every BC table relationship. Multi-company by default.

⚙️ Surrogate Keys 🤖 Agent Ready 🏢 Multi-Company

BC's Data Model Wasn't Designed for Analytics

Common challenges when building reports directly on mirrored BC data.

🔑

Composite Primary Keys

Highly relevant BC tables like Sales Line use compound keys. In multi-company models every relationship is composite.

🔗

Conditional Foreign Keys

Fields like No. on Sales Line point to Item, Resource, or G/L Account depending on Type — no single join path.

⚙️

Manual Modeling Overhead

Many projects start with writing CONCAT or Power Query concatenations for dozens of key and FK fields.

🤖

AI Agents Can't Navigate

Copilots and agents need explicit, joinable ID columns with consistent naming to traverse tables autonomously.

The Next Step — Business Central Model Accelerator

Auto-generated SQL views with surrogate keys for every BC table relationship. Multi-company by default.

Closing the gap from raw mirrored data to analytics-ready models.

Three-Step Pipeline

How the Model Accelerator transforms raw mirrored data into an analytics-ready silver layer.

🗄️
1 Landing Zone
bc schema — raw mirrored BC tables via Open Mirroring
↓
⚙️
2 Metadata Engine
Reads BC key & relation metadata, generates surrogate key logic per table
↓
👁️
3 Silver Views
bc_silver schema — all original columns plus generated ID columns. Clear BC names preserved: Sales Line, Discount %, No_ (no _ substitutions).
✓ CREATE OR ALTER VIEW — idempotent
✓ Deterministic, stable IDs
✓ Conditional FKs via CASE WHEN

Sales Line → Item & Resource

One example of many: Sales Line gets Item ID (No.) and Resource ID (No.) based on Line Type. IDs include the company prefix (e.g. CRONUS|) for multi-company support. Same pattern for G/L Accounts, Fixed Assets, etc.

Power BI model view showing Item, Sales Line, and Resource with generated surrogate key relationships

Power BI model view — Item ID (PK) → Item ID (No.) and Resource ID (PK) → Resource ID (No.) as single-column relationships, Direct Lake compatible.

bc_silver — generated ID columns
ItemItem ID (PK)PKCRONUS|ITEM-X100
ResourceResource ID (PK)PKCRONUS|RES-50
…
Sales LineSales Line ID (PK)PKCRONUS|Order|1001|10000
Sales LineItem ID (No.)FKCRONUS|ITEM-X100 (Type = Item)
Sales LineResource ID (No.)FKCRONUS|RES-50 (Type = Resource)

Agents Can Navigate the Data Autonomously

Consistent ID column naming across all views lets an agent scan for columns containing Customer ID to find every referencing table.

🤖 "Give me a 360° view of customer C-20000"
↓
Agent scans bc_silver for columns containing Customer ID →
✓Sales HeaderCustomer ID (Sell-to Customer No.)
✓Sales LineCustomer ID (Sell-to Customer No.)
✓Sales Invoice HeaderCustomer ID (Sell-to Customer No.)
✓Cust. Ledger EntryCustomer ID (Customer No.)
✓Service HeaderCustomer ID (Customer No.)
…
✓Custom Warranty ClaimscustomCustomer ID (Customer No.)
✓Custom Loyalty PointscustomCustomer ID (Member No.)

Clear BC names preserved (e.g. Discount %, not Discount_Pct). Consistent ID columns make autonomous discovery trivial.

An Analytics-Optimized Silver Layer

What the Model Accelerator delivers for your Power BI reports and AI agents.

👁️

Power BI Ready

Single-column surrogate IDs for all table relationships. Direct Lake compatible. No DAX workarounds.

🤖

AI & Agent Ready

Consistent ID naming lets agents discover and traverse table relationships — including custom tables.

⚙️

Zero Maintenance

Views automatically adjust when schemas in BC change. No manual intervention required.

✓ Standard + custom tables
✓ Composite keys resolved
✓ Conditional FKs handled

How to Create the Silver Layer

Generate all bc_silver views in three steps directly from the BC2Fab workload.

🧩
1 Open BC2Fab Workload
Navigate to the BC2Fab workload in your Microsoft Fabric workspace.
↓
⭐
2 Generate Silver Layers
On the Ribbon, under Premium, click Generate Silver Layers. The Metadata Engine reads your BC key & relation metadata and generates all SQL views automatically.
↓
🔍
3 Explore in the SQL Endpoint
Open the BC2Fab Mirroring database and locate the bc_silver schema in the SQL Endpoint. You will find one view per mirrored table, each containing all original columns plus the generated ID columns.
✓ One view per mirrored table
✓ All original columns preserved
✓ Additional surrogate ID columns generated

💡 Schema changes? Whenever your BC schema changes — such as when new endpoints are added or existing tables are updated — simply rerun Generate Silver Layers to refresh all views in the bc_silver schema.

💡 SQL Endpoint not showing the new schema? In the SQL Endpoint a metadata refresh may be required — click the Sync metadata button to make the updated bc_silver schema visible.