Business Central knowledge graph

Business Central app graph

A map of a family of Microsoft Dynamics 365 Business Central products, built every night straight from their AL source code and API contracts. It shows where the apps meet: whether they can be installed side by side, which standard tables, codeunits and events several of them depend on, which features have no tests, and how much of an API contract is implemented.

Why it exists

Partners who sell several apps meet the same problems at the customer. Two per-tenant extensions that share an object ID cannot be installed together, and apps that hook into the same posting routines affect each other in ways no single repository shows. This page checks all the apps at once.

How it is made

bc-knowledge-graph reads each repository: object declarations, table fields, event subscriptions, API pages, feature documents, test plans and OpenAPI/AsyncAPI contracts. It links them into one graph. Nothing is compiled, deployed or run, and no Business Central environment is needed.

Use it on your own apps

The tool is open source. Point it at your repositories to get this page for your apps, ask Claude about them in plain language through its MCP server, or explore the graph in Neo4j. Get started on GitHub.

Updated 2026-10-03 15:39 UTC from public repositories on GitHub. Overlap is counted between products. Download the graph (JSON, for bckg ask and bckg mcp).

5products
5apps
997own objects
146standard objects touched
29 / 40features tested
481test procedures

How to read this page

The products

What the graph was built from. Each app owns its own object ID range; its tests are counted with it.

CRM

Native CRM in Business Central - record ownership and teams, an activity timeline, opportunities, a guided sales process, a product catalog and pricing, with no Dataverse.

bc-native-crm

CRMv0.4.0.0
app 65000-68999tests 69000-69999
Objects
218
Tests
29
Features
12 5 of 12 tested

Tests in CRM Tests (8 codeunits)

Commerce

Headless commerce on Business Central - a storefront and domain services, an Azure integration layer and an AL connector, joined by versioned OpenAPI and AsyncAPI contracts.

commerce-connector-bc commerce-integration commerce-platform

Commerce Connectorv1.0.0.0
app 70000-73999
Objects
33
Tests
0
Features
1 0 of 1 tested

No test app

API contracts: erp-commerce@1.0.0erp-events@1.0.0

Construction Management

A construction vertical on standard Business Central Projects - estimating, cost control, scheduling, progress billing, retention, subcontracts and plant.

bc-construction-management

Construction Managementv0.1.0.0
app 60000-63999tests 64000-64999
Objects
238
Tests
59
Features
12 9 of 12 tested

Tests in Construction Management Tests (15 codeunits)

Invoice Forge

High-volume invoice import and batch posting - a Rust ingestion service and an AL extension that posts through Business Central's supported APIs.

bc-invoice-forge

BC Invoice Forgev0.1.0.0
app 75000-78999
Objects
33
Tests
0
Features
0 none documented

No test app

Warehouse Advanced

Advanced warehouse management for Business Central Cloud, beyond the standard app.

warehouse-advanced-bc

Warehouse Advancedv1.0.0.0
app 55000-58999tests 59000-59999
Objects
431
Tests
393
Features
15 15 of 15 tested

Tests in Warehouse Advanced Tests (21 codeunits)

Serbian Localization private repository

A complete Serbian localization for Business Central W1 (version 29), built as one per-tenant extension on the standard E-Document framework.

  • SEF e-invoicing: invoices, credit and debit notes, advance invoices, status updates, and receiving, approving and rejecting purchase invoices
  • VAT: VAT setup with POPDV codes, SEF VAT records, the POPDV statement and reconciliation with the tax administration's calculation
  • e-Otpremnica: outgoing, incoming and internal despatch advices
  • Finance: the official chart of accounts, Bilans stanja and Bilans uspeha with APR export, IOS and compensation
  • Banking: payments with model 97 references and Halcom payment orders, Halcom bank statement import, NBS exchange rates
  • Fixed assets: tax depreciation, including the legacy group method, and the POA report
  • Identifiers: PIB, matični broj and JBKJS checks
  • Serbian (Latin) translation and a setup hub with assisted setup per feature
app 50000-53999tests 54000-54999
Features
26
Tests
193 all passing
Objects
359
  • ✓ Every feature covered by automated tests
  • ✓ MCP configurations, so AI agents can load and query demo data
  • ✓ RapidStart configuration packages with demo data for each feature

The repository is private: its code is not part of the graph above, and access is available on request.

bc-localization-rs

Object ID collisions ✓ none found

Which object IDs are used by more than one app?

Per-tenant extensions that declare the same object ID cannot be installed in the same environment. Give every app its own ID block.

