← Product documentation

Business Central implementation notes

Architecture, implementation decisions, and verification scope for the ERP connection to the ASP.

How the AI FDE operated

From rules to a working implementation loop

The AI FDE stayed inside the implementation cycle. It read the evidence, mapped the system, changed the implementation, exercised the flow, and corrected failures against the governing source or observed state.

01

Read

PINT AE rule

Establish the governing rules and inspect the real ERP behavior.

02

Map

BC object

Trace invoice data through records, posting setup, and extensions.

03

Build

AL extension

Implement setup, events, submissions, API paths, and background work.

04

Exercise

XML + status

Run representative flows and inspect what the system actually produced.

05

Correct

Verified change

Resolve failures against source evidence, then rerun the right layer.

Technical architecture

Inside the connection

Business Central remains the operational system. Filing is registered around its transactions, then handled through a separate submission lifecycle with explicit status and inbound paths.

01

BC transaction

02

Canonical data

03

PINT AE XML

04

ASP lifecycle

05

Status + inbound

Posting

Register filing work without making accounting depend on the network.

Queue

Send, refresh state, and keep terminal documents out of repeat polling.

Inbound staging

Keep the original payload even when accounting conversion fails.

The shipped behavior lives in AL. Test scaffolding inspects it; it does not define it.

Technical proof

Three details that separate an implementation from a demo

The difficult parts are often small enough to miss in a broad architecture diagram. They are also where apparently complete integrations break.

01 · Document history

Credit notes inherit what was filed

The implementation reads the original invoice type from stored submitted XML instead of recomputing it from configuration that may have changed later.

Filed history

Original invoice

Filed as 380

Stored in submitted XML

Credit note

Inherits 381

Uses what was filed, not today’s setup

02 · Content assertions

A passing validator can miss wrong content

Structural validation may prove an element exists without proving its value is right. The test system therefore asserts on business content emitted by AL.

Presence ≠ correctness

Schematron: pass
<ID> value exists </ID>

The element is present. Its value can still be wrong.

Content assertion
emitted value === scenario value

The implementation checks the business content that moved.

03 · System state

A 2xx response is not acceptance evidence

Business Central can ignore unknown or read-only fields while returning success. The harness reads records back and verifies the stored value.

Transport ≠ state

Write → 2xxRead row backAssert stored value

A successful response is only the start of the check.

Verification

Four levels, because no single test proves the flow

Structural validity, business content, ERP behavior, and live network state are checked separately. That makes failures easier to locate and harder to wave through.

01

Offline

Rules and XML

Catalogue examiner · shape checks · rule probes

02

BC sandbox

ERP behavior

Outbound · decision trees · queues · inbound

03

Client

Operational UX

Corrections · alerts · setup · uninstall

04

ASP UAT

Network state

Submission · delivery · validation · authority status

738

catalogue instances in the offline examiner design

7

commercial decision-tree cases in the sandbox plan

20

manual client behaviors defined for inspection

These figures describe the documented verification scope, not a blanket claim that every final UAT state has been observed.