Link to Microsoft Fabric for D365 F&O: what it does, what it does not, and what you still have to build

Link to Fabric in D365 F&O: what it does, what it doesn't, and what you still build

Link to Fabric for D365 Finance and Operations (F&O) makes your tables available in OneLake. It does not put your trial balance there. Much of what users see on F&O screens is produced by application logic, when the screen opens or in background processes and snapshots, rather than read from one table: aging buckets, trial balance totals by dimension set, inventory value by status, translated currency amounts, and every label on an enum field. This guide covers what the link delivers on day one, what the tables do not carry, four places where the tables and the F&O screen disagree, and what you still have to build. If you are moving from Export to Data Lake, the migration guide covers the schema changes, prerequisites, and cutover plan.

  • A lakehouse and a SQL analytics endpoint. The tables in the lakehouse are shortcuts to a Delta Parquet copy that Dataverse manages in its own storage, in the same region as the environment.
  • Only the F&O tables you choose. Staging, temporary, and del_ tables cannot be added.
  • Data entities, with conditions. An entity comes across only as a Dataverse virtual entity with an mserp_ prefix and row version change tracking turned on. Microsoft’s validation rejects entities that use a group-by, views or nested entities as data sources, one-to-many relations, or exists joins.
  • System tables once a day. The 19 kernel tables, including the ones that hold users, roles, and company access, are refreshed daily rather than incrementally.
  • One workspace per environment. A Dataverse environment links to a single Fabric workspace today.

Do not count on a semantic model. Since September 5, 2025, Fabric no longer creates default semantic models automatically when a lakehouse is created, existing ones were decoupled into independent models by November 30, 2025, and Microsoft’s current setup guide for the link no longer mentions one. Some Power Apps pages still describe a generated dataset and an Auto-create report button, so plan to build the model yourself.

What Microsoft ships ready-made, and what it doesn’t

OptionWhat you getWhat to know
Link to FabricF&O tables in a lakehouse, a SQL analytics endpointNo reports, and no semantic model to rely on
Business performance analytics (BPA)A pre-built dimensional model and Microsoft reports, including balance sheet, profit and loss, budget vs actual, vendor aging, and sales aging; included with the Dynamics 365 Finance licenseKeeps the most recent eight quarters, refreshes twice a day, runs its own pipeline rather than your Link to Fabric tables, and can be shortcut into your Fabric workspace with a downloadable semantic model you can extend
Power BI embedded in F&O workspacesAnalytical workspaces inside the application, built on Entity storeRuns inside F&O on Entity store, separate from your Fabric lakehouse
Microsoft FastTrack samples on GitHubSample SQL views for customers, vendors, products, and sales orders, an enum translation function, and a date table templateSamples, not a supported product; the semantic model module is marked coming soon, and the sample views do not filter soft-deleted rows

What the tables don’t carry

  • Values F&O calculates on the fly. Virtual fields on data entities are computed by X++ code row by row and are not stored, and many form and report fields come from display methods that work the same way. Neither is stored in an F&O table, so syncing the tables does not bring them across.
  • Enum labels. Enum fields arrive as integers; the labels sit in the GlobalOptionsetMetadata table and need a join on entity name, option set name, and option, filtered by language. For extensible enums, the integer values are assigned at deployment and can differ between sandbox and production, so never hard-code them.
  • Readable financial dimensions. Default dimensions on master data and documents are stored as immutable sets in DimensionAttributeValueSet, with one item row per value and no row for a blank. Ledger dimensions on general ledger lines span four tables starting from DimensionAttributeValueCombination, and in a display value such as 145-A, the A can be a department in one account structure and a cost center in another.
  • Report-time currency translation. Financial reporting translates amounts inside the report using a translation type set on each main account (current, average, weighted average, or historical). Those translated figures are calculated, not stored. Reporting currency amounts posted under dual currency are stored on GeneralJournalAccountEntry.
  • Fiscal calendar logic. A closing period copies the dates of an existing period, usually the last period of the year, so a calendar built on dates alone mixes year-end closing entries into the profit and loss.
  • Security. F&O roles and company access do not follow the data; more on this below.
  • History before the link. The initial sync copies each table as it is today, including every historical transaction still in F&O, but no record of how rows changed before the link. General ledger years archived with the GL archive feature leave the live tables, and after a relink to low-latency sync the shortcuts show live data only until Microsoft migrates the retained data.