Nothing found.

Field collisions ✓ none found

Which fields do different apps add to the same table with the same ID or name?

Either clash stops the second table extension from installing.

Nothing found.

Where products meet 9 pairs

For each pair of products, how many standard objects do both of them extend, subscribe to or use?

The higher the number, the more a customer running both needs them tested together. Test apps are left out.

CRMCommerceConstruction ManagementInvoice ForgeWarehouse Advanced
CRM417210
Commerce4311
Construction Management173314
Invoice Forge213·
Warehouse Advanced10114·
Show which objects each pair shares
firstsecondsharedobjects
CRMConstruction Management17Codeunit Application Area Mgmt. Facade
Codeunit Config. Package Management
Codeunit Effective Permissions Mgt.
Codeunit Guided Experience
Codeunit MCP Config
12 moreTable Application Area Setup
Table Config. Package
Table Config. Package Field
Table Config. Package Table
Table Customer
Table Expanded Permission
Table Item
Table Permission Buffer
Table Resource
Table Sales Header
Table Sales Invoice Header
Table Sales Line
Construction ManagementWarehouse Advanced14Codeunit Application Area Mgmt. Facade
Codeunit Config. Package Management
Codeunit Guided Experience
Codeunit MCP Config
Codeunit No. Series
9 moreEnum Assisted Setup Group
Enum Guided Experience Type
Enum Video Category
Table Application Area Setup
Table Config. Package
Table Config. Package Table
Table Item
Table No. Series
Table No. Series Line
CRMWarehouse Advanced10Codeunit Application Area Mgmt. Facade
Codeunit Config. Package Management
Codeunit Guided Experience
Codeunit Item Jnl.-Post Line
Codeunit MCP Config
5 moreTable Application Area Setup
Table Config. Package
Table Config. Package Table
Table Item
Table Item Journal Line
CRMCommerce4Table Item
Table Item Category
Table Sales Header
Table Sales Line
CommerceConstruction Management3Table Item Table Sales Header Table Sales Line
Construction ManagementInvoice Forge3Table Purchase Header Table Purchase Line Table Sales Header
CRMInvoice Forge2Codeunit Sales-Post Table Sales Header
CommerceInvoice Forge1Table Sales Header
CommerceWarehouse Advanced1Table Item

Standard objects touched by several products 29

Which standard (Microsoft) objects does more than one product extend, subscribe to or use?

Test these first when several products are installed for the same customer. Test apps are left out.

typeobjectproductsby product
TableItem4CRM EXTENDS, USES
Commerce SUBSCRIBES_TO, USES
Construction Management USES
Warehouse Advanced USES
TableSales Header4CRM EXTENDS, USES
Commerce USES
Construction Management EXTENDS, USES
Invoice Forge EXTENDS, USES
CodeunitApplication Area Mgmt. Facade3CRM SUBSCRIBES_TO, USES
Construction Management SUBSCRIBES_TO, USES
Warehouse Advanced SUBSCRIBES_TO, USES
TableApplication Area Setup3CRM EXTENDS, USES
Construction Management EXTENDS, USES
Warehouse Advanced EXTENDS, USES
TableConfig. Package3CRM USES
Construction Management USES
Warehouse Advanced USES
CodeunitConfig. Package Management3CRM USES
Construction Management USES
Warehouse Advanced USES
TableConfig. Package Table3CRM USES
Construction Management USES
Warehouse Advanced USES
CodeunitGuided Experience3CRM SUBSCRIBES_TO, USES
Construction Management USES
Warehouse Advanced USES
CodeunitMCP Config3CRM USES
Construction Management USES
Warehouse Advanced USES
TableSales Line3CRM USES
Commerce USES
Construction Management USES
Show the other 19 rows
typeobjectproductsby product
EnumAssisted Setup Group2Construction Management USES
Warehouse Advanced USES
TableConfig. Package Field2CRM USES
Construction Management USES
TableCustomer2CRM EXTENDS, SUBSCRIBES_TO, USES
Construction Management USES
CodeunitEffective Permissions Mgt.2CRM USES
Construction Management USES
TableExpanded Permission2CRM USES
Construction Management USES
EnumGuided Experience Type2Construction Management USES
Warehouse Advanced USES
TableItem Category2CRM USES
Commerce SUBSCRIBES_TO, USES
CodeunitItem Jnl.-Post Line2CRM USES
Warehouse Advanced USES
TableItem Journal Line2CRM USES
Warehouse Advanced USES
CodeunitNo. Series2Construction Management USES
Warehouse Advanced USES
TableNo. Series2Construction Management USES
Warehouse Advanced USES
TableNo. Series Line2Construction Management USES
Warehouse Advanced USES
TablePermission Buffer2CRM USES
Construction Management USES
TablePurchase Header2Construction Management EXTENDS, USES
Invoice Forge EXTENDS, USES
TablePurchase Line2Construction Management USES
Invoice Forge USES
TableResource2CRM EXTENDS, USES
Construction Management USES
TableSales Invoice Header2CRM EXTENDS, USES
Construction Management EXTENDS, SUBSCRIBES_TO, USES
CodeunitSales-Post2CRM SUBSCRIBES_TO
Invoice Forge USES
EnumVideo Category2Construction Management USES
Warehouse Advanced USES

