Integrationer / ERP / Microsoft Dynamics 365 Business Central

Guide til integration med Business Central til detailplanlægning med SkyPlanner APS

Denne guide viser Business Central-partnere og IT-teams, hvordan de forbinder Microsoft Dynamics 365 Business Central med SkyPlanner APS. SkyPlanner udveksler data med Business Central i begge retninger via Business Centrals egne webservices:

  • Produktionsordrer, ruter, arbejdscentre, varer og købsordrer overføres til SkyPlanner.
  • Planlagte start- og sluttidspunkter skrives til Prod. Order Routing Lines.
  • Operatørernes tidsregistreringer sendes tilbage til rapportering af færdigmeldt produktion.
  • SkyPlanner-webhooks sender ændringer i planen, så snart de sker.
Gantt-tidslinje i SkyPlanner APS med opgaver fordelt på arbejdsstationer og en ordreliste nedenunder.

SkyPlanner-teamet tilpasser integrationen til jeres Business Central-opsætning under onboarding og yder support efter idriftsættelsen. Denne guide er til partnere og udviklere, der vil deltage eller selv bygge videre på SkyPlanners dokumenterede REST API (API-reference).

To standardgrænseflader i Business Central – ingen kode på Business Central-siden

Integrationen bruger to grænseflader, der allerede følger med Business Central:

  1. API v2.0 til handels- og lagerdata. Det stiller items, itemVariants, itemLedgerEntries, locations, unitsOfMeasure, salesOrders, salesOrderLines, purchaseOrders, purchaseOrderLines, vendors, customers og employees til rådighed. Det har ingen produktionsentiteter, så produktionsdata hentes via den anden grænseflade.
  2. OData v4-webtjenester til produktion. Alle Business Central-sider kan publiceres som OData v4-webtjenester på siden Web Services. Vælg objekttypen Page, sidens ID og et tjenestenavn, og markér derefter Published. Så er endpointet aktivt, uden AL-kode og uden en udvidelse, der skal installeres. Integrationen publicerer standardsiderne for frigivne produktionsordrer, Prod. Order Routing Lines, arbejdscentre, maskincentre og ruter, som tilgås via /ODataV4/Company('{name}')/{ServiceName}.

Publicerede sider giver både læse- og skriveadgang. Microsoft skriver: “If an editable page is exposed as a web service, the data in the underlying table can be accessed and modified by an OData call,” (hvis en redigerbar side udstilles som en webservice, kan data i den underliggende tabel læses og ændres via et OData-kald). Opdateringer sker med PATCH. Sådan skrives planlagte datoer tilbage til Business Central gennem den samme side og med den samme validering, som planlæggeren bruger.

Undlad SOAP. Microsoft har markeret SOAP-webservices som forældede, og muligheden for at publicere Microsofts brugergrænsefladesider som SOAP fjernes i 2026 release wave 2 (v29).

Godkendelse

Brug OAuth 2.0 via Microsoft Entra ID med service-to-service-flowet (client credentials):

  • Registrér en app i Entra ID, og tildel den applikationstilladelsen API.ReadWrite.All til Dynamics 365 Business Central.
  • Anmod om tokens med scopet https://api.businesscentral.dynamics.com/.default.
  • Åbn siden Microsoft Entra Applications i Business Central, tilføj klient-id’et, tildel rettighedssæt med færrest mulige rettigheder, og giv samtykke. SUPER kan ikke tildeles en S2S-app.

Basis-URL’er: https://api.businesscentral.dynamics.com/v2.0/{environment}/api/v2.0/companies({id})/{entity} til API v2.0 og https://api.businesscentral.dynamics.com/v2.0/{environment}/ODataV4/Company('{name}')/{ServiceName} til de publicerede sider. Det samme token virker til begge.

Adgangsnøgler til webservices (basic auth) er udfaset og har ikke været understøttet i Business Central online siden oktober 2022. De kræver desuden altid en bruger med licens. OAuth kræver ingen licens til service-to-service-integrationer. Lokale installationer understøtter S2S fra versionerne 18.11 og 19.5, når serveren er konfigureret til Microsoft Entra-godkendelse.

