Integrationer / ERP / Microsoft Dynamics 365 Supply Chain Management

Guide til integration af Dynamics 365 Supply Chain Management med SkyPlanner APS til produktionsplanlægning

Denne guide til integration af Dynamics 365 Supply Chain Management viser partnere og IT-teams, hvordan de forbinder Microsoft Dynamics 365 Supply Chain Management med SkyPlanner APS. SkyPlanner udveksler data med Dynamics 365 Supply Chain Management i begge retninger via systemets standarddataenheder:

  • Produktionsordrer, ruteoperationer, rutejob, BOM-linjer, ressourcer, kalendere, frigivne produkter, lagerbeholdninger og indkøbsordrelinjer overføres til SkyPlanner.
  • Planlagte start- og sluttidspunkter samt den valgte ressource skrives tilbage til produktionsordren og dens ruteoperationer.
  • Operatørtimer og mængder føres tilbage via rutekortkladden.
  • 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 opsætning i Supply Chain Management 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).

Integrationsmuligheder i Dynamics 365 SCM

Supply Chain Management stiller sine data til rådighed via dataenheder. Fire muligheder er relevante for detailplanlægningen:

  1. OData v4 REST-endpoint. [Your organization's root URL]/data giver adgang til at oprette, læse, opdatere og slette i alle dataenheder markeret med IsPublic. Det understøtter $filter, $count, $orderby, $skip, $top, $select og $expand på første niveau. Sideinddelingen styres af serveren med højst 10.000 poster, og batchanmodninger kan samle skrivninger i ændringssæt. OData er synkront. (kilde)
  2. Batch data API. Data management package REST API og tilbagevendende integrationer overfører store datamængder asynkront. Microsoft: “If the volume is more than a few hundred thousand records, use the batch data API.” (Brug batch data API, hvis datamængden overstiger nogle få hundrede tusinde poster.) Det er også det API, der understøttes ved lokal installation. (kilde)
  3. Forretningshændelser. Finance and operations-apps publicerer forretningshændelser til Azure Service Bus, Event Grid, HTTPS-endpoints eller Power Automate. (kilde)
  4. Brugerdefinerede tjenester og OData-handlinger. Brugerdefinerede X++-tjenester og bundne OData-handlinger udfører forretningslogik efter behov.

SkyPlanner-integrationen bruger OData-endpointet til den daglige dataudveksling og batch data API til en stor indledende indlæsning. Der installeres ikke noget i Supply Chain Management.

Godkendelse

Registrer en applikation i Microsoft Entra ID (service principal). Knyt applikationen til en bruger i Supply Chain Management med de sikkerhedsroller, integrationen har brug for. Integrationen læser produktions-, ressource- og lagerdata og skriver planlægningsdata for produktionsordrer samt kladder. Tokens hentes fra Entra ID med klientlegitimationsoplysninger.

To regler afgør, hvilke data integrationen får adgang til:

  • Juridiske enheder. OData returnerer standardselskabet, medmindre anmodningen indeholder ?cross-company=true. Virksomheder med flere produktionssteder filtrerer på dataAreaId.
  • Offentlige navne. Enhedsnavnene nedenfor er navnene fra datastyringen. De offentlige navne på OData-samlinger kan være anderledes, så hent dem fra /data/$metadata i jeres miljø.

SkyPlanners REST API bruger et API-token til autentificering (SkyPlanner Settings > API) og er dokumenteret i Swagger/OpenAPI. Integrationsvejledningen gennemgår de første kald.

Datamapping

D365 SCM-enhedSkyPlanner-objektRetningHyppighed
Frigivne produkter (ItemNumber)Produkter og materialerSCM → SkyPlannerIndledende indlæsning, derefter ændringer
Produktions-BOM-linjer (ProdProductionOrderBillOfMaterialsLineEntity), BOM-linjerProduktstruktur, materialer pr. ordreSCM → SkyPlannerVed hver ordresynkronisering
Rute, ruteversioner, ruteoperationer, operationsegenskaber (RouteOperationPropertiesV2Entity)Procestrin med omstillings- og køretiderSCM → SkyPlannerIndledende indlæsning, derefter ved ændringer
Ressourcer (OpResOperationsResourceEntity), ressourcegrupper, egenskaberArbejdsstationer, arbejdsstationsgrupper, effektivitetsgraderSCM → SkyPlannerIndledende indlæsning, derefter sjældent
Arbejdstidskalendere, kalenderdage og tidsintervaller, kalendertilknytningerSkiftSCM → SkyPlannerDagligt, eller skift vedligeholdes i SkyPlanner
Produktionsordrehoveder (ProdProductionOrderHeaderEntity)Ordrer med leveringsfrister og statusSCM → SkyPlannerMed få minutters mellemrum eller ved en forretningshændelse
Ruteoperationer (ProdProductionOrderRouteOperationEntity), rutejob (ProdProductionOrderRouteJobEntity)Opgaver med varigheder og ressourcekravSCM → SkyPlannerVed hver ordresynkronisering
Fysisk lagerbeholdningLagerbeholdningerSCM → SkyPlannerHver time eller ved planlægningskørsel
Indkøbsordrelinjer med leveringsdatoIndgående materialer; lageret opdateres, når indkøbsordren markeres som DeliveredSCM → SkyPlannerHver time eller ved planlægningskørsel
Planlagt start- og slutdato med klokkeslæt samt operationsressourcen for hver ruteoperationPlanlagt start, slut og arbejdsstation pr. operationSkyPlanner → SCMVed ændringer i planen via SkyPlanner-webhook
Rutekortkladde (ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity)Tidsregistreringer og mængderSkyPlanner → SCMPr. tilbagemelding eller pr. skift, hvis det er valgt
Opsætning af begrænsninger i SkyPlannerOmstillingstidsmatrix, værktøjer som ressourcer med begrænset kapacitet, antal operatører, alternative ressourcerVedligeholdes i SkyPlannerSættes op under opstarten

Integrationsmønstre

1. Indledende indlæsning af stamdata. Indlæs ressourcer, ressourcegrupper, kalendere, frigivne produkter, ruter og BOM’er. Brug batch data API ved datamængder på flere hundrede tusinde poster og ellers OData med sideinddeling. Knyt hver SCM-ressource til en arbejdsstation i SkyPlanner. Det er ikke nok at tilknytte ressourcegrupper: operationsplanlægningen reserverer grupper, men arbejdet i produktionen udføres på de enkelte ressourcer.

2. Ordresynkronisering. Indlæs autoriserede produktionsordrer med de statusser, SkyPlanner har ansvaret for, typisk Scheduled og Released, sammen med deres ruteoperationer, rutejob og BOM-linjer. Indlæs også åbne indkøbsordrelinjer. SkyPlanner betragter bestilte materialer som tilgængelige på indkøbsordrens leveringsdato og opdaterer lageret, når indkøbsordren markeres som Delivered.

Udelad planlagte produktionsordrer, medmindre det udtrykkeligt er aftalt, at de skal med. Planning Optimization genererer dem på ny ved hver kørsel.

3. Tilbageskrivning af planen. For hver operation, som planlægningsmotoren har placeret eller flyttet, skriver SkyPlanner den planlagte start- og slutdato med klokkeslæt samt operationsressourcen til ruteoperationen. Feltnavnene hentes fra /data/$metadata i jeres miljø. Ændringerne sendes i OData-batchændringssæt, så hver planlægningskørsel overføres som én sammenhængende opdatering.

4. Tilbagemeldinger fra produktionen. Operatørerne registrerer arbejdet med SkyPlanner Mobile Confirmations eller Production Timer, og tidsregistreringerne holder planen ajour. Timer og godkendte mængder kan føres tilbage som linjer i rutekortkladden. Færdigmelding foretages fortsat dér, hvor I gør det i dag, i SCM eller Production floor execution.

Vælg én kanal til hver bogføring. Hvis de samme timer registreres fra både SkyPlanner og Production floor execution, bliver de registreret dobbelt.

5. Dataansvar og konfliktregler. Skriv dem ned før idriftsættelsen:

DataAnsvarligt system
Produkter, BOM’er, ruter, mængder, ordrestatus, omkostningsberegningSupply Chain Management
Planlagte produktionsordrerPlanning Optimization
Operationsrækkefølge, planlagt start og slut, ressourcetildelingSkyPlanner
Omstillingstidsmatrix, værktøjer, antal operatører, alternative ressourcerSkyPlanner
Skift og fraværÉt system, valgt under afklaringen
Bogføring af timer og producerede mængderSupply Chain Management, baseret på tidsregistreringer fra SkyPlanner, hvis det er valgt

Den største kilde til konflikter er SCM’s egen jobplanlægning. Hvis en planlægger omplanlægger en ordre i SCM, overskrives datoerne fra SkyPlanner. Brug IsProductionOrderSchedulingLocked i produktionsordrehovedet på de ordrer, som SkyPlanner styrer. Behandl enhver ordre, der ændres i SCM, som en ny version, og synkroniser den igen. Autopilot omplanlægger automatisk, når produktionen ændrer sig.

Hvad projektet omfatter

Implementeringen er normalt afsluttet inden for få uger efter opstarten. Inden da kan I bruge den gratis prøveperiode på 30 dage med jeres egne data. Eksportér ressourcer, ruter og åbne produktionsordrer med et eksportprojekt i datastyring eller Excel-tilføjelsesprogrammet, importér dem som CSV eller Excel, og kontrollér planen.

  1. Afklaring. Fastlæg mappingtabellen, de statusser, som SkyPlanner styrer, synkroniseringsfrekvenserne og kanalen til bogføring.
  2. Adgang. Registrér Entra ID-applikationen, knyt den til en SCM-bruger med roller, der kun giver de nødvendige rettigheder, og kontrollér de offentlige entitetsnavne i /data/$metadata. Først i et sandkassemiljø, derefter i produktionsmiljøet.
  3. Første indlæsning. Ressourcer, kalendere, frigivne produkter, ruter og styklister.
  4. Synkronisering af ordrer og indkøbsordrer. Polling med $filter på ændrede poster samt forretningshændelser, hvor de findes i jeres katalog.
  5. Opsætning af begrænsninger i SkyPlanner. Omstillingstidsmatrix, værktøjer, antal operatører og alternative maskiner eller medarbejdere.
  6. Tilbageskrivning af planen. Batchopdateringer af ruteoperationer og planlægningslås på de ordrer, som SkyPlanner styrer.
  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.

Det skal I tage højde for i en Dynamics 365 SCM-integration

  • Effektivitet kan blive medregnet to gange. SCM beregner tiden sådan: “Scheduling time = Time x 100 / Efficiency percentage.” (Planlægningstiden er tiden omregnet efter effektivitetsprocenten.) Map effektiviteten til arbejdsstationens effektivitet i SkyPlanner én gang, ikke oven i tider, der allerede er justeret.
  • Kalendere er knyttet til ressourcegrupper. Læs kalendertilknytningen for hver ressourcegruppe og ressource, ellers bliver kapaciteten forkert.
  • Operationsplanlægning kontra jobplanlægning. Ordrer, der planlægges med operationsplanlægning, har hverken start- og sluttidspunkter eller en bestemt ressource. Synkroniser ruteoperationer og ressourcekrav, ikke kun datoerne.
  • Indstillinger for begrænset kapacitet. Ressourcer med Finite capacity sat til No kan blive overbooket i SCM. Angiv begrænset kapacitet i SkyPlanner for alle ressourcer, der udgør en reel begrænsning.
  • 32 ressourcer pr. operation. SCM tillader højst 32 ressourcer pr. operation ved jobplanlægning. I SkyPlanner angives alternativer i arbejdsstationsgrupper og som alternative arbejdsstationer.
  • Sideinddeling og datamængder. OData opdeler data i sider med 10.000 poster og udvider relationer ét niveau ned. Brug batch data API til store førstegangsindlæsninger.
  • Juridiske enheder. Uden cross-company=true og filtre på dataAreaId synkroniserer en fabrik med flere selskaber kun standardselskabet.

Hvem opsætter integrationen?

Arbejdet omfatter mapping til jeres ruter, ressourcer og SCM-opsætning samt opsætning af begrænsninger i SkyPlanner: omstillingstidsmatrix, værktøjer, antal operatører og alternative ressourcer.

  1. SkyPlanner-teamet opsætter integrationen under opstarten og yder support efter idriftsættelsen. Det omfatter SkyPlanner-siden og de aftalte dataentiteter i SCM. Hver fabrik bruger D365 SCM på sin egen måde, og det er her, den viden kommer i spil.
  2. Jeres Dynamics-partner kan deltage. Partneren kender jeres konfiguration, udvidelser og sikkerhedsroller og kan opsætte Entra ID-applikationen og adgangen til entiteter. SkyPlanner stiller REST API, Swagger/OpenAPI-dokumentation og webhooks til rådighed.
  3. Jeres egne udviklere kan bygge videre på integrationen via 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 SCM, og de planlagte datoer skrives til ruteoperationerne. 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 ud fra jeres processer og behov sammen med prisen på abonnementet, så I kender den samlede pris, før I går i gang.

Se, hvordan SCM’s egen planlægning klarer sig i sammenligningen, i produktionsplanlægning i Dynamics 365 SCM med hensyn til den faktiske kapacitet. Overblikket findes på siden om Dynamics 365 SCM, og andre ERP-systemer finder I i oversigten over ERP-integrationer.

Start gratis prøveperiode Kontakt salg

Producenternes anmeldelser af 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 produktionsoptimering 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

100%leveringssikkerhed siden 2021

“SkyPlanner giver os overblik over kapaciteten og gør planlægningen forudsigelig.”

Dan Berglund, COO/CFO
Opes Corporation · Kemikalie- og fødevareproduktion

Leveringssikkerheden har været 100% i hele den tid, SkyPlanner har været i brug, siden 2021.

Læs Opes Corporations anmeldelse

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

1.000-vis afproduktionsordrer planlagt automatisk

“Vi har fået 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

Hvilken API i D365 SCM bruger integrationen?

OData v4 REST-endpointet på /data, som giver adgang til at oprette, læse, opdatere og slette i alle offentlige dataentiteter. Store førstegangsindlæsninger bruger batch data API. Forretningshændelser giver triggere i næsten realtid, hvor de findes i jeres katalog.

Skal vi installere noget i Supply Chain Management?

Nej. Integrationen bruger standarddataentiteter via OData. Jeres administrator registrerer en Microsoft Entra ID-applikation og knytter den til en SCM-bruger med de nødvendige roller.

Hvordan skrives de planlagte datoer tilbage til Supply Chain Management?

SkyPlanner skriver de planlagte start- og slutdatoer med klokkeslæt samt operationens ressource til produktionsordrens ruteoperationer via OData batch changesets. Ordrer, som SkyPlanner styrer, beskyttes med IsProductionOrderSchedulingLocked.

Hvorfor tilslutte SkyPlanner i stedet for at finjustere jobplanlægningen i SCM?

Planning Optimization tager kun hensyn til begrænset kapacitet inden for tidshorisonten for begrænset kapacitet og planlægger med ubegrænset kapacitet uden for den (kilde). Jobplanlægningen i SCM placerer én produktionsordre ad gangen uden om den kapacitet, der allerede er reserveret, og medregner omstilling som tid på operationen (kilde). Microsoft fraråder desuden behovsplanlægning med begrænset kapacitet, når skiftehold ændrer kapaciteten (kilde). SkyPlanner planlægger alle autoriserede ordrer samlet med en omstillingstidsmatrix, og Autopilot omplanlægger automatisk ved enhver væsentlig ændring. SkyPlanner-teamet opsætter og yder support til tovejsintegrationen, og jeres Dynamics-partner kan stå for SCM-siden.

Skal SkyPlanner planlægge planlagte produktionsordrer?

Normalt ikke. Planning Optimization gendanner planlagte produktionsordrer ved hver kørsel. SkyPlanner planlægger autoriserede produktionsordrer med de statusser, der er aftalt under afklaringen.

Fungerer integrationen med lokalt installeret Supply Chain Management?

Ved lokale installationer kører integrationen via batch data API, som Microsoft understøtter i det miljø. På SkyPlanner-siden bruges samme REST API i begge tilfælde, og integrationsvejen fastlægges under afklaringen.

Kan vi teste 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 Supply Chain Management. Det kræver ikke kreditkort. Start prøveperioden, eller kontakt salg for at afklare integrationens omfang.