Integrationer / ERP / Microsoft Dynamics 365 Business Central
Guide till Business Central-integration för produktionsplanering med SkyPlanner APS
Den här guiden visar Business Central-partner och IT-team hur Microsoft Dynamics 365 Business Central ansluts till SkyPlanner APS. SkyPlanner integreras med Business Central i båda riktningarna via Business Centrals egna webbtjänster:
- Tillverkningsorder, operationsföljder, produktionsgrupper, artiklar och inköpsorder hämtas in.
- Planerade start- och sluttider skrivs till Prod. Order Routing Lines.
- Operatörernas tidregistreringar förs tillbaka för produktionsrapportering.
- SkyPlanners webhooks skickar planändringar så snart de sker.
SkyPlanner-teamet konfigurerar integrationen efter er Business Central-miljö under införandet och ger support efter driftstart. Guiden vänder sig till partner och utvecklare som vill medverka eller själva bygga vidare på SkyPlanners dokumenterade REST API (API-referens).
Två standardgränssnitt i Business Central, ingen kod på Business Central-sidan
Integrationen använder två gränssnitt som redan ingår i Business Central:
- API v2.0 för affärs- och lagerdata. Det exponerar
items,itemVariants,itemLedgerEntries,locations,unitsOfMeasure,salesOrders,salesOrderLines,purchaseOrders,purchaseOrderLines,vendors,customersochemployees. Det saknar entiteter för tillverkning, så produktionsdata hämtas via det andra gränssnittet. - OData v4-webbtjänster för tillverkning. Alla sidor i Business Central kan publiceras som OData v4-webbtjänster på sidan Web Services. Välj objekttypen Page, sidans ID och ett tjänstenamn och markera sedan Published. Då är ändpunkten aktiv, utan AL-kod eller något tillägg att driftsätta. Integrationen publicerar standardsidorna för frisläppta produktionsorder, Prod. Order Routing Lines, produktionsgrupper, maskingrupper och operationsföljder. De blir tillgängliga under
/ODataV4/Company('{name}')/{ServiceName}.
Publicerade sidor stöder både läsning och skrivning. 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,” (om en redigerbar sida exponeras som en webbtjänst kan data i den underliggande tabellen läsas och ändras med ett OData-anrop). Uppdateringar görs med PATCH. Så förs planerade datum tillbaka till Business Central, via samma sida och med samma validering som en planerare använder.
Välj bort SOAP. Microsoft har markerat SOAP-webbtjänster som föråldrade, och möjligheten att publicera Microsofts gränssnittssidor som SOAP tas bort i 2026 release wave 2 (v29).
Autentisering
Använd OAuth 2.0 via Microsoft Entra ID med service-to-service-flödet (client credentials):
- Registrera en app i Entra ID och tilldela den programbehörigheten
API.ReadWrite.Allför Dynamics 365 Business Central. - Begär token med omfånget
https://api.businesscentral.dynamics.com/.default. - Öppna sidan Microsoft Entra Applications i Business Central, lägg till klient-ID:t, tilldela behörighetsuppsättningar med minsta nödvändiga behörighet och ge samtycke. SUPER kan inte tilldelas en S2S-app.
Bas-URL:er: https://api.businesscentral.dynamics.com/v2.0/{environment}/api/v2.0/companies({id})/{entity} för API v2.0 och https://api.businesscentral.dynamics.com/v2.0/{environment}/ODataV4/Company('{name}')/{ServiceName} för de publicerade sidorna. Samma token fungerar för båda.
Åtkomstnycklar för webbtjänster (basic auth) är föråldrade och stöds inte i Business Central online sedan oktober 2022. De kräver dessutom alltid en licensierad användare. OAuth kräver ingen licens för service-to-service-integrationer. Lokala installationer stöder S2S från versionerna 18.11 och 19.5, när servern har konfigurerats för Microsoft Entra-autentisering.
På SkyPlanner-sidan använder REST API:et JWT-autentisering och är dokumenterat i Swagger/OpenAPI. Integrationsguiden går igenom de första anropen.
Händelser, webhooks och pollning
Business Central stöder webhook-prenumerationer via POST /api/v2.0/subscriptions för API v2.0-entiteter som items och salesOrders. Följande regler gäller:
- När en prenumeration skapas krävs en handskakning: din ändpunkt måste returnera
validationTokenmed 200 OK. - Prenumerationerna löper ut efter tre dagar. Förnya med PATCH, så görs handskakningen om.
- Aviseringarna innehåller resurssökvägen,
changeTypeoch dittclientState, inte hela posten. Posten läser du in efteråt. - Aviseringarna är fördröjda: Business Central online väntar 30 sekunder efter den första ändringen. Om fler än 1 000 poster ändras under den tiden skickas de som en enda
collection-avisering. - Högst 200 webhook-prenumerationer per onlinemiljö.
Produktionsorder, operationsrader och inköpsorder hämtas med några minuters mellanrum via de publicerade sidorna och purchaseOrders. Genom att filtrera på öppna order och använda sidindelning hålls antalet anrop väl inom gränserna i Business Central.
SkyPlanner skickar webhooks när status eller planeringen ändras, så återföringen av data är händelsestyrd.
Datamappning
| Objekt i Business Central (gränssnitt) | Objekt i SkyPlanner | Riktning | Frekvens |
|---|---|---|---|
Item, Item Variant, Unit of Measure (items, itemVariants, unitsOfMeasure, API v2.0) | Produkter och material | BC → SkyPlanner | Första inläsning, därefter webhook eller polling av ändringar |
| Production BOM Header/Line, versioner med status Certified (publicerad sida) | Produktstruktur, delprodukter, material per produkt | BC → SkyPlanner | Första inläsning, därefter vid ändring |
| Routing Header/Line, versioner med status Certified (publicerad Routing-sida): Operation No., Setup, Run, Wait and Move Time, Concurrent Capacities, Send-Ahead Quantity | Processteg med varaktighet, ställtider och avrustningstider | BC → SkyPlanner | Första inläsning, därefter vid ändring |
| Work Center, Machine Center: Capacity, Efficiency, Shop Calendar Code (publicerade sidor för Work Center och Machine Center) | Produktionsgrupper, grupperingar av produktionsgrupper, effektivitetsgrader | BC → SkyPlanner | Första inläsning, därefter sällan |
| Shop Calendar, Work Shift, Calendar Entry, Absence (publicerade sidor) | Skift, frånvaro | BC → SkyPlanner | Dagligen, eller egna skift i SkyPlanner |
| Released Production Order, Prod. Order Line, Prod. Order Routing Line, Prod. Order Component (publicerade sidor; Firm Planned kan inkluderas) | Order och operationer med slutdatum och materialbehov | BC → SkyPlanner | Polling med några minuters mellanrum |
salesOrders, salesOrderLines (API v2.0) | Leveransdatum till kund och underlag för prioritering | BC → SkyPlanner | Webhook eller polling |
itemLedgerEntries (API v2.0) | Lagersaldon | BC → SkyPlanner | Polling varje timme eller vid planeringskörning |
purchaseOrders, purchaseOrderLines (API v2.0), Expected Receipt Date på raden | Inköpsorder / inkommande material med förväntat leveransdatum; lagret uppdateras när inköpsordern markeras som Delivered | BC → SkyPlanner | Polling varje timme eller vid planeringskörning |
| Prod. Order Routing Line: Starting Date-Time, Ending Date-Time, Type, No. (PATCH på den publicerade sidan Prod. Order Routing) | Planerad start, planerat slut och produktionsgrupp per operation | SkyPlanner → BC | När planen ändras, via webhook från SkyPlanner |
| Output Journal (Item Journal Line, Entry Type Output) | Tidrapporter, kvantiteter och operatörskvitteringar | SkyPlanner → BC | Per kvittering eller per skift, om automatisk bokföring är aktiverad |
| Routing Tool, Routing Personnel (publicerade sidor, valfri första inläsning) | Verktygsbehov, antal operatörer per operation | BC → SkyPlanner | Första inläsning; därefter underhåll i SkyPlanner |
| Finns inte i Business Central | Ställtidsmatris, verktyg som resurser med begränsad kapacitet, alternativa maskiner och personal | Underhålls i SkyPlanner | Konfigureras vid införandet |
| Consumption Journal (om förbrukningen inte bokförs automatiskt) | Materialförbrukning | SkyPlanner → BC | Per kvittering eller per skift, om automatisk bokföring är aktiverad |
Integrationsmönster
1. Första inläsning av grunddata. Hämta operationsföljder och tillverknings-BOM:ar med status Certified samt produktionsgrupper och maskingrupper från de publicerade sidorna. Hämta artiklar och måttenheter från API v2.0. Gör ett medvetet val när varje produktionsgrupp eller maskingrupp mappas till en produktionsgrupp i SkyPlanner: bestäm om en produktionsgrupp med tre maskingrupper ska bli en samlad grupp eller tre separata produktionsgrupper.
2. Ordersynkronisering. Läs in tillverkningsorder med status Released (och Firm Planned, om ni planerar dem) med tillhörande operationsrader och komponenter från de publicerade sidorna. Läs också in öppna inköpsorderrader från API v2.0. SkyPlanner räknar beställt material som tillgängligt på inköpsorderns leveransdatum och uppdaterar lagret när inköpsordern markeras som Delivered. Planeringen tar därmed hänsyn till både lagersaldo och kommande inleveranser.
Planera aldrig tillverkningsorder med status Planned. Microsoft skriver att Business Central ”deletes them the next time you run planning.” (tar bort dem nästa gång du kör planeringen). Planning Worksheet fortsätter att föreslå försörjning, och SkyPlanner planerar de fastställda orderna mot verklig kapacitet.
3. Återskrivning av planen. Standardsidan Prod. Order Routing publiceras som en OData v4-webbtjänst. För varje operation som motorn har placerat eller flyttat skickar SkyPlanner ett PATCH-anrop till motsvarande operationsrad med ETag i If-Match. Anropet anger Starting Date-Time och Ending Date-Time samt Type och No. om operationen har flyttats till en alternativ maskin.
PATCH kör sidans och tabellens triggers, så Business Central validerar fälten med sin egen logik, precis som när en planerare redigerar sidan Prod. Order Routing. Tillverkningsorderradens Starting and Ending Date-Time uppdateras i sin tur. Business Central behåller ansvaret för kvantiteter, status och kostnader.
4. Återrapportering från produktionen. Operatörerna registrerar arbete med SkyPlanner Mobile Confirmations eller Production Timer, och tidregistreringarna håller planeringen aktuell. Produktionen kan rapporteras i Business Central som tidigare, via Production Journal eller Output Journal.
Om ni vill bokföra produktion och förbrukning helt automatiskt läggs en standard-API-sida i Business Central till för bokföring via Output Journal. SkyPlanner bokför då ställtid, körtid och producerad kvantitet per operation. Bokföringen uppdaterar Capacity Ledger Entries, och rapportering på den sista operationen i operationsföljden lägger artikeln i lager.
Välj en enda kanal för produktionsbokföring. Om ni bokför från både SkyPlanner och Production Journal i Business Central blir posterna dubblerade.
5. Regler för dataägarskap och konflikter. Dokumentera dem före driftstart:
| Data | Ägare |
|---|---|
| Artiklar, BOM:ar, operationsföljder, kvantiteter, orderstatus | Business Central |
| Operationsordning, start- och sluttider, tilldelning av produktionsgrupp | SkyPlanner |
| Ställtidsmatris, verktygs- och operatörskrav, alternativa resurser | SkyPlanner |
| Skift och frånvaro | Ett system, valt under kartläggningen |
| Produktion och förbrukning | Business Central, med manuell bokföring eller automatisk bokföring från SkyPlanners tidregistreringar |
Den främsta konfliktkällan är åtgärderna Refresh och Replan på tillverkningsorder. 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.” (Om du använder åtgärden Refresh för att beräkna om tillverkningsorderrader tar Business Central bort de befintliga raderna och beräknar nya.) Replan kan också ändra kapacitetsbehovet, och en omberäkning av komponenter ”deletes previous changes in the components.” (tar bort tidigare ändringar av komponenterna).
Behandla en uppdaterad order som en ny version, synkronisera den igen och låt SkyPlanner planera om. Med Autopilot planerar SkyPlanner om automatiskt när produktionen ändras.
Vanliga projektsteg
Implementeringen är normalt klar inom några veckor efter att införandet har påbörjats. Innan dess testar ni kostnadsfritt i 30 dagar med era egna data. Exportera produktionsgrupper, operationsföljder och öppna tillverkningsorder från Business Central med Open in Excel eller Edit in Excel på listsidorna. Importera dem som CSV eller Excel och validera planeringen innan integrationsarbetet påbörjas.
Själva projektet omfattar:
- Mappning av grunddata. Fastställ mappningstabellen, reglerna för dataägarskap, synkroniseringsintervallen och kanalen för produktionsbokföring.
- Konfiguration av webbtjänster. Publicera sidorna för tillverkningsorder, operationsrader, komponenter, produktionsgrupper, maskingrupper, operationsföljder, BOM:ar och kalendrar på sidan Web Services och registrera Entra-appen. Det handlar enbart om konfiguration, först i en sandbox och sedan i produktionsmiljön.
- Första inläsning. Artiklar, måttenheter, BOM:ar och operationsföljder med status Certified, produktionsgrupper och maskingrupper samt kalendrar.
- Synkronisering av order och inköpsorder. Tillverkningsorder med status Released och öppna inköpsorder hämtas genom pollning, försäljningsorder via webhook. Här ingår hantering av token, förnyelse av prenumerationer och nya försök vid 429.
- Konfiguration av begränsningar i SkyPlanner. Ställtidsmatris, verktyg, antal operatörer per operation och alternativa maskiner eller personal. Inget av detta finns i Business Central som data som kan användas i planeringen.
- Återföring av planeringen. PATCH på den publicerade sidan Prod. Order Routing. Automatisk produktionsbokföring läggs till här om ni har valt det.
- Parallelltestning. Kör SkyPlanner parallellt med den befintliga planen, jämför datum och rätta grunddata.
- Driftstart. Aktivera återföringen när data stämmer överens.
Fallgropar i Business Central
- Enheter i operationsföljder. Setup Time gäller per tillverkningsorder, Run Time per producerad artikel, och båda har en egen Unit of Measure Code. Wait Time och Move Time förbrukar ingen kapacitet i produktionsgruppen. Om produktionsgruppens enhet är Days motsvarar en dag 24 timmar, inte ett åttatimmarsskift. Räkna om vid importen, annars blir alla tidslängder fel.
- Inaktuella kalendrar. Kapacitet finns först när Calculate Work Center Calendar har körts för planeringshorisonten. Kontrollera fältet Calendar Entries Available Until före den första inläsningen.
- Dold kapacitet i maskingrupper. När Consolidated Calendar är avstängt planeras bara produktionsgruppens egen kapacitet: ”The machine center capacity is excluded.” (Maskingruppens kapacitet räknas inte med.) Läs maskingruppernas kapacitet direkt i stället för att förlita er på produktionsgruppens totalsiffror.
- Capacity och Efficiency. Business Central beräknar tidsåtgången som Run Time / Efficiency / Capacity, och de beräknade kalenderposterna tar redan hänsyn till båda. Mappa Efficiency till produktionsgruppens effektivitet i SkyPlanner en gång, inte två.
- Alternate Work Center är bara information. Microsoft skriver att det ”isn’t automatically included in planning processes.” (inte automatiskt tas med i planeringsprocesser). Lägg uttryckligen upp alternativen som alternativa produktionsgrupper i SkyPlanner.
- Anropsbegränsning. Online gäller gränserna per användare, och en tjänstidentitet räknas som en användare: 6 000 OData-anrop under ett rullande intervall på 5 minuter och 5 samtidiga anrop. Sidstorleken är begränsad till 20 000, en
$batchtill 100 operationer, och en operation får timeout efter 8 minuter. Om anropsfrekvensen överskrids returneras 429. Använd batchanrop, sidindelning och polling av ändringar i stället för att läsa in allt på nytt. - Licensiering. Tillverkning finns bara i Premium-upplevelsen. Användare med Essentials kan inte logga in i ett företag som är inställt på Premium.
Business Central-integrationen: vem ansvarar för konfiguration och support?
Arbetet omfattar mappning mot era operationsföljder, produktionsgrupper och er Business Central-konfiguration. Det omfattar också de begränsningar som inte finns i Business Central: ställtidsmatris, verktyg, antal operatörer och alternativa resurser.
- SkyPlanner-teamet konfigurerar integrationen under införandet och ger support efter driftstart. Ansvaret omfattar SkyPlanner-sidan och de överenskomna webbtjänsterna i Business Central. Varje fabrik använder Business Central på sitt sätt, och den kunskapen kommer till användning här. Integrationen använder Business Centrals standard-API v2.0 och publicerade webbtjänster, som följer med när Business Central uppdateras.
- Er Business Central-partner kan medverka. Partnern känner till er konfiguration och era tillägg och kan granska de publicerade sidorna, behörighetsuppsättningarna och Entra-appen tillsammans med SkyPlanner-teamet. SkyPlanner tillhandahåller REST API, Swagger/OpenAPI-dokumentation och webhooks.
- Era egna utvecklare kan bygga vidare på integrationen med samma dokumenterade REST API och JWT-autentisering. En API-nyckel räcker för att komma igång, och SkyPlanner-teamet hjälper till vid behov. Offentlig produktdokumentation, bland annat om inköpsorder och API:et för produkter och material, finns i SkyPlanners dokumentation. Laboratory & Allied valde den här vägen för SAP Business One: företagets interna IT-team byggde integrationen till stor del på egen hand, med hjälp av SkyPlanner. UTU använder NetSuite och kör SkyPlanner vid sidan av sitt ERP-system.
Testa först att produktionsplanen fungerar under den kostnadsfria provperioden på 30 dagar. Då utgår integrationen från en plan som redan passar fabriken.
När anslutningen är på plats planerar Arcturus utifrån aktuella order i Business Central, och de planerade datumen förs över till tillverkningsorderns operationsföljd. SkyPlanner kostar från 199 € per månad med 5 produktionsgrupper inkluderade och faktureras månadsvis. Du får en offert på integrationen utifrån dina processer och behov, tillsammans med abonnemanget, så att du ser hela kostnaden innan du börjar. Se priser, funktioner och hur Business Centrals egen planering står sig i Finplanering i Business Central. En översikt finns på sidan om Business Central, och andra ERP-system finns på samlingssidan för ERP-integrationer.
Tillverkningsföretag om SkyPlanner
2 hsparas varje vecka
”SkyPlanner har tagit vår produktionsplanering från Excel-ark till produktionsoptimering i realtid.”
Kalle Kalliomäki, specialist inom försörjningskedjan
UTU · Elcentraler och ställverk
Produktionsplaneringen sparar 2 timmars arbetstid varje vecka, och en ny körplan når produktionslinjen på några sekunder.
+90%produktionseffektivitet
”Effektiviteten i produktionen har ökat med 90%.”
Abdul Rucyinga, IT-chef
Laboratory & Allied · Läkemedelstillverkning
Produktionseffektiviteten har ökat med 90%, och det tar mindre än 30 minuter att skapa en optimerad plan för tre månader som omfattar alla produktionsgrupper.
98%leveransprecision, upp från cirka 50%
”SkyPlanner spelar en avgörande roll för att upprätthålla vår leveransprecision.”
Hannu Lahtinen, vd
KJH-Comp · Plåtmekanik och legotillverkning
Leveransprecisionen steg från cirka 50% till hela 98%, och nu behövs en arbetsledare för planeringen i stället för två.
1 000-talstillverkningsorder planeras automatiskt
”Vi har kontroll över produktionen på ett annat sätt, och vår förståelse för kapaciteten är på en helt annan nivå.”
Hannu Ryynänen, vd
Mamec · Industriella omrörare, pumpar och högteknologisk legotillverkning
Tusentals tillverkningsorder planeras automatiskt, och hela organisationen har en realtidsbild av produktionen.
Vanliga frågor
Omfattar Business Centrals API tillverkningsorder?
Standard-API:et v2.0 saknar entiteter för tillverkningsorder, operationsföljder, stycklistor och produktionsgrupper. Business Central tillhandahåller dem i stället via sina OData v4-webbtjänster. Standardsidorna för tillverkning publiceras på sidan Web Services utan kod och läses och skrivs via OData.
Vem bygger integrationen med Business Central?
SkyPlanner-teamet konfigurerar tvåvägsintegrationen för din Business Central-miljö under införandet och ger support efter driftsättningen. På Business Central-sidan används API v2.0 och publicerade OData v4-webbtjänster. Din Business Central-partner eller dina egna utvecklare kan också bygga integrationen med SkyPlanners dokumenterade REST API. En API-nyckel räcker för att komma igång.
Behöver vi installera ett tillägg i Business Central?
Nej. API v2.0 ingår som standard, och tillverkningssidorna publiceras som webbtjänster genom inställningar på sidan Web Services. En standard-API-sida läggs till bara om du vill att utflöde och förbrukning ska bokföras helt automatiskt.
Vilken autentisering ska integrationen använda?
OAuth 2.0 med klientautentiseringsuppgifter via Microsoft Entra ID, med registrering på sidan Microsoft Entra Applications i Business Central. Åtkomstnycklar för webbtjänster är föråldrade. Lokala installationer stöder samma åtkomst mellan tjänster från versionerna 18.11 och 19.5 när servern har konfigurerats för Microsoft Entra-autentisering. Under kartläggningen bekräftar vi vilken lösning som gäller för din version.
Kan Business Central skicka ändringar i realtid?
Nästan i realtid. Meddelanden från webhook-prenumerationer på API v2.0-entiteter, till exempel artiklar och försäljningsorder, kommer cirka 30 sekunder efter den första ändringen. Business Central online samlar dem i batchar. Tillverkningsorder hämtas genom pollning med några minuters mellanrum. I motsatt riktning skickar SkyPlanners egna webhooks ändringar i produktionsplanen så snart de sker.
Hur skrivs operationernas datum tillbaka till Business Central?
Med en PATCH mot standardsidan Prod. Order Routing, publicerad som en OData v4-webbtjänst. Den anger Starting Date-Time, Ending Date-Time och produktionsgrupp eller maskingrupp. Business Central validerar värdena med sin egen logik, precis som när en planerare redigerar sidan.
Kan vi testa SkyPlanner innan vi bygger integrationen?
Ja. Under den kostnadsfria provperioden på 30 dagar kan du använda upp till 20 produktionsgrupper och importera CSV- eller Excel-filer från Business Central. Inget kreditkort behövs. Starta provperioden eller kontakta säljteamet för att kartlägga integrationen.