På SkyPlanner-siden bruger REST API’et JWT-godkendelse og er dokumenteret i Swagger/OpenAPI. Integrationsvejledningen gennemgår de første kald.

Hændelser, webhooks og polling

Business Central understøtter webhook-abonnementer via POST /api/v2.0/subscriptions på API v2.0-entiteter som items og salesOrders. Følgende regler gælder:

  • Oprettelse af et abonnement kræver et handshake: dit endpoint skal returnere validationToken med 200 OK.
  • Abonnementer udløber efter tre dage. Forny dem med PATCH, så gennemføres handshaket igen.
  • Notifikationer indeholder ressourcestien, changeType og din clientState, ikke hele posten. Du henter posten bagefter.
  • Notifikationer sendes med forsinkelse: Business Central online venter 30 sekunder efter den første ændring. Hvis mere end 1.000 poster ændres i det tidsrum, sendes de som én collection-notifikation.
  • Højst 200 webhook-abonnementer pr. onlinemiljø.

Produktionsordrer, rutelinjer og købsordrer hentes med polling med få minutters mellemrum fra de publicerede sider og purchaseOrders. Filtrering på åbne ordrer og sideopdeling holder antallet af forespørgsler et godt stykke under grænserne i Business Central.

SkyPlanner sender webhooks, når tilstanden eller tidsplanen ændres. Tilbageskrivningen er derfor hændelsesstyret.

Datamapping

Business Central-objekt (grænseflade)SkyPlanner-objektRetningHyppighed
Item, Item Variant, Unit of Measure (items, itemVariants, unitsOfMeasure, API v2.0)Produkter og materialerBC → SkyPlannerFørste indlæsning, derefter webhook eller polling af ændringer
Production BOM Header/Line, certificerede versioner (publiceret side)Produktstruktur, delprodukter, materialer pr. produktBC → SkyPlannerFørste indlæsning, derefter ved ændringer
Routing Header/Line, certificerede versioner (publiceret Routing-side): Operation No., Setup, Run, Wait and Move Time, Concurrent Capacities, Send-Ahead QuantityProcestrin med varighed, omstillingstid og nedtagningstidBC → SkyPlannerFørste indlæsning, derefter ved ændringer
Work Center, Machine Center: Capacity, Efficiency, Shop Calendar Code (publicerede Work Center- og Machine Center-sider)Arbejdsstationer, grupper af arbejdsstationer, effektivitetsgraderBC → SkyPlannerFørste indlæsning, derefter sjældent
Shop Calendar, Work Shift, Calendar Entry, Absence (publicerede sider)Skift, fraværBC → SkyPlannerDagligt, eller skiftene vedligeholdes i SkyPlanner
Released Production Order, Prod. Order Line, Prod. Order Routing Line, Prod. Order Component (publicerede sider; Firm Planned kan tilvælges)Ordrer og opgaver med leveringsfrister og materialebehovBC → SkyPlannerPolling med få minutters mellemrum
salesOrders, salesOrderLines (API v2.0)Kundernes leveringsfrister og grundlag for prioriteringBC → SkyPlannerWebhook eller polling
itemLedgerEntries (API v2.0)LagerbeholdningerBC → SkyPlannerPolling hver time eller ved kørsel af detailplanlægningen
purchaseOrders, purchaseOrderLines (API v2.0), Expected Receipt Date på linjenKøbsordrer / indgående materialer med forventet leveringsdato; lageret opdateres, når købsordren markeres som DeliveredBC → SkyPlannerPolling hver time eller ved kørsel af detailplanlægningen
Prod. Order Routing Line: Starting Date-Time, Ending Date-Time, Type, No. (PATCH på den publicerede Prod. Order Routing-side)Planlagt start, slut og arbejdsstation pr. operationSkyPlanner → BCVed ændringer i planen, via SkyPlanner-webhook
Output Journal (Item Journal Line, Entry Type Output)Tidsregistreringer, mængder og operatørernes tilbagemeldingerSkyPlanner → BCPr. tilbagemelding eller pr. skift, hvis automatisk bogføring er slået til
Routing Tool, Routing Personnel (publicerede sider, valgfri startindlæsning)Værktøjskrav, antal operatører pr. opgaveBC → SkyPlannerFørste indlæsning; derefter vedligeholdes data i SkyPlanner
Findes ikke i Business CentralOmstillingsmatrix, værktøjer som ressourcer med begrænset kapacitet, alternative maskiner og medarbejdereVedligeholdes i SkyPlannerSættes op under onboarding
Consumption Journal (hvis forbruget ikke bogføres automatisk)MaterialeforbrugSkyPlanner → BCPr. tilbagemelding eller pr. skift, hvis automatisk bogføring er slået til

