Integrationer / ERP / Epicor Kinetic
Guide til integration af Epicor Kinetic med SkyPlanner APS til detailplanlægning
Denne guide viser Epicor-partnere, IT-teams og tekniske indkøbere, hvordan SkyPlanner APS bruges til produktionsplanlægning oven på Epicor Kinetic, så planen respekterer maskinernes og medarbejdernes faktiske kapacitet. SkyPlanner integreres med Epicor Kinetic i begge retninger via Kinetics egne REST-tjenester:
- Produktionsordrer, operationer, ressourcer og leveranceplanlinjer på indkøbsordrer overføres til SkyPlanner.
- De planlagte operationsdatoer skrives tilbage til produktionsordrerne.
- Operatørernes tidsregistreringer bogføres som arbejdstid i Kinetic.
- SkyPlanner-webhooks sender ændringer i planen, så snart de sker.
SkyPlanner-teamet tilpasser integrationen til jeres Kinetic-opsætning under opstarten og yder support efter idriftsættelsen. Denne guide er til partnere og udviklere, der vil bidrage eller selv bygge videre på SkyPlanners dokumenterede REST API (API-reference).
Har I endnu ikke afgjort, om Kinetics eget Scheduling and Resource Management eller APS-modulet dækker jeres behov, så læs først Understøtter Epicor Kinetic produktionsplanlægning?
Kinetics integrationsmuligheder
Epicor skriver: “All Kinetic services, including business objects, processes, reports, BAQs, and Epicor Functions, are accessible through REST endpoints.” (Alle Kinetic-tjenester, herunder forretningsobjekter, processer, rapporter, BAQs og Epicor Functions, er tilgængelige via REST-endpoints.) En integration til detailplanlægning bygger på fire Epicor-teknologier:
- Kinetic REST API v2 (OData v4). Forretningsobjekter udstilles som tjenester med navnet
Erp.BO.<Name>Svc. Den sædvanlige sti er/api/v2/odata/{Company}/Erp.BO.{Svc}/{EntitySet}. REST v1 findes stadig, men er en ældre version, så byg på v2. Kontrollér entitetssæt og metoder for din version i REST Help på/api/help/v2/. - Business Activity Queries (BAQ) via REST. En BAQ udstilles på
/api/v2/odata/{Company}/BaqSvc/{BAQ}/Data. Det er den praktiske vej til at hente planlægningsdata, der sammenkoblerJobHead,JobOper,JobMtl,PartWhseogPOReli ét kald (eksempel fra brugerforummet). - Epicor Functions (EFx). Funktioner på serversiden, som kan kaldes på
/api/v2/efx/{Company}/{Library}/{Function}. Epicor oplyser, at de “can be triggered from multiple entry points, including BPMs, REST services, schedules, and application events.” (kan udløses fra flere indgangspunkter, herunder BPM’er, REST-tjenester, tidsplaner og applikationshændelser). - BPM-direktiver. Method and Data Directives udløses, når en produktionsordre eller operation ændres, og kan kalde en funktion, der sender data ud.
Ved filoverførsel håndterer DMT importen, mens BAQ-eksporter står for dataudtræk. Epicor tilbyder også Epicor Automation Studio, som virksomheden beskriver som “a low-code app for integration-led automations” (en low-code-app til automatisering baseret på integrationer). Undgå direkte databaseadgang: REST, BAQs og funktioner fungerer ens lokalt og på Kinetic Cloud.
Godkendelse og adgangsomfang
Kinetic REST v2 styrer adgangen for hver integration. Hver integration får en API-nøgle, der er knyttet til et adgangsomfang med de tjenester og metoder, den må kalde. Epicor formulerer det sådan: “API keys, access scopes, and standard authentication methods control which services and methods are available to each integration.” (API-nøgler, adgangsomfang og standardmetoder til godkendelse styrer, hvilke tjenester og metoder hver integration har adgang til.)
Ud over API-nøglen skal den kaldende part logge ind som Kinetic-bruger. Brug en særskilt integrationsbruger med netop de rettigheder, integrationen har brug for. Hos SkyPlanner bruger REST API’et JWT-godkendelse og er dokumenteret i Swagger/OpenAPI.
For en SkyPlanner-integration omfatter adgangsomfanget typisk:
Erp.BO.JobEntrySvc(JobEntries, JobOpers, GetDatasetForTree)Erp.BO.ResourceGroupSvcogErp.BO.ResourceSvcErp.BO.CapabilitySvcErp.BO.PartSvc(Parts, PartWhses)Erp.BO.EmpBasicSvcErp.BO.ScheduleEngineSvc(GetNewParamsForJob, MoveJobItem, ChangeResource)Erp.BO.LaborSvc(Labors, LaborDtls, StartActivity, EndActivityByEmp)- de BAQs og EFx-biblioteker, I publicerer til integrationen
Hvis en metode mangler i adgangsomfanget, fejler kaldet under drift, ikke under opsætningen. Medtag alle de metoder, I kalder, overvåg API-nøglens udløb, og opret alarmer ved HTTP-fejl, ikke kun ved tomme resultater.
Registrering af ændringer: BPM-direktiver, funktioner eller polling
Epicor dokumenterer ikke noget generelt API til udgående webhooks. Derfor overføres ændringer i Kinetic til SkyPlanner på en af to måder:
- Hændelsesstyret. Et BPM Data Directive på
JobHeadellerJobOperkalder en Epicor Function, som sender den ændrede produktionsordre til SkyPlanners REST API. - Planlagt polling. En BAQ, der filtrerer på ændringsdato, køres med få minutters mellemrum eller hver time. Denne løsning er enklere at drive og genoprette efter fejl.
I den modsatte retning sender SkyPlanner status- og planændringer via sine webhooks. Jeres middleware eller et EFx-endpoint modtager dem og skriver til Kinetic.
Datamapping
| Kinetic-entitet / -tjeneste | SkyPlanner-objekt | Retning | Hyppighed |
|---|---|---|---|
Part, PartRev (Erp.BO.PartSvc/Parts) | Produkt | Fra Kinetic til SkyPlanner | Førstegangsindlæsning, derefter efter fast tidsplan |
PartMtl (metode), JobMtl (produktionsordre) | Materialer til produkt og ordre | Fra Kinetic til SkyPlanner | Sammen med produktionsordren |
PartOpr (metode), JobOper (produktionsordre) | Procestrin | Fra Kinetic til SkyPlanner | Sammen med produktionsordren |
ResourceGroup, Resource (ResourceGroupSvc, ResourceSvc) | Arbejdsstationsgrupper, arbejdsstationer | Fra Kinetic til SkyPlanner | Førstegangsindlæsning og ved ændringer |
Capability (CapabilitySvc) | Alternative arbejdsstationer | Fra Kinetic til SkyPlanner | Førstegangsindlæsning og ved ændringer |
| Kalendere for ressourcer og ressourcegrupper | Skift og undtagelser | Fra Kinetic til SkyPlanner | Førstegangsindlæsning, derefter ugentligt eller ved ændringer |
EmpBasic (EmpBasicSvc) | Medarbejdere | Fra Kinetic til SkyPlanner | Førstegangsindlæsning og ved ændringer |
JobHead (JobEntrySvc/JobEntries) | Ordre | Fra Kinetic til SkyPlanner | I realtid via BPM + EFx eller ved polling med BAQ |
PartWhse via BAQ | Lagerbeholdning | Fra Kinetic til SkyPlanner | Efter fast tidsplan |
Indkøbsordrer: POHeader, PODetail, PORel via BAQ | Indkøbsordrer / indgående materialer (forventet leveringsdato) | Fra Kinetic til SkyPlanner | Efter fast tidsplan eller ved ændringer i indkøbsordren via BPM + EFx |
| Planlagt start og slut pr. operation | Datoer i JobOper via ScheduleEngineSvc (MoveJobItem, ChangeResource) i en EFx | Fra SkyPlanner til Kinetic | Ved ændringer i planen via webhook |
| Tidsregistreringer, mængder, fremdrift pr. operation, årsager | Labors / LaborDtls via LaborSvc; årsagskoder via Erp.BO.ReasonSvc | Fra SkyPlanner til Kinetic | I realtid via webhook |
Epicor kalder produktionsordren et Job. Knyt én JobHead til én SkyPlanner-ordre og hver JobOper til et procestrin. Bevar produktionsordrenummer, montagesekvens og operationssekvens som den eksterne nøgle.
Integrationsmønstre
1. Førstegangsindlæsning af stamdata. Hent varer, ressourcegrupper, ressourcer, kapabiliteter, kalendere og medarbejdere. Opret arbejdsstationer i SkyPlanner ud fra Kinetic-ressourcer og arbejdsstationsgrupper ud fra ressourcegrupper. Opdel store dataudtræk i sider med $top og $skip, eller hent store datamængder via en BAQ.
2. Ordresynkronisering. Send frigivne og fastlagte produktionsordrer med deres operationer og materialer. Hent hele ordrestrukturen med GetDatasetForTree eller en BAQ, ikke én entitet ad gangen. Lad ikke-fastlagte MRP-ordrer blive i Kinetic, indtil de er fastlagt. Synkronisér åbne delleverancer på indkøbsordrer med deres leveringsdatoer, samtidig med at lagerbeholdningen hentes. SkyPlanner betragter bestilte materialer som tilgængelige på leveringsdatoen og opdaterer lagerbeholdningen, når indkøbsordren markeres som Delivered. Planlægningen kontrollerer dermed både lagerbeholdningen og kommende materialeleverancer fra indkøb.
3. Tilbageskrivning af planen. SkyPlanners webhook sender planlagt start, slut og arbejdsstation for hver operation til et EFx-endpoint (/api/v2/efx/{Company}/{Library}/{Function}). Funktionen skriver via Kinetics planlægningsmotor, som er det samme forretningsobjekt, der ligger bag planlægningen i Job Entry og på planlægningstavlerne (eksempel fra brugerforummet):
ScheduleEngine.GetNewParamsForJobopretter planlægningsmotorens datasæt for produktionsordren.- Funktionen angiver produktionsordrenummer, montage- og operationssekvens samt planlagt startdato og -tidspunkt og kalder derefter
ScheduleEngine.MoveJobItem. - Hvis SkyPlanner har placeret operationen på en anden ressource i gruppen, flytter
ScheduleEngine.ChangeResourceden dertil.MoveJobItemalene beholder gruppens standardressource. - Funktionen låser produktionsordrens plan (
JobHead.SchedLocked, indstillingen Lock i Job Entry), så Global Scheduling bevarer SkyPlanners datoer.
Ved at samle disse kald i én Epicor Function bliver skrivningen atomar pr. produktionsordre, og du kan tilføje din egen validering. Hvis virksomheden foretrækker at undgå en tilpasset funktion, kan den samme sekvens køres som direkte REST-kald til Erp.BO.ScheduleEngineSvc. Skriv aldrig direkte til ResourceTimeUsed eller datofelter i JobOper: Det omgår motoren, så allokeringerne på planlægningstavlen ikke længere stemmer.
4. Tilbagemeldinger fra produktionen. Operatørerne registrerer arbejde i SkyPlanner med Mobile Confirmations, Production Timer eller Quick Log Mode. Hver afsluttet tidsregistrering bliver til en arbejdsregistrering i Kinetic via Erp.BO.LaborSvc: StartActivity og EndActivityByEmp til løbende registrering eller Labors med Update til efterregistrering. Hvis virksomheden kræver godkendelse, skal submitForApproval med i både forløbet og adgangsomfanget.
5. Dataejerskab og konfliktregler. Skriv dem ned før idriftsættelsen:
| Data | Ejer |
|---|---|
| Varer, fremstillingsmetoder, ressourcer, kalendere, produktionsordrer, MRP, lager, kostberegning | Kinetic |
| Mængder og ordrestatus | Kinetic |
| Operationsrækkefølge, planlagte datoer, ressource inden for gruppen | SkyPlanner |
Produktionsordrer, som SkyPlanner planlægger, har en planlægningslås, så Global Scheduling ikke ændrer deres datoer. Behold Kinetics planlægning for de ressourcer, SkyPlanner ikke planlægger.
Nøgler, genforsøg og afstemning
- Stabile nøgler. Hver post indeholder sin Kinetic-nøgle: ordrenummer, montagesekvens og operationssekvens for operationer; registreringshoved og -linje for arbejdstid. Skrivninger udføres som upserts på denne nøgle, så en gentaget meddelelse opdaterer posten i stedet for at oprette en dublet.
- Genforsøg. Hvis en skrivning til et af systemerne fejler, forsøges den igen. Arbejdstid bogføres én gang pr. tidsregistrerings-ID i SkyPlanner, så et genforsøg ikke kan medføre, at timer tælles dobbelt.
- Afstemning. En planlagt BAQ sammenligner åbne produktionsordrer, operationsstatus og mængder med SkyPlanner og retter afvigelser, for eksempel hvis en ordre blev lukket i Kinetic, mens en meddelelse var undervejs.
- Mængdeændringer og annulleringer. En ændret mængde i Kinetic opdaterer ordren og dens procestrin i SkyPlanner. En delvis færdigmelding reducerer den resterende køretid. En produktionsordre, der lukkes eller slettes i Kinetic, fjernes fra planen ved næste synkronisering.
Det indeholder projektet
Implementeringen afsluttes normalt inden for få uger efter opstarten. Et Kinetic-projekt omfatter:
- En prøveperiode på 30 dage med CSV- eller Excel-eksporter af produktionsordrer, operationer og ressourcer, før udviklingsarbejdet begynder.
- API-nøgle, adgangsomfang, en særskilt integrationsbruger og de BAQs, integrationen læser.
- Mapping af stamdata: kapabiliteter, ressourcegrupper, ressourcer, kalendere og medarbejdere knyttes til arbejdsstationer, grupper, skift og personale i SkyPlanner.
- Førstegangsindlæsning af varer, fremstillingsmetoder (BOM og operationer) og ressourcer.
- Synkronisering af produktionsordrer og indkøbsordrer (leveringsdatoer i
PORel) samt lagerbeholdning fraPartWhse. - Tilbageskrivning af planlagte operationsdatoer via
ScheduleEngineSvc(MoveJobItem, ChangeResource) i en Epicor Function, hvor produktionsordrens plan låses. - Tilbagemeldinger fra produktionen bogføres som arbejdsregistreringer via
LaborSvc. - Test parallelt med den eksisterende Kinetic-plan og derefter idriftsættelse.
Faldgruber i Kinetic
- Finite indstilles flere steder. Afkrydsningsfeltet Finite findes på ressourcen. Den tidshorisont, hvor produktionsplanlægningen skal respektere den faktiske kapacitet, indstilles på ressourcen, på ressourcegruppen og på fanen Planning i Site Maintenance. Hvert planlægningsværktøj har også sit eget Finite-afkrydsningsfelt. Før I importerer Kinetic-datoer som udgangspunkt, skal I kontrollere, om de overhovedet er planlagt under hensyn til den faktiske kapacitet.
- Capability eller Resource Group og Resource. Når en operation angiver en kapabilitet, er felterne for ressourcegruppe og ressource tomme. Ellers angiver den en ressourcegruppe, nogle gange med en bestemt ressource. Integrationen skal læse de samme felter og selv finde de ressourcer, der opfylder den angivne kapabilitet.
- Kalendere afspejler tidligere tilpasninger. Ressourcekalendere og medarbejderantal er ofte justeret for at få den indbyggede planlægning til at fungere som ønsket. Overfør de reelle skiftmønstre og de faktiske medarbejdere til SkyPlanner, og lad systemet tildele flere operatører til en opgave, når den kræver et hold.
- Datoer skal gennem motoren, ikke CRUD. En simpel opdatering af operationsdatoer via
JobEntrySvcomplanlægger ikke ordren. Et indlæg i brugerforummet viser etJobScheduling-kald, der returnerer 200 OK, uden at produktionsordren ændres. BrugScheduleEngine-sekvensen ovenfor. - Datadisciplin afgør resultatet. For optimistiske operationstider, manglende indkøbsleveringstider, produktionsordrer, der ikke bliver lukket, og driftsstop, der mangler i kalenderne, forringer enhver plan, uanset om den laves i Kinetic eller et eksternt system (Bluesky ERP).
Hvem opsætter Kinetic-integrationen?
Ingen fabrikker bruger Kinetic helt ens. Ruter baseret på kapabiliteter, ressourcegruppernes kalendere, BAQ-design, BPM-direktiver og versionsspecifikke metoder til tilbageskrivning varierer fra fabrik til fabrik. Den korrekte opsætning gør forskellen mellem en plan, planlæggerne stoler på, og en, de må lave om.
- SkyPlanner-teamet opsætter integrationen under opstarten og yder support efter idriftsættelsen. Teamet mapper jeres ressourcer, produktionsordrer og leveranceplanlinjer på indkøbsordrer og opsætter BAQ-læsninger, BPM-triggere og funktionen til tilbageskrivning. Teamet forbinder SkyPlanners REST API og webhooks med Kinetic REST v2. Supporten fortsætter, når jeres BAQs, BPMs eller Kinetic-version ændres.
- Jeres Epicor-partner. Partnere, der allerede udvikler BAQs, BPMs og Epicor Functions, kan arbejde med det samme dokumenterede SkyPlanner REST API, som læser og skriver ordrer, produkter, materialer, procestrin og tidsregistreringer.
- Jeres egne udviklere. Interne teams med erfaring i Kinetic REST kan bygge integrationen direkte eller i Automation Studio, hvis I bruger det. En SkyPlanner-API-nøgle er nok til at komme i gang (integrationsvejledning), og SkyPlanner-teamet hjælper efter behov. Produktdokumentationen er offentligt tilgængelig i SkyPlanners dokumentation.
Det samme integrationsmønster med API og webhooks er i drift med andre ERP-systemer, for eksempel hos UTU. Hos Laboratory & Allied byggede det interne IT-team i vid udstrækning selv integrationen til SAP Business One med hjælp fra SkyPlanner.
Uanset hvem der bygger integrationen, er starten den samme: Brug først den gratis prøveperiode på 30 dage med CSV-import, afprøv planen, og byg derefter integrationen. Prisen er fra 199 € pr. måned med 5 arbejdsstationer, månedlig fakturering og mulighed for at opsige når som helst. I får på forhånd et tilbud på integrationen tilpasset jeres processer og behov sammen med abonnementet, så I kender den samlede pris, før I starter.
Hvorfor vælge denne løsning frem for en licens til Kinetic APS?
For en teknisk indkøber handler sammenligningen om omfang, og hvor hurtigt løsningen skaber værdi. Vælg SkyPlanner, når:
- Integrationen skal holdes enkel. Produktionsordrer, operationer, ressourcer og materialer sendes ud. Planlagte datoer og arbejdstid kommer retur. Datamappingen ovenfor dækker hele omfanget.
- Planen skal reagere mellem planlægningskørsler. Arcturus laver produktionsplanen på få sekunder under hensyn til maskinernes og medarbejdernes faktiske kapacitet, og Autopilot omplanlægger automatisk, når produktionen ændres. SkyPlanners webhooks sender hver ændring, så Kinetic får nye datoer uden en Global Scheduling-kørsel.
- Rapportering fra produktionen bør føres over i Kinetics arbejdsregistreringer. Operatørerne registrerer arbejde på telefon eller tablet med Mobile Confirmations, Production Timer og Quick Log Mode. Bogføring via
LaborSvcer en del af den samme integration. - Indkøbte materialer afgør, hvornår opgaver kan starte. Både lagerbeholdning og åbne leveranceplanlinjer på indkøbsordrer indgår i planen, så operationerne starter, når materialerne faktisk forventes at være til rådighed.
- I har flere end to begrænsninger. Flere operatører på samme opgave, værktøjer, der er optaget andre steder, samt alternative arbejdsstationer og medarbejdere indgår alle i én plan. En matrix for omstillingstider styrer rækkefølgen af omstillinger, og integrationen skriver resultatet tilbage.
- I vil se beviset før projektet og holde projektet kort. Prøveperioden viser jeres egen plan baseret på en BAQ-eksport med op til 20 arbejdsstationer og uden krav om kreditkort. Implementeringen afsluttes normalt inden for få uger efter opstarten.
Se funktioner, læs kundeanmeldelser, eller book en demo.
Produktionsvirksomheders anmeldelser af SkyPlanner
2 hsparet hver uge
“Med SkyPlanner er vi gået fra produktionsplanlægning i Excel-ark til optimering af produktionen i realtid.”
Kalle Kalliomäki, specialist i forsyningskæder
UTU · Eltavler og koblingsanlæg
Produktionsplanlægningen sparer 2 timers arbejdstid hver uge, og en ny opgavekø når ud til linjen på få sekunder.
+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.
1.000-visaf produktionsordrer 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 overblik over produktionen i realtid.
99,2%leveringssikkerhed
“SkyPlanner har givet os overblik, så vi kan identificere flaskehalse, og gjort produktionsstyringen mere overskuelig.”
Toni Tuori, produktionschef
Piristeel · Tagsikkerhed og regnvandssystemer
Leveringssikkerheden nåede op på 99,2% i år, og detailplanlægningen sparer op til fire timers arbejdstid om dagen.
Ofte stillede spørgsmål
Hvordan integreres SkyPlanner APS med Epicor Kinetic?
Integrationen går begge veje via Kinetic REST v2, BAQs og Epicor Functions. Produktionsordrer, operationer, ressourcer og indkøbsordrefrigivelser overføres til SkyPlanner. Planlagte operationsdatoer og arbejdstimer sendes tilbage, og webhooks sender ændringer i planen, så snart de sker. SkyPlanner-teamet tilpasser integrationen til jeres Kinetic-opsætning under opstarten, og jeres Epicor-partner eller udviklere kan bruge samme REST API.
Hvilket Kinetic API bør en integration til detailplanlægning bruge?
REST v2. Brug JobEntrySvc til produktionsordrer og operationer, ResourceGroupSvc, ResourceSvc og CapabilitySvc til kapacitet, BAQ’er til store dataudtræk og LaborSvc til at skrive arbejdsregistreringer tilbage.
Understøtter Epicor Kinetic webhooks?
Ikke som et generelt API til udgående webhooks. Hændelsesstyrede overførsler sker via BPM-direktiver, der kalder Epicor Functions. Alternativt kan I forespørge en BAQ med faste intervaller.
Kan SkyPlanner skrive planlagte datoer tilbage til produktionsordrer i Kinetic?
Ja. En Epicor Function kalder ScheduleEngine.GetNewParamsForJob, MoveJobItem for hver operation og ChangeResource, når ressourcen er ændret. Derefter låser den produktionsordrens plan, så Global Scheduling bevarer datoerne. De samme kald kan også køres direkte via REST på Erp.BO.ScheduleEngineSvc.
Hvem vedligeholder integrationen?
SkyPlanner-teamet konfigurerer integrationen under opstarten og yder support efter idriftsættelsen, også når jeres BAQs, BPMs eller Kinetic-version ændres.
Fungerer integrationen med Epicor Kinetic installeret lokalt?
Ja. REST API, BAQs, BPMs og Epicor Functions fungerer på samme måde lokalt og i Kinetic-cloudmiljøet, så det samme integrationsdesign dækker begge dele.
Hvor lang tid tager det at integrere SkyPlanner APS og Epicor Kinetic?
Implementeringen er normalt færdig inden for få uger efter opstarten. Den omfatter den mapping, indledende dataindlæsning, synkronisering af produktions- og indkøbsordrer, tilbageskrivning af planen og bogføring af arbejdstimer, som er beskrevet ovenfor. Det hele testes parallelt med jeres nuværende plan.