Four places where the tables and the F&O screen disagree

1. Trial balance

The Trial balance page reads dimension set balances summarized from GeneralJournalAccountEntry and GeneralJournalEntry: DimensionFocusBalance, or, with the dimension set performance feature, GeneralLedgerBalance tables that a background process updates every five minutes by default. On top of those balances it applies parameters the tables do not carry: the posting layer, how opening balances appear, which closing transaction types to show, and a financial dimension set of up to 11 dimensions. To match it in Fabric, filter GeneralJournalEntry by posting layer, separate the closing period using the period type in FiscalCalendarPeriod rather than the date, take debit and credit from IsCredit, and decode LedgerDimension into the same dimensions the page uses.

2. Customer aging at a past month-end

Customer aging comes from aging snapshots. A process calculates balances at a point in time, using an aging period definition, a criterion (transaction, due, or document date), and an as-of date, and converts amounts across companies into the currency of the company you are signed in to. F&O keeps one snapshot per aging period definition, so each run replaces the last. CustTransOpen holds only what is open today. To age as of a past month-end, rebuild the open amount from CustTrans and the CustSettlement rows dated on or before that date, or keep your own month-end snapshots from now on.

3. Inventory value and on-hand

InventSum, and WHSInventReserve for warehouse-managed items, are summary tables rebuilt from InventTrans, and Microsoft says InventSum values cannot be used directly for items in warehouse management. The Inventory value report separates financially updated from physically updated transactions, values only the financial inventory dimensions, and can print general ledger balances for reconciliation; its storage version cannot, so Microsoft says to reconcile that one through trial balances. For items on actual-cost methods such as FIFO or weighted average, inventory close also adjusts issue costs after the fact. To get value at a date, build from InventTrans using its issue and receipt status, posted and adjustment cost amounts, and the physical and financial dates.

4. Sales margin by financial dimension

Revenue comes from CustInvoiceTrans, cost from InventTrans through InventTransOrigin. The default dimensions on an invoice line are merged with other dimension sources when the voucher posts, each process with its own precedence, so the dimension on the line can differ from the one on the general ledger entry. For actual-cost items, cost of goods sold can also change after inventory close. Decide which dimension source your margin report follows, and tell users that margin on those items can move until inventory is closed.

Security does not follow the data

  • Every read through the Dataverse shortcuts uses one credential: by default the account of the person who created the link, which you can switch to a workspace identity or service principal. That identity needs the System Administrator role, so nothing is filtered by the reader’s own F&O access.
  • Extensible data security (XDS) policies are bypassed when F&O data is exported, so the rows in the lake are not filtered by them.
  • OneLake security roles do not restrict workspace Admins, Members, or Contributors, and OneLake row-level security does not support dynamic or multi-table rules.
  • Row-level security in a Power BI semantic model applies only to users with Viewer permission. Dynamic rules use USERPRINCIPALNAME() with a mapping table, and for Direct Lake Microsoft strongly recommends a fixed identity connection.
  • The F&O tables that hold user roles and their organization scope, such as SECURITYUSERROLE and SECURITYUSERROLECONDITION, are kernel tables that refresh once a day. If you build company-level access from them, a change in F&O takes up to a day to reach Fabric.

In practice: keep finance users out of the workspace that holds the link’s lakehouse, because the workspace Viewer role can read every table through the SQL analytics endpoint. Build the modeled layer, the semantic model, and the reports in a separate workspace, give finance users read access there or through an app, and build row-level security for legal entities in the model.