Integrationsmønstre

1. Første indlæsning af stamdata. Hent ruter og produktionsstyklister med status Certified samt arbejds- og maskincentre fra de publicerede sider. Hent varer og måleenheder fra API v2.0. Tag bevidst stilling til, hvordan hvert arbejds- eller maskincenter skal svare til en arbejdsstation i SkyPlanner: Skal et arbejdscenter med tre maskincentre blive til én arbejdsstationsgruppe eller tre arbejdsstationer?

2. Ordresynkronisering. Læs produktionsordrer med status Released og deres rutelinjer og komponenter fra de publicerede sider. Medtag også ordrer med status Firm Planned, hvis I detailplanlægger dem. Hent desuden åbne købsordrelinjer fra API v2.0. SkyPlanner betragter bestilte materialer som tilgængelige på købsordrens leveringsdato og opdaterer lagerbeholdningen, når købsordren markeres som Delivered. Tidsplanen tager dermed højde for både lagerbeholdningen og kommende indkøb.

Detailplanlæg aldrig produktionsordrer med status Planned. Microsoft skriver, at Business Central “deletes them the next time you run planning.” (sletter dem, næste gang du kører planlægningen). Planning Worksheet fortsætter med at foreslå forsyninger, mens SkyPlanner planlægger de fastlagte ordrer ud fra den reelle kapacitet.

3. Tilbageskrivning af planen. Standardsiden Prod. Order Routing publiceres som en OData v4-webtjeneste. For hver operation, som motoren har placeret eller flyttet, sender SkyPlanner en PATCH til den pågældende rutelinje med ETag i If-Match. Den angiver Starting Date-Time og Ending Date-Time samt Type og No., når operationen er flyttet til en alternativ maskine.

PATCH-kaldet kører side- og tabeltriggerne, så Business Central validerer felterne med sin egen logik, præcis som når en planlægger redigerer siden Prod. Order Routing. Produktionsordrelinjens Starting and Ending Date-Time opdateres tilsvarende. Business Central bevarer styringen af mængder, status og omkostninger.

4. Tilbagemeldinger fra produktionen. Operatørerne registrerer arbejdet med SkyPlanner Mobile Confirmations eller Production Timer, og tidsregistreringerne holder tidsplanen ajour. Færdigmeldt produktion kan rapporteres i Business Central som hidtil via Production Journal eller Output Journal.

Hvis I ønsker fuldautomatisk bogføring af færdigmeldt produktion og forbrug, tilføjes en standard-API-side i Business Central til bogføring via Output Journal. SkyPlanner bogfører derefter omstillingstid, procestid og færdigmeldt antal pr. operation. Bogføringen opdaterer Capacity Ledger Entries, og færdigmelding på den sidste operation i ruten lægger varen på lager.

Vælg én kanal til bogføring af færdigmeldt produktion. Bogføring fra både SkyPlanner og Business Centrals Production Journal giver dobbeltposteringer.

5. Regler for dataejerskab og konflikter. Skriv dem ned inden idriftsættelsen:

DataDataejer
Varer, styklister, ruter, mængder, ordrestatusBusiness Central
Operationsrækkefølge, start- og sluttidspunkter, tildeling af arbejdsstationSkyPlanner
Omstillingsmatrix, krav til værktøj og operatører, alternative ressourcerSkyPlanner
Skiftehold og fraværÉt system, valgt under afklaringen
Færdigmeldt produktion og forbrugBusiness Central, bogført manuelt eller automatisk ud fra tidsregistreringer i SkyPlanner

