Integrationer / ERP / Sage 200
Guide til Sage 200-integration til produktionsplanlægning med SkyPlanner APS
Denne guide til Sage 200-integration viser forretningspartnere og IT-teams, hvordan Sage 200 Professional og det tilhørende produktionstillæg forbindes med SkyPlanner APS. SkyPlanner udveksler data med Sage 200 i begge retninger:
- Produkter, lagerbeholdninger, indkøbsordrer og salgsordrer hentes via Sage 200 REST API.
- Produktionsordrer, operationer samt personale- og maskinressourcer hentes fra jeres produktionstillæg.
- De planlagte datoer for operationerne skrives tilbage til produktionsordrerne.
- Operatørernes tidsregistreringer sendes tilbage til bogføring af tid på de enkelte operationer.
SkyPlanner-teamet tilpasser integrationen til jeres Sage 200-opsætning under opstarten og yder support efter idriftsættelsen. Denne guide er til partnere og udviklere, som vil deltage i arbejdet eller selv bygge videre på SkyPlanners dokumenterede REST API (API-reference).
To datakilder i ét Sage 200-system
En Sage 200-installation til produktion har to lag, og integrationen læser data fra begge.
1. Sage 200 REST API til handels- og lagerdata. Sage beskriver API’ets funktion sådan: “lets your application read and modify data in a Sage 200 site” (giver jeres applikation mulighed for at læse og ændre data i installationen). Det omfatter kunder, leverandører, produkter, salgs- og indkøbsordrer samt finanskonti. Referencen til Sage 200 Professional (2025.02) grupperer ressourcerne under Cash Book, Commercials, Financials, General, Nominal, POP, Price Book, Purchases, Sales, SOP og Stock. Følgende ressourcer er relevante for planlægningen:
| Ressource | Indhold |
|---|---|
products | Kode, navn, lagerenhed, BOM-varetype, standardkostpris |
warehouse_holdings | quantity_in_stock, quantity_on_order, quantity_allocated_bom, free_stock_available, is_default_manufacturing_warehouse |
pop_orders, pop_order_lines | Åbne indkøbsordrer, line_quantity, requested_delivery_dates |
sop_orders, sop_order_lines | Kundeefterspørgsel, requested_delivery_date, promised_delivery_date |
warehouses, units | Lokationer og måleenheder |
2. Produktionstillægget til produktionsordrer. Sage 200 API har ingen endpoints til produktionsordrer, operationer eller ressourcer. Produktionsordrerne ligger i Sicon Works Order Processing, Cim200 eller det ældre modul Sage 200 Manufacturing. Integrationen læser produktionsordrer, operationer og ressourcer via den adgangsmetode, tillægget understøtter. Metoden aftales med jer og jeres Sage 200-partner under afklaringen.
Godkendelse og adgang
Om Sage 200 API skriver Sage: “uses OAuth 2.0 with OpenID Connect” (bruger OAuth med OpenID Connect). Det sker med authorization code grant-flowet. Login foregår via Sage ID.
- Tilmeld jer Sage 200 API Developer Programme, og anmod om adgangsoplysninger.
- Knyt et Sage ID til en Sage 200-bruger med adgang til de virksomheder og funktioner, som de anvendte endpoints kræver.
- Anmod om scopet
offline_access, ellers udstedes der ikke et refresh token. - Send
Authorization: Bearer <access_token>,X-SiteogX-Companymed hver databaseforespørgsel. Begge ID’er hentes fra/sites.
Basis-URL for Sage 200 Professional: https://api.columbus.sage.com/uk/sage200extra/accounts/v1. Forespørgsler bruger GET, POST, PUT og DELETE samt OData-forespørgselsparametrene $filter, $select, $top, $skip, $orderby og $expand.
I Sage 200 Professional aktiverer kundens supportleverandør API’et. På Sages tjekliste bekræfter leverandøren, at “the API is enabled” (API’et er aktiveret), og at “each required user has a Sage ID assigned.” (hver bruger, der har brug for adgang, har fået tildelt et Sage ID). I Sage 200 Standard er API’et aktiveret som standard.
Tokenenes levetid har betydning for løsningens design. Access tokens er gyldige i 8 timer. Refresh tokens er gyldige i mellem 1 og 90 dage, og “The refresh window is measured from the user’s initial sign-in, not from the most recent refresh.” (Fornyelsesperioden regnes fra brugerens første login, ikke fra den seneste fornyelse). Sage fastslår, at fornyet godkendelse “is unavoidable” (er uundgåelig). Planlæg en advarsel om at give samtykke igen, inden perioden udløber.
Hos SkyPlanner bruger REST API’et et API-token til godkendelse (SkyPlanner Settings > API) og er dokumenteret i Swagger/OpenAPI. Integrationsvejledningen gennemgår de første kald.
Registrering af ændringer
Sage 200 API-referencen har ingen ressourcer til webhooks eller abonnementer. Ændringer hentes derfor ved polling. Posterne indeholder date_time_created og date_time_updated, så hvert poll bruger $filter på date_time_updated og henter resultaterne sidevis med $top og $skip.
Poll produktionsordrer med få minutters mellemrum og lagerbeholdninger og indkøbsordrelinjer hver time. SkyPlanner sender webhooks, når planen ændres, så tilbageskrivningen er hændelsesstyret.
Datamapping
| Sage 200-objekt (kilde) | SkyPlanner-objekt | Retning | Hyppighed |
|---|---|---|---|
products, units (API) | Produkter og materialer | Sage 200 → SkyPlanner | Indlæsning, derefter polling |
| BOM-komponenter (tillæg eller BOM-modul) | Produktstruktur, underprodukter, materialer pr. produkt | Sage 200 → SkyPlanner | Ved ændringer |
| Personale- og maskinressourcer, ressourcegrupper (tillæg) | Arbejdsstationer, grupper af arbejdsstationer, personale | Sage 200 → SkyPlanner | Første indlæsning |
| Ressourcernes tilgængelighed: nedlukning, vedligeholdelse, ferie (tillæg) | Skift, fravær | Sage 200 → SkyPlanner | Dagligt |
| Produktionsordrer med operationer og tider pr. operation (tillæg) | Ordrer og opgaver med trin, varigheder og terminer | Sage 200 → SkyPlanner | Med få minutters mellemrum |
sop_order_lines: requested_delivery_date, promised_delivery_date (API) | Leveringsterminer til kunder | Sage 200 → SkyPlanner | Polling |
warehouse_holdings: quantity_in_stock, free_stock_available (API) | Lagerbeholdninger | Sage 200 → SkyPlanner | Hver time |
pop_order_lines: line_quantity, requested_delivery_dates (API) | Indkøbsordrer med forventet leveringsdato | Sage 200 → SkyPlanner | Hver time |
| Planlagt start, slut og ressource for produktionsordrens operation | Planlagt start, slut og arbejdsstation pr. operation | SkyPlanner → Sage 200 | Ved ændringer via webhook |
| Tidsbogføring på operationer (tillæg) | Tidsregistreringer og operatørtilbagemeldinger | SkyPlanner → Sage 200 | Pr. tilbagemelding eller pr. skift |
| Data om planlægningsbegrænsninger i SkyPlanner | Matrix for omstillingstider, værktøjer med begrænset kapacitet, alternative maskiner og medarbejdere | Vedligeholdes i SkyPlanner | Under opstarten |
Integrationsmønstre
1. Første indlæsning af stamdata. Hent produkter og enheder fra API’et og derefter ressourcer, ressourcegrupper og BOM-operationer fra tillægget. En ressourcegruppe med tre ens maskiner kan oprettes som én gruppe af arbejdsstationer eller tre arbejdsstationer.
2. Ordresynkronisering. Læs åbne produktionsordrer med tilhørende operationer fra tillægget samt åbne pop_order_lines og warehouse_holdings fra API’et. Planlægningen kontrollerer både lagerbeholdningen og forventede indkøbsleverancer. MRP fortsætter med at foreslå produktionsordrer i Sage 200, og SkyPlanner planlægger dem, I opretter.
3. Tilbageskrivning af planen. For hver operation, som planlægningsmotoren har placeret eller flyttet, sender SkyPlanner planlagt start, slut og ressource tilbage til produktionsordren. Tillægget beholder sine egne mængder, allokeringer og omkostningsberegninger.
4. Tilbagemeldinger fra produktionsgulvet. Operatørerne registrerer arbejdet med SkyPlanner Mobile Confirmations eller Production Timer, og tidsregistreringerne holder planen opdateret. Den registrerede tid sendes tilbage og bogføres på produktionsordrens operation, så omkostningsberegningen i Sage 200 får de faktiske timer med.
Hvis I allerede registrerer tid i Sicon Shop Floor Data Capture eller Cim200 Shop Floor Data Capture på fabrikken, skal I vælge én kanal til tidsregistrering.
5. Regler for dataejerskab og konflikter. Skriv dem ned inden idriftsættelsen:
| Data | Ejer |
|---|---|
| Produkter, styklister, mængder på produktionsordrer, reservationer, omkostninger | Sage 200 og tilføjelsesmodulet |
| Operationernes rækkefølge, start- og sluttidspunkter, tildeling af arbejdsstation | SkyPlanner |
| Matrix for omstillingstider, krav til værktøj og operatører, alternative ressourcer | SkyPlanner |
| Tidsregistrering | Sage 200, med tidsregistreringer fra SkyPlanner |
Kapacitetsdiagrammet er den primære kilde til konflikter. Hvis planlæggerne fortsætter med at flytte produktionsordrer eller operationer i Sicon Rough Cut Capacity Planning eller Cim200 Graphical Scheduler, styrer to systemer datoerne. Lad SkyPlanner styre datoerne for operationerne. Med Autopilot omplanlægger SkyPlanner automatisk, når produktionen ændrer sig.
Typiske trin i projektet
Implementeringen er normalt afsluttet nogle uger efter, at onboarding er startet. Inden da skal I validere planen i den gratis prøveperiode på 30 dage med en CSV- eller Excel-eksport af åbne produktionsordrer. Derefter forløber projektet sådan:
- Afklaring. Bekræft tilføjelsesmodul og version, metoden til at læse produktionsordrer og skrive data tilbage, synkroniseringsfrekvenser og kanalen til tidsregistrering.
- API-adgang. Supportleverandøren aktiverer Sage 200 API, knytter et Sage ID til en Sage 200-bruger og indstiller adgangen til virksomheder og funktioner.
- Første indlæsning. Produkter, enheder, ressourcer, ressourcegrupper, styklisteoperationer og tilgængelighed.
- Ordresynkronisering. Produktionsordrer, indkøbsordrelinjer og lagerbeholdning hentes via polling, med en advarsel om fornyelse af samtykke.
- Opsætning af begrænsninger i SkyPlanner. Matrix for omstillingstider, værktøj, antal operatører pr. opgave og alternative maskiner eller medarbejdere.
- Tilbageskrivning af planen. Planlagte operationsdatoer skrives til produktionsordrerne; tidsregistrering tilføjes i dette trin.
- Paralleltest og idriftsættelse. Sammenlign datoerne med den nuværende plan, ret stamdata, og aktivér derefter tilbageskrivning.
Det skal I tage højde for ved en Sage 200-integration
- Udfaset modul i en ny version. Det ældre Sage 200 Manufacturing-modul kan ikke bruges fra og med Sage 200 Professional 2025 R2. Afklar, hvilken produktionsløsning der vil være i drift ved idriftsættelsen, før I begynder at mappe data.
- Operationstider fra omkostningsdata. Sicon MRP estimerer arbejds- og maskintider ud fra omkostningsposter på styklister i Sage 200. Kontrollér dem først mod de faktiske køretider.
- Uoverensstemmelser i omkostningskategorier. Sage advarer om, at Nominal, Overhead Nominal og Overhead Recovery % skal stemme overens mellem styklisteoperationer og omkostningskategorier. Ellers gælder Sages advarsel: “there will be cost discrepancies.” (der vil opstå omkostningsafvigelser).
- Frist for fornyelse. Den maksimale periode på 90 dage regnes fra første login. En integration, hvor samtykket aldrig fornyes, stopper på samme dag hvert kvartal.
- Installationer med flere virksomheder. Én installation kan rumme flere virksomheder, så send den korrekte
X-Companymed hver forespørgsel.
Sage 200-integrationen: Hvem står for opsætning og support?
- SkyPlanner-teamet konfigurerer integrationen under onboarding og yder support efter idriftsættelsen.
- Jeres Sage 200-partner kan deltage. Partneren kender jeres tilføjelsesmodul og aktiverer API’et i Sage 200 Professional.
- Jeres egne udviklere kan bygge videre på integrationen via det samme dokumenterede REST API med et API-token. Et API-token er nok til at komme i gang, og SkyPlanner-teamet hjælper efter behov.
Når forbindelsen er etableret, planlægger Arcturus-motoren ud fra aktuelle produktionsordrer i Sage 200, og de planlagte datoer overføres til produktionsordrernes operationer. SkyPlanner fås fra 199 € pr. måned med 5 arbejdsstationer inkluderet og månedlig fakturering. I får på forhånd et tilbud på integrationen sammen med jeres abonnement, tilpasset jeres proces og behov, så I kender den samlede pris, før I starter. Se priser og funktioner, og læs, hvordan Sage 200’s egen planlægning klarer sig i sammenligningen, under produktionsplanlægning i Sage 200 ud fra den faktiske maskin- og medarbejderkapacitet. Find overblikket på Sage 200-siden og andre ERP-systemer i oversigten over ERP-integrationer.
Produktionsvirksomhedernes erfaringer med SkyPlanner
2 hsparet hver uge
“SkyPlanner har flyttet vores produktionsplanlægning fra Excel-regneark 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.
Flere 1.000produktionsordrer planlægges 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 et overblik over produktionen i realtid.
Ofte stillede spørgsmål
Omfatter Sage 200 API produktionsordrer?
Nej. Sage 200 Professional API dækker produkter, lagerbeholdning, salgs- og indkøbsordrer, økonomi og mere, men har ingen API-ressourcer til produktionsordrer eller operationer. Produktionsordrer hentes fra jeres tilføjelsesmodul til produktion, f.eks. Sicon Works Order Processing eller Cim200, via den metode, der aftales under afklaringen.
Hvem bygger Sage 200-integrationen?
SkyPlanner-teamet konfigurerer tovejsintegrationen til jeres Sage 200-opsætning under onboarding og yder support efter idriftsættelsen. Jeres Sage 200-partner aktiverer API’et og kan deltage. Jeres egne udviklere kan også bygge videre på SkyPlanners dokumenterede REST API, og et API-token er nok til at komme i gang.
Kan Sage 200 sende ændringer i realtid?
Sage 200 API har ingen webhooks. Lagerbeholdning og indkøbsordrer hentes via polling ud fra date_time_updated, og produktionsordrer læses fra jeres tilføjelsesmodul med få minutters mellemrum. I den anden retning sender SkyPlanners egne webhooks ændringer i planen, så snart de sker.
Kan vi teste SkyPlanner, før integrationen bygges?
Ja. Den gratis prøveperiode på 30 dage understøtter op til 20 arbejdsstationer med import af jeres produktionsordrer fra CSV eller Excel. Der kræves intet kreditkort. Start prøveperioden, eller tal med salg for at afklare integrationens omfang.