Det meste af vores tid går med integrationer: Business Central koblet til webshops, banker, e-fakturering, lagersystemer og alt det andet, en virksomhed kører på. Det, vi har lært, er, at det sjældent er teknologien, der vælter et projekt. Det er valget af mønster. En natlig CSV-fil, der skulle have været et API-kald, eller en iPaaS-platform til en integration, der kunne være klaret med tyve linjer AL.
Her er de syv mønstre, vi bruger — hvornår de passer, og hvornår de ikke gør.
1. API-first integration
Business Centrals standard-API (v2.0) dækker debitorer, varer, salgsordrer, finansposter og meget mere. Mangler der noget, bygger vi en egen API-side i AL. Det er vores standardvalg, når det andet system selv kan kalde BC.
- OAuth via en app-registrering i Entra ID — aldrig en brugers adgangskode
- Grænse på 6.000 kald pr. bruger pr. fem minutter. Klienten skal kunne håndtere 429 og prøve igen
- Brug batch-kald og $filter på lastModifiedDateTime frem for at hente alt hver gang
2. iPaaS (Integration Platform as a Service)
Azure Logic Apps, Boomi og lignende giver flows, overvågning og færdige connectorer ét sted. Det giver mening, når I har mange systemer, der skal tale sammen, og en IT-afdeling, der vil drive platformen.
- Central overvågning, retry og logning
- Licens- og driftsomkostning, der løber hver måned
- Overkill for en virksomhed med to-tre integrationer. Der er en AL-udvidelse ofte enklere og billigere at drive
3. Event-driven integration
Business Central kan sende webhooks, når en post oprettes, ændres eller slettes. Det andet system får besked med det samme i stedet for at spørge hvert femte minut.
- Push i stedet for polling — færre kald og hurtigere opdatering
- Abonnementer udløber efter tre dage og skal fornys automatisk. Det er den klassiske fejl
- Webhooken siger kun, at noget har ændret sig. Data skal stadig hentes, og modtageren skal kunne tåle dubletter
4. Power Platform
Power Automate med Business Central-connectoren er den hurtigste vej til enkle flows: en Teams-besked, når en stor ordre kommer ind, eller en godkendelse i Outlook.
- Kan bygges og vedligeholdes af en superbruger
- Tæt på Teams, Outlook og SharePoint
- Ikke til forretningskritiske flows i store mængder: flows udløses ikke, hvis over 1.000 poster ændres inden for 30 sekunder
5. Azure Service Bus (kø-baseret)
Når en besked ikke må gå tabt — en ordre fra webshoppen på Black Friday, en betaling fra banken — lægger vi den i en kø mellem systemerne.
- Beskeden ligger i køen, til BC har behandlet den, også hvis BC er utilgængeligt et øjeblik
- Dead-letter-kø til beskeder, der fejler, så de kan rettes og afspilles igen
- Udjævner spidsbelastning, så BC ikke rammer API-grænsen
6. Dataverse-synkronisering
Bruger I Dynamics 365 Sales eller Customer Service, har Business Central en indbygget synkronisering via Dataverse af kunder, kontakter, varer og salgsordrer — uden egen kode.
- Tovejssynkronisering, opsat via tabelmapping i BC
- Matchbaseret kobling, så eksisterende poster ikke bliver dubletter
- Kun relevant, hvis det andet system ligger på Dataverse
7. Custom connectors og AL-udvidelser
Når der ikke findes en standardconnector — eller den, der findes, ikke passer til danske forhold — bygger vi integrationen som en AL-udvidelse direkte i Business Central. Det er sådan, vi har lavet Invice WooCommerce Connector: webordrer bliver til salgsordrer, lager og priser går tilbage til shoppen, og kunder med GLN-nummer får fakturaen som OIOUBL. Det er også sådan, vi bygger integrationer til banker, Magento, lagersystemer og ældre brancheløsninger.
- Logikken ligger i BC, hvor brugerne kan se status og fejl på en side — ikke i en log, kun IT kan læse
- Kører i opgavekøen uden ekstra platform at betale for
- Kræver nogen, der kan AL og vedligeholder appen ved Microsofts udgivelser i april og oktober
Tommelfingerregel: vælg det enkleste mønster der opfylder kravet til volumen, latenstid og leveringsgaranti. Over-engineering er den dyreste integrationsfejl.
Fejlhåndtering og monitorering
- Telemetri fra BC og integrationerne i Application Insights
- Alarmer på fejlrate og på manglende aktivitet — ingen ordrer i to timer en tirsdag er også en fejl
- En side i BC, hvor brugerne kan se fejlede ordrer og genkøre dem selv
- Dead-letter eller fejlkø på alle asynkrone flows
- Dokumentation af, hvem der ejer hvilken integration — også når konsulenten er på ferie
Skal Business Central kobles sammen med jeres andre systemer?
Vi kortlægger jeres systemer og foreslår den enkleste løsning, der holder. Det er os, der bygger den og supporterer den bagefter.
Kontakt os