Den primære kilde til konflikter er handlingerne Refresh og Replan på produktionsordrer. Microsoft skriver: “If you use the Refresh action to recalculate production order lines, Business Central deletes the existing production order lines and calculates new lines.” (Hvis du bruger Refresh til at genberegne produktionsordrelinjer, sletter Business Central de eksisterende linjer og beregner nye). Replan kan også ændre kapacitetsbehovet, og genberegning af komponenter “deletes previous changes in the components.” (sletter tidligere ændringer i komponenterne).

Behandl en opdateret ordre som en ny version, synkroniser den igen, og lad SkyPlanner omlægge tidsplanen. Med Autopilot omlægger SkyPlanner automatisk tidsplanen, når der sker ændringer i produktionen.

Typisk projektforløb

Implementeringen tager normalt uger fra starten på onboarding. Inden da kan I bruge jeres egne data i den gratis prøveperiode på 30 dage. Eksportér arbejdscentre, ruter og åbne produktionsordrer fra Business Central med Open in Excel eller Edit in Excel på listesiderne. Importér dem som CSV eller Excel, og kontrollér tidsplanen, før integrationsarbejdet begynder.

Selve projektet omfatter:

  1. Mapping af stamdata. Fastlæg mappingtabellen, reglerne for dataejerskab, synkroniseringsfrekvenserne og kanalen til bogføring af færdigmeldt produktion.
  2. Opsætning af webservices. Publicér siderne for produktionsordrer, rutelinjer, komponenter, arbejdscentre, maskincentre, ruter, styklister og kalendere på siden Web Services, og registrér Entra-appen. Det kræver kun konfiguration – først i en sandbox og derefter i produktionsmiljøet.
  3. Første indlæsning. Varer, måleenheder, styklister og ruter med status Certified, arbejds- og maskincentre samt kalendere.
  4. Synkronisering af produktions- og købsordrer. Produktionsordrer med status Released og åbne købsordrer synkroniseres via polling, salgsordrer via webhooks. Her håndteres også tokens, fornyelse af abonnementer og nye forsøg ved 429-svar.
  5. Opsætning af begrænsninger i SkyPlanner. Omstillingsmatrix, værktøjer, antal operatører pr. opgave og alternative maskiner eller medarbejdere. Ingen af disse oplysninger findes som data til detailplanlægning i Business Central.
  6. Tilbageskrivning af tidsplanen. PATCH-kald til den publicerede side Prod. Order Routing. Automatisk bogføring af færdigmeldt produktion tilføjes her, hvis det er valgt.
  7. Parallel test. Kør SkyPlanner sideløbende med den nuværende plan, sammenlign datoer, og ret stamdata.
  8. Idriftsættelse. Aktivér tilbageskrivning, når data stemmer overens.

Faldgruber i Business Central

  • Enheder i ruter. Setup Time gælder pr. produktionsordre, Run Time pr. produceret vare, og de har hver deres Unit of Measure Code. Wait Time og Move Time optager ikke kapacitet på arbejdscentret. Hvis arbejdscentrets enhed er Days, er én dag 24 timer, ikke et skift på otte timer. Omregn ved import, ellers bliver alle varigheder forkerte.
  • Forældede kalendere. Der er først kapacitet, når Calculate Work Center Calendar er kørt for planlægningshorisonten. Kontrollér feltet Calendar Entries Available Until før den første indlæsning.
  • Skjult kapacitet på maskincentre. Når Consolidated Calendar er slået fra, planlægges kun arbejdscentrets egen kapacitet: “The machine center capacity is excluded.” (Maskincentrets kapacitet er ikke medregnet). Læs kapaciteten direkte fra maskincentrene i stedet for at stole på arbejdscentrets samlede tal.
  • Capacity og Efficiency. Business Central beregner varighed som Run Time / Efficiency / Capacity, og de beregnede kalenderposter tager allerede højde for begge dele. Overfør Efficiency til arbejdsstationens effektivitet i SkyPlanner én gang, ikke to.
  • Alternate Work Center er kun en oplysning. Microsoft skriver, at det “isn’t automatically included in planning processes.” (ikke automatisk indgår i planlægningsprocesser). Opret alternativerne udtrykkeligt som alternative arbejdsstationer i SkyPlanner.
  • Begrænsning af forespørgsler. Onlinegrænserne gælder pr. bruger, og en service principal tæller som én bruger: 6.000 OData-forespørgsler i et rullende vindue på 5 minutter og 5 samtidige forespørgsler. Sidestørrelsen er begrænset til 20.000, en $batch til 100 operationer, og en operation får timeout efter 8 minutter. Overskrides grænsen for forespørgsler, returneres 429. Brug batch, sideopdeling og polling af ændringer i stedet for at genindlæse alle data.
  • Licenser. Produktionsfunktionerne findes kun i Premium. Brugere med Essentials kan ikke logge ind i et regnskab, der er indstillet til Premium.