What you still have to build, in order

  1. A table map. For each report you need, list the F&O tables, joins, and filters behind it, starting with the four above.
  2. Layers. Microsoft’s guidance is to keep the raw shortcuts as a bronze layer and build cleaned and modeled layers as Delta tables, with the top layer as a star schema of facts and dimensions.
  3. Materialized tables for Direct Lake. Direct Lake on OneLake cannot read ordinary SQL views, so materialize the star schema as Delta tables. Check the size limits too: on F2 to F32, Direct Lake allows 300 million rows per table, and on F64, 1.5 billion. Large GeneralJournalAccountEntry and InventTrans tables can reach those limits.
  4. Decoding. Enum labels, default and ledger dimensions, and company names, as dimension tables.
  5. A fiscal calendar. Built from FiscalCalendarPeriod, with closing periods kept apart. Power BI’s calendar-based time intelligence (in preview) handles 4-4-5 style calendars.
  6. Measures. Trial balance, aging buckets, inventory value, and margin, defined once in the model.
  7. Security. A separate reporting workspace, read-only access for consumers, and row-level security by legal entity.
  8. Tie-out tests. Trial balance in Fabric against the Trial balance page, inventory value against the inventory accounts in the general ledger, and aging against the receivables control account, run every month.
  9. Refresh expectations. Add up the chain: the sync itself (up to an hour per Microsoft Learn, under 15 minutes in most observed cases with low-latency sync per Microsoft’s Fabric blog), kernel tables once a day, your own build schedule for the modeled layers, and the semantic model.
  10. Governance. One owner for the link and the workspace, endorsement of the model finance uses, and a deployment process for changes.

Where Metrixs fits

Metrixs runs in your own Microsoft Fabric environment on Link to Fabric or Azure Synapse Link. It adds its own data model and 150+ pre-built Power BI reports, with 1,200+ metrics and 250+ KPIs. Access by legal entity is set up in Power BI, separately from D365 security roles; currency reporting uses the accounting and reporting currency amounts D365 posts, with its own translation where a group needs it; and a report reconciles inventory value to the general ledger. On the Standard plan, reports use Direct Lake and refresh every 15 to 30 minutes, depending on data volume, the number of reports, and Fabric capacity. See Microsoft Fabric for D365 F&O for how it fits together, compare Microsoft’s pre-built option in Metrixs vs Business performance analytics, or request a demo and see if you qualify for a free 6-month trial.

FAQs

No. It creates a lakehouse with shortcuts to your F&O tables and a SQL analytics endpoint, and no reports. Since September 5, 2025, Fabric no longer creates default semantic models automatically for new lakehouses, so plan to build the model and reports yourself, unless you use a pre-built option such as Business performance analytics.

2. Do D365 F&O security roles apply to the data in Fabric?

Not automatically. Access in Fabric is controlled by workspace roles, OneLake security, and row-level security in the semantic model. Extensible data security policies are bypassed when F&O data is exported, so company and role access have to be rebuilt in Fabric.

3. Why doesn’t my trial balance in Fabric match the one in D365 F&O?

The Trial balance page reads pre-summarized balances and applies parameters the tables do not carry: posting layer, how opening balances and closing entries show, and the financial dimension set. A closing period usually shares its dates with the last period of the year, and the two sides refresh at different times. Filter and group the same way, and compare at the same point in time.

4. Can I sync D365 F&O data entities to Fabric?

Only as Dataverse virtual entities with row version change tracking turned on, which appear with an mserp_ prefix. Entities that use a group-by, views, nested entities, one-to-many relations, or exists joins fail Microsoft’s validation, so summary entities usually have to be rebuilt from tables.

5. How do I get enum labels and readable financial dimensions in Fabric?

Enum labels come from the GlobalOptionsetMetadata table, joined on entity name, option set name, and option, and filtered by language. Financial dimensions have to be decoded from DimensionAttributeValueSet for default dimensions and from DimensionAttributeValueCombination and its related tables for ledger dimensions, then modeled as dimension tables.

Sources

All pages below were checked on October 15, 2026.

Interested in learning more? Contact our sales team now.

Whether you need more details, a personalized demo, or expert advice, our sales team is here to assist you every step of the way.

Metrixs accounts receivable dashboard showing aging buckets and outstanding balances