Events with subscribers in several products 1

Which events do subscribers in more than one product react to?

Subscriber order is not guaranteed, so each subscriber must work whatever the others did before it.

publishereventfieldproductssubscribers
Application Area Mgmt. FacadeOnGetEssentialExperienceAppAreasCRM Construction Management Warehouse AdvancedCONS App Area Subscriber.SetConstructionAppAreasOnGetEssentialExperienceAppAreas
NBC App Area Subscriber.SetAppAreasOnGetEssentialExperienceAppAreas
WHA Count App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Dock App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA HU App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
11 moreWHA Int. App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA KPI App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Lab. App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Label App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Pack App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA QC App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA RF App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Repl. App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Slot. App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Task App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas
WHA Wave App Area Sub..SetAppAreasOnGetEssentialExperienceAppAreas

Features without tests 11 found

Which features does nothing test?

No test procedure is named in the feature's test plan and no test codeunit uses any of its objects.

appfeaturenamelinked objects
CRMFEAT-ACT-001ActivitiesAndTimeline0
CRMFEAT-API-001ApiAndMcp10
CRMFEAT-BPF-001BusinessProcessFlow0
CRMFEAT-MCP-001MCPServer2
CRMFEAT-OPP-001OpportunityDepth0
CRMFEAT-OWN-001OwnershipAndTeams0
CRMFEAT-PTY-001PartyEnrichment0
Commerce ConnectorFEAT-001CommerceFoundations9
Construction ManagementFEAT-MCP-001MCPServer13
Construction ManagementFEAT-RC-001RoleCenter0
Construction ManagementFEAT-WBS-001CostBreakdownStructure13

Contract coverage 11 found

Which contract operations does no AL object serve, and which channels does nothing in BC emit?

The work left to connect the contract to Business Central.

contractkindnamedetail
erp-commerce@1.0.0operationcheckAvailabilityPOST /availability/check
erp-commerce@1.0.0operationgetCatalogueHashesGET /catalogue/reconciliation
erp-commerce@1.0.0operationgetCatalogueItemsDeltaGET /catalogue/items
erp-commerce@1.0.0operationgetCategoryTreeGET /catalogue/categories
erp-commerce@1.0.0operationgetCreditStandingGET /customers/{customerId}/credit
erp-commerce@1.0.0operationgetListPricesDeltaGET /catalogue/prices
erp-commerce@1.0.0operationresolvePricesPOST /pricing/resolve
erp-commerce@1.0.0operationsubmitOrderPOST /orders
erp-events@1.0.0channelcatalogue.price.changed
erp-events@1.0.0channelinventory.stock.changed
erp-events@1.0.0channelsales.order.statusChanged

Contract pins 2

Is every repository built against the current contract version?

A pinned version that differs from the contract repository's version is drift.

repopinnedcontractcurrentdrift
commerce-integration1.0.0erp-commerce1.0.0no
commerce-integration1.0.0erp-events1.0.0no

Questions with a parameter

These need an input, so they are not on this page. Ask them with bckg ask or through the MCP server.

questionaskparameter
feature_traceWhat implements a feature, what tests it, and what does it touch?feature: feature code, for example FEAT-WGT-001
contract_impactWhat does a change to one contract property touch?property: Schema.property, for example Category.parentId

Want this for your own apps?

If you build or sell several Business Central apps, the same questions apply to you: can they be installed for the same customer, where do they touch the same standard objects and events, and which features are untested.

The tool is free and open source, so you can run it on your own repositories today. If you would rather have someone check your apps before a customer installs them together, or keep a graph like this one current for your team, get in touch.

Get started on GitHub Contact us at dmom.ai