Integrationen med Business Central: Hvem står for opsætning og support?

Arbejdet omfatter mapping til jeres ruter, arbejdscentre og Business Central-opsætning samt de begrænsninger, Business Central ikke indeholder: omstillingsmatrix, værktøjer, antal operatører og alternative ressourcer.

  1. SkyPlanner-teamet konfigurerer integrationen under onboarding og yder support efter idriftsættelsen. Det dækker SkyPlanner-siden og de aftalte webservices i Business Central. Hver fabrik bruger Business Central forskelligt, og den viden bliver inddraget her. Integrationen bruger Business Centrals standard-API v2.0 og publicerede webservices, som følger med opdateringerne af Business Central.
  2. Jeres Business Central-partner kan deltage. Partneren kender jeres opsætning og udvidelser og kan gennemgå de publicerede sider, rettighedssæt og Entra-appen sammen med SkyPlanner-teamet. SkyPlanner stiller REST API, Swagger/OpenAPI-dokumentation og webhooks til rådighed.
  3. Jeres egne udviklere kan bygge videre på integrationen via det samme dokumenterede REST API med JWT-godkendelse. En API-nøgle er nok til at komme i gang, og SkyPlanner-teamet hjælper efter behov. Den offentlige produktdokumentation, herunder købsordrer og API’et til produkter og materialer, findes i SkyPlanners dokumentation. Laboratory & Allied valgte denne vej med SAP Business One: Virksomhedens interne IT-team byggede i vid udstrækning selv integrationen med hjælp fra SkyPlanner. UTU bruger SkyPlanner sideløbende med sit ERP-system NetSuite.

Afprøv først planen i den gratis prøveperiode på 30 dage, så integrationen tager udgangspunkt i en plan, der allerede passer til fabrikken.

Når forbindelsen er etableret, lægger Arcturus-motoren planen ud fra aktuelle ordrer i Business Central, og de planlagte datoer overføres til produktionsordrens rute. SkyPlanner fås fra 199 € pr. måned med 5 arbejdsstationer inkluderet og månedlig fakturering. Du får på forhånd et tilbud på integrationen ud fra dine processer og behov sammen med dit abonnement, så du kender den samlede pris, før du går i gang. Se priser og funktioner, og sammenlign med Business Centrals egen planlægning i artiklen om produktionsplanlægning i Business Central. Emnet er her produktionsplanlægning, hvor planen tager højde for den reelt tilgængelige kapacitet hos både maskiner og medarbejdere. Du finder overblikket på siden om Business Central og andre ERP-systemer i oversigten over ERP-integrationer.

Produktionsvirksomheder om SkyPlanner

Kalle Kalliomäki, forsyningskædespecialist hos UTU, i eltavleproduktionen i Ulvila

2 hsparet hver uge

“SkyPlanner har flyttet vores produktionsplanlægning fra Excel-ark til optimering af produktionen i realtid.”

Kalle Kalliomäki, forsyningskædespecialist
UTU · Eltavler og koblingsanlæg

Produktionsplanlægningen sparer 2 timers arbejdstid hver uge, og en ny opgavekø når ud til produktionslinjen på få sekunder.

Læs UTU’s anmeldelse

Operatører i renrumsdragter ved en flaskepåfyldningslinje på Laboratory & Allieds lægemiddelfabrik i Nairobi

+90%produktionseffektivitet

“Effektiviteten i produktionen er steget med 90%.”

