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.
Gantt-tidslinje i SkyPlanner APS med opgaver fordelt på arbejdsstationer og en ordreliste nedenunder.

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:

RessourceIndhold
productsKode, navn, lagerenhed, BOM-varetype, standardkostpris
warehouse_holdingsquantity_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_linesKundeefterspørgsel, requested_delivery_date, promised_delivery_date
warehouses, unitsLokationer 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-Site og X-Company med 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-objektRetningHyppighed
products, units (API)Produkter og materialerSage 200 → SkyPlannerIndlæsning, derefter polling
BOM-komponenter (tillæg eller BOM-modul)Produktstruktur, underprodukter, materialer pr. produktSage 200 → SkyPlannerVed ændringer
Personale- og maskinressourcer, ressourcegrupper (tillæg)Arbejdsstationer, grupper af arbejdsstationer, personaleSage 200 → SkyPlannerFørste indlæsning
Ressourcernes tilgængelighed: nedlukning, vedligeholdelse, ferie (tillæg)Skift, fraværSage 200 → SkyPlannerDagligt
Produktionsordrer med operationer og tider pr. operation (tillæg)Ordrer og opgaver med trin, varigheder og terminerSage 200 → SkyPlannerMed få minutters mellemrum
sop_order_lines: requested_delivery_date, promised_delivery_date (API)Leveringsterminer til kunderSage 200 → SkyPlannerPolling
warehouse_holdings: quantity_in_stock, free_stock_available (API)LagerbeholdningerSage 200 → SkyPlannerHver time
pop_order_lines: line_quantity, requested_delivery_dates (API)Indkøbsordrer med forventet leveringsdatoSage 200 → SkyPlannerHver time
Planlagt start, slut og ressource for produktionsordrens operationPlanlagt start, slut og arbejdsstation pr. operationSkyPlanner → Sage 200Ved ændringer via webhook
Tidsbogføring på operationer (tillæg)Tidsregistreringer og operatørtilbagemeldingerSkyPlanner → Sage 200Pr. tilbagemelding eller pr. skift
Data om planlægningsbegrænsninger i SkyPlannerMatrix for omstillingstider, værktøjer med begrænset kapacitet, alternative maskiner og medarbejdereVedligeholdes i SkyPlannerUnder 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:

DataEjer
Produkter, styklister, mængder på produktionsordrer, reservationer, omkostningerSage 200 og tilføjelsesmodulet
Operationernes rækkefølge, start- og sluttidspunkter, tildeling af arbejdsstationSkyPlanner
Matrix for omstillingstider, krav til værktøj og operatører, alternative ressourcerSkyPlanner
TidsregistreringSage 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:

  1. Afklaring. Bekræft tilføjelsesmodul og version, metoden til at læse produktionsordrer og skrive data tilbage, synkroniseringsfrekvenser og kanalen til tidsregistrering.
  2. API-adgang. Supportleverandøren aktiverer Sage 200 API, knytter et Sage ID til en Sage 200-bruger og indstiller adgangen til virksomheder og funktioner.
  3. Første indlæsning. Produkter, enheder, ressourcer, ressourcegrupper, styklisteoperationer og tilgængelighed.
  4. Ordresynkronisering. Produktionsordrer, indkøbsordrelinjer og lagerbeholdning hentes via polling, med en advarsel om fornyelse af samtykke.
  5. Opsætning af begrænsninger i SkyPlanner. Matrix for omstillingstider, værktøj, antal operatører pr. opgave og alternative maskiner eller medarbejdere.
  6. Tilbageskrivning af planen. Planlagte operationsdatoer skrives til produktionsordrerne; tidsregistrering tilføjes i dette trin.
  7. 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-Company med hver forespørgsel.

Sage 200-integrationen: Hvem står for opsætning og support?

  1. SkyPlanner-teamet konfigurerer integrationen under onboarding og yder support efter idriftsættelsen.
  2. Jeres Sage 200-partner kan deltage. Partneren kender jeres tilføjelsesmodul og aktiverer API’et i Sage 200 Professional.
  3. 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

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

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.

Læs om UTU’s erfaringer

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

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.

Læs om Mamecs erfaringer

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.