Abdul Rucyinga, IT-chef
Laboratory & Allied · Lægemiddelproduktion

Produktionseffektiviteten er steget med 90%, og det tager under 30 minutter at lave en optimeret plan for tre måneder på tværs af alle arbejdsstationer.

Læs Laboratory & Allieds anmeldelse

En svejser fra KJH-Comp sliber en svejset stålkonstruktion på fabrikken i Alahärmä

98%leveringssikkerhed, op fra ca. 50%

“SkyPlanner spiller en afgørende rolle for at opretholde vores leveringssikkerhed.”

Hannu Lahtinen, administrerende direktør
KJH-Comp · Pladebearbejdning og kontraktproduktion

Leveringssikkerheden steg fra omkring 50% til helt op på 98%, og detailplanlægningen kræver nu kun én arbejdsleder i stedet for to.

Læs KJH-Comps anmeldelse

Hannu Ryynänen, administrerende direktør for Mamec, i virksomhedens produktionshal i Lohja

1.000-visaf produktionsordrer planlagt automatisk

“Vi har styr på produktionen på en helt anden måde, og vores forståelse af kapaciteten er på et helt andet niveau.”

Hannu Ryynänen, administrerende direktør
Mamec · Industrielle blandere, pumper og højteknologisk kontraktproduktion

Tusindvis af produktionsordrer planlægges automatisk, og hele organisationen har overblik over produktionen i realtid.

Læs Mamecs anmeldelse

Ofte stillede spørgsmål

Omfatter Business Centrals API produktionsordrer?

Standard-API v2.0 har ingen entiteter for produktionsordrer, ruter, styklister eller arbejdscentre. Business Central stiller dem i stedet til rådighed via sine OData v4-webtjenester. Standardsiderne til produktion publiceres på siden Web Services uden kode, og data læses og skrives via OData.

Hvem bygger integrationen til Business Central?

SkyPlanner-teamet konfigurerer tovejsintegrationen til din Business Central-opsætning under opstarten og yder support efter idriftsættelsen. På Business Central-siden bruger integrationen API v2.0 og publicerede OData v4-webtjenester. Din Business Central-partner eller dine egne udviklere kan også bygge integrationen med SkyPlanners dokumenterede REST API. En API-nøgle er nok til at komme i gang.

Skal vi installere en udvidelse i Business Central?

Nej. API v2.0 er standard, og produktionssiderne publiceres som webtjenester via opsætningen på siden Web Services. Der tilføjes kun en standard-API-side, hvis du ønsker, at afgang og forbrug bogføres fuldautomatisk.

Hvilken godkendelsesmetode skal integrationen bruge?

OAuth 2.0 client credentials via Microsoft Entra ID, registreret på siden Microsoft Entra Applications i Business Central. Adgangsnøgler til webtjenester er under udfasning. Lokale installationer understøtter samme service-to-service-adgang fra version 18.11 og 19.5, når serveren er konfigureret til Microsoft Entra-godkendelse. Under afklaringen bekræfter vi, hvilken løsning der passer til din version.

Kan Business Central sende ændringer i realtid?

Næsten i realtid. Notifikationer fra webhook-abonnementer på API v2.0-entiteter som varer og salgsordrer ankommer ca. 30 sekunder efter den første ændring og samles i batches af Business Central online. Produktionsordrer hentes ved polling med få minutters mellemrum. I den modsatte retning sender SkyPlanners egne webhooks planændringer, så snart de sker.

Hvordan skrives operationsdatoer tilbage til Business Central?

Med en PATCH-anmodning til standardsiden Prod. Order Routing, der er publiceret som en OData v4-webtjeneste. Den angiver Starting Date-Time, Ending Date-Time samt arbejds- eller maskincenter. Business Central validerer værdierne med sin egen logik, præcis som når en planlægger redigerer siden.

Kan vi afprøve SkyPlanner, før vi bygger integrationen?

Ja. Den gratis prøveperiode på 30 dage understøtter op til 20 arbejdsstationer med import af CSV- eller Excel-filer fra Business Central. Der kræves intet kreditkort. Start prøveperioden, eller kontakt salg for at afklare integrationens omfang.