Integrasjoner / ERP / Epicor Kinetic
Integrasjonsguide for Epicor Kinetic – produksjonsplanlegging med SkyPlanner APS
Denne guiden viser Epicor-partnere, IT-team og tekniske innkjøpere hvordan SkyPlanner APS kan brukes til produksjonsplanlegging sammen med Epicor Kinetic, slik at planen tar hensyn til faktisk maskin- og bemanningskapasitet. SkyPlanner integreres med Epicor Kinetic i begge retninger via Kinetics egne REST-tjenester:
- Jobber, operasjoner, ressurser og leveranseplanlinjer for innkjøpsordrer overføres til SkyPlanner.
- Planlagte operasjonsdatoer føres tilbake til jobbene.
- Operatørenes timeregistreringer føres tilbake som arbeidstimer i Kinetic.
- SkyPlanner sender planendringer via webhooks så snart de skjer.
SkyPlanner-teamet konfigurerer integrasjonen for deres Kinetic-oppsett under oppstarten og gir støtte etter at løsningen er satt i drift. Denne guiden er for partnere og utviklere som vil delta i arbeidet eller selv bygge videre på SkyPlanners dokumenterte REST API (API-referanse).
Hvis dere ennå ikke har avklart om Kinetics egen Scheduling and Resource Management eller APS-modulen dekker behovene deres, bør dere først lese Har Epicor Kinetic produksjonsplanlegging som tar hensyn til faktisk kapasitet?
Integrasjonsgrensesnitt i Kinetic
Epicor opplyser: «All Kinetic services, including business objects, processes, reports, BAQs, and Epicor Functions, are accessible through REST endpoints.» (Alle Kinetic-tjenester, inkludert forretningsobjekter, prosesser, rapporter, BAQ-er og Epicor Functions, er tilgjengelige via REST-endepunkter.) En integrasjon for produksjonsplanlegging bygger på fire Epicor-teknologier:
- Kinetic REST API v2 (OData v4). Forretningsobjekter gjøres tilgjengelige som tjenester med navnet
Erp.BO.<Name>Svc. Den vanlige stien er/api/v2/odata/{Company}/Erp.BO.{Svc}/{EntitySet}. REST v1 finnes fortsatt, men er en eldre versjon, så bygg på v2. Kontroller hvilke entitetssett og metoder som finnes i din versjon, i REST Help på/api/help/v2/. - Business Activity Queries (BAQ) via REST. En BAQ gjøres tilgjengelig på
/api/v2/odata/{Company}/BaqSvc/{BAQ}/Data. Dette er en praktisk måte å lese ut planleggingsdata på, derJobHead,JobOper,JobMtl,PartWhseogPORelkobles sammen i ett kall (eksempel fra brukerforumet). - Epicor Functions (EFx). Funksjoner på serversiden som kan kalles på
/api/v2/efx/{Company}/{Library}/{Function}. Epicor oppgir at de «can be triggered from multiple entry points, including BPMs, REST services, schedules, and application events.» (kan utløses fra flere inngangspunkter, blant annet BPM-er, REST-tjenester, tidsplaner og applikasjonshendelser). - BPM-direktiver. Method and Data Directives utløses når en jobb eller operasjon endres, og kan kalle en funksjon som sender data ut.
Ved filoverføring håndterer DMT importen, mens BAQ-eksporter håndterer uttrekkene. Epicor tilbyr også Epicor Automation Studio, som selskapet beskriver som «a low-code app for integration-led automations» (en lavkodeapp for integrasjonsdrevet automatisering). Unngå direkte databasetilgang: REST, BAQ-er og funksjoner fungerer likt lokalt og på Kinetic Cloud.
Autentisering og tilgangsomfang
Kinetic REST v2 styrer tilgangen for hver integrasjon. Hver integrasjon får en API-nøkkel knyttet til et tilgangsomfang som angir hvilke tjenester og metoder den kan kalle. Epicor formulerer det slik: «API keys, access scopes, and standard authentication methods control which services and methods are available to each integration.» (API-nøkler, tilgangsomfang og standard autentiseringsmetoder styrer hvilke tjenester og metoder hver integrasjon har tilgang til.)
I tillegg til å bruke API-nøkkelen må den som gjør kallet, logge inn som en Kinetic-bruker. Bruk en egen integrasjonsbruker med bare de rettighetene integrasjonen trenger. På SkyPlanner-siden bruker REST API-et JWT-autentisering og er dokumentert i Swagger/OpenAPI.
For en SkyPlanner-integrasjon omfatter tilgangen vanligvis:
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)- BAQ-ene og EFx-bibliotekene dere publiserer for integrasjonen
Hvis en metode mangler i tilgangsomfanget, feiler kallet under kjøring, ikke under oppsettet. List opp alle metodene dere kaller, overvåk når API-nøkkelen utløper, og sett opp varsling ved HTTP-feil – ikke bare ved tomme resultater.
Oppdage endringer: BPM-direktiver, funksjoner eller polling
Epicor dokumenterer ikke noe generelt API for utgående webhooks. Endringer i Kinetic når derfor SkyPlanner på én av to måter:
- Hendelsesdrevet. En BPM Data Directive på
JobHeadellerJobOperkaller en Epicor Function, som sender den endrede jobben til SkyPlanner REST API. - Planlagt polling. En BAQ filtrert på endringsdato kjøres med noen minutters mellomrom eller hver time. Denne løsningen er enklere å drifte og få i gang igjen etter feil.
I motsatt retning sender SkyPlanner status- og planendringer via webhooks. Mellomvaren deres eller et EFx-endepunkt mottar dem og skriver til Kinetic.
Datakobling
| Entitet / tjeneste i Kinetic | Objekt i SkyPlanner | Retning | Hyppighet |
|---|---|---|---|
Part, PartRev (Erp.BO.PartSvc/Parts) | Produkt | Fra Kinetic til SkyPlanner | Førstegangsinnlasting, deretter etter fast tidsplan |
PartMtl (metode), JobMtl (jobb) | Materialer til produkt og ordre | Fra Kinetic til SkyPlanner | Sammen med jobben |
PartOpr (metode), JobOper (jobb) | Prosesstrinn | Fra Kinetic til SkyPlanner | Sammen med jobben |
ResourceGroup, Resource (ResourceGroupSvc, ResourceSvc) | Arbeidsstasjonsgrupper, arbeidsstasjoner | Fra Kinetic til SkyPlanner | Førstegangsinnlasting, deretter ved endringer |
Capability (CapabilitySvc) | Alternative arbeidsstasjoner | Fra Kinetic til SkyPlanner | Førstegangsinnlasting, deretter ved endringer |
| Kalendere for ressurser og ressursgrupper | Skift og unntak | Fra Kinetic til SkyPlanner | Førstegangsinnlasting, deretter ukentlig eller ved endringer |
EmpBasic (EmpBasicSvc) | Personell | Fra Kinetic til SkyPlanner | Førstegangsinnlasting, deretter ved endringer |
JobHead (JobEntrySvc/JobEntries) | Ordre | Fra Kinetic til SkyPlanner | I sanntid via BPM + EFx, eller ved periodisk spørring med BAQ |
PartWhse via BAQ | Lagerbeholdning | Fra Kinetic til SkyPlanner | Etter fast tidsplan |
Innkjøpsordrer: POHeader, PODetail, PORel via BAQ | Innkjøpsordrer / innkommende materialer (forventet leveringsdato) | Fra Kinetic til SkyPlanner | Etter fast tidsplan, eller ved endringer i innkjøpsordrer via BPM + EFx |
| Planlagt start og slutt per operasjon | Datoer i JobOper via ScheduleEngineSvc (MoveJobItem, ChangeResource) i en EFx | Fra SkyPlanner til Kinetic | Ved endringer i produksjonsplanen, via webhook |
| Tidsregistreringer, mengder, fremdrift per operasjon, årsaker | Labors / LaborDtls via LaborSvc; årsakskoder via Erp.BO.ReasonSvc | Fra SkyPlanner til Kinetic | I sanntid via webhook |
Epicor kaller produksjonsordren en Job. Koble én JobHead til én ordre i SkyPlanner og hver JobOper til et prosesstrinn. Behold jobbnummer, montasjesekvens og operasjonssekvens som ekstern nøkkel.
Integrasjonsmønstre
1. Førstegangsinnlasting av grunndata. Les inn artikler, ressursgrupper, ressurser, kapabiliteter, kalendere og ansatte. Opprett arbeidsstasjoner i SkyPlanner fra ressursene i Kinetic, og arbeidsstasjonsgrupper fra ressursgruppene. Del store leseoperasjoner i sider med $top og $skip, eller hent store datamengder gjennom en BAQ.
2. Synkronisering av ordrer. Send frigitte og bekreftede jobber med tilhørende operasjoner og materialer. Hent jobbtreet med GetDatasetForTree eller en BAQ, ikke entitet for entitet. La ubekreftede MRP-jobber bli i Kinetic til de er bekreftet. Synkroniser åpne leveringslinjer på innkjøpsordrer med tilhørende leveringsdatoer samtidig som lagerbeholdningen leses inn. SkyPlanner regner bestilte materialer som tilgjengelige på leveringsdatoen og oppdaterer lagerbeholdningen når innkjøpsordren får statusen Delivered. Dermed tar produksjonsplanen hensyn til både lagerbeholdning og innkommende innkjøp.
3. Tilbakeskriving av produksjonsplanen. SkyPlanners webhook sender planlagt start, slutt og arbeidsstasjon for hver operasjon til et EFx-endepunkt (/api/v2/efx/{Company}/{Library}/{Function}). Funksjonen skriver gjennom planleggingsmotoren i Kinetic, det samme forretningsobjektet som ligger bak planleggingen i Job Entry og planleggingstavlene (eksempel fra brukerforumet):
ScheduleEngine.GetNewParamsForJoboppretter datasettet som planleggingsmotoren bruker for jobben.- Funksjonen angir jobbnummer, montasje- og operasjonssekvens samt planlagt startdato og klokkeslett, og kaller deretter
ScheduleEngine.MoveJobItem. - Når SkyPlanner har lagt operasjonen på en annen ressurs i gruppen, flyttes den dit med
ScheduleEngine.ChangeResource.MoveJobItemalene beholder gruppens standardressurs. - Funksjonen låser jobbens plan (
JobHead.SchedLocked, alternativet Lock i Job Entry), slik at Global Scheduling beholder datoene fra SkyPlanner.
Ved å samle disse kallene i én Epicor Function blir skrivingen atomisk per jobb, og du kan legge til egen validering. Hvis anlegget foretrekker å unngå en egendefinert funksjon, kan den samme sekvensen kjøres som direkte REST-kall til Erp.BO.ScheduleEngineSvc. Skriv aldri direkte til ResourceTimeUsed eller datofeltene i JobOper: Det omgår motoren og gjør at tildelingene på planleggingstavlene ikke lenger stemmer.
4. Tilbakemeldinger fra produksjonen. Operatørene registrerer arbeid i SkyPlanner med Mobile Confirmations, Production Timer eller Quick Log Mode. Hver avsluttet tidsregistrering blir en arbeidsregistrering i Kinetic gjennom Erp.BO.LaborSvc: StartActivity og EndActivityByEmp for løpende aktivitet, eller Labors med Update for etterregistreringer. Hvis anlegget krever godkjenning, må submitForApproval tas med i både flyten og tilgangsomfanget.
5. Dataeierskap og konfliktregler. Dokumenter dem før løsningen settes i drift:
| Data | Eier |
|---|---|
| Artikler, produksjonsmetoder, ressurser, kalendere, jobber, MRP, lagerbeholdning, kostnadsberegning | Kinetic |
| Mengder og jobbstatus | Kinetic |
| Operasjonsrekkefølge, planlagte datoer, ressurs innenfor gruppen | SkyPlanner |
Jobber som SkyPlanner planlegger, har planlås, slik at Global Scheduling ikke endrer datoene deres. Behold planleggingen i Kinetic for ressursene SkyPlanner ikke planlegger.
Nøkler, nye forsøk og avstemming
- Stabile nøkler. Hver post har sin Kinetic-nøkkel: jobbnummer, sammenstillingssekvens og operasjonssekvens for operasjoner, og hoved- og detaljpost for arbeidstimer. Skriving skjer som upsert basert på denne nøkkelen. En gjentatt melding oppdaterer dermed posten i stedet for å opprette et duplikat.
- Nye forsøk. Mislykket skriving til et av systemene forsøkes på nytt. Arbeidstimer føres bare én gang per timeregistrerings-ID i SkyPlanner, slik at et nytt forsøk ikke kan føre til dobbelttelling av timer.
- Avstemming. En tidsstyrt BAQ sammenligner åpne jobber, operasjonsstatus og mengder med SkyPlanner og retter opp avvik. Et eksempel er en jobb som ble lukket i Kinetic mens en melding var under overføring.
- Mengdeendringer og kanselleringer. En endret mengde i Kinetic oppdaterer ordren og prosesstrinnene i SkyPlanner. Delvis ferdigmelding reduserer den gjenværende kjøretiden. En jobb som lukkes eller slettes i Kinetic, fjernes fra planen ved neste synkronisering.
Hva prosjektet omfatter
Implementeringen fullføres normalt i løpet av uker etter at oppstartsarbeidet begynner. Et Kinetic-prosjekt omfatter:
- En 30-dagers prøveperiode med CSV- eller Excel-eksporter av jobber, operasjoner og ressurser, før utviklingsarbeidet starter.
- API-nøkkel, tilgangsomfang, en egen integrasjonsbruker og BAQ-ene integrasjonen leser.
- Kobling av grunndata: kapabiliteter, ressursgrupper, ressurser, kalendere og ansatte kobles til arbeidsstasjoner, grupper, skift og personell i SkyPlanner.
- Førstegangsinnlasting av artikler, produksjonsmetoder (BOM og operasjoner) og ressurser.
- Synkronisering av jobber og innkjøpsordrer (leveringsdatoer i
PORel), samt lagerbeholdning fraPartWhse. - Tilbakeskriving av planlagte operasjonsdatoer gjennom
ScheduleEngineSvc(MoveJobItem, ChangeResource) i en Epicor Function, med jobbens plan låst. - Tilbakemeldinger fra produksjonen overføres som arbeidsregistreringer gjennom
LaborSvc. - Testing parallelt med den gjeldende planen i Kinetic, deretter produksjonssetting.
Fallgruver i Kinetic
- Finite stilles inn flere steder. Avkrysningsboksen Finite finnes på ressursen. Tidshorisonten der produksjonsplanleggingen skal ta hensyn til faktisk kapasitet, angis på ressursen, på ressursgruppen og på fanen Planning i Site Maintenance. Hvert planleggingsverktøy har også sin egen Finite-avkrysningsboks. Før dere importerer datoer fra Kinetic som utgangspunkt, må dere sjekke om planleggingen i det hele tatt tok hensyn til faktisk kapasitet.
- Capability eller Resource Group og Resource. Når en operasjon angir en kapabilitet, er ressursgruppe og ressurs tomme. Ellers angir den en ressursgruppe, noen ganger med en bestemt ressurs. Integrasjonen må lese de samme feltene og selv finne hvilke ressurser som oppfyller kapabiliteten.
- Kalenderne bærer preg av tidligere tilpasninger. Ressurskalendere og bemanningstall er ofte justert for å få den innebygde planleggingen til å fungere som ønsket. Legg inn de reelle skiftordningene og de faktiske personene i SkyPlanner, og la systemet tilordne flere operatører til en jobb når det trengs et arbeidslag.
- Datoer skal gå gjennom motoren, ikke CRUD. En vanlig oppdatering av operasjonsdatoer med
JobEntrySvcgir ingen omplanlegging. En rapport fra brukerforumet viser etJobScheduling-kall som returnerer 200 OK uten at jobben endres. BrukScheduleEngine-sekvensen ovenfor. - Datadisiplinen avgjør resultatet. Optimistiske operasjonstider, manglende ledetider for innkjøp, jobber som blir stående åpne, og driftsstans som ikke er lagt inn i kalenderne, svekker enhver produksjonsplan – enten den lages i Kinetic eller i et eksternt system (Bluesky ERP).
Hvem konfigurerer Kinetic-integrasjonen?
Ingen fabrikker bruker Kinetic helt likt. Kapabilitetsbaserte produksjonsruter, ressursgruppekalendere, BAQ-utforming, BPM-direktiver og versjonsavhengige metoder for tilbakeskriving varierer fra anlegg til anlegg. Riktig oppsett er forskjellen på en plan planleggerne stoler på, og en de må omarbeide.
- SkyPlanner-teamet konfigurerer integrasjonen under oppstarten og gir støtte etter produksjonssetting. Teamet kobler ressursene, jobbene og leveranseplanlinjene for innkjøpsordrer og setter opp BAQ-lesing, BPM-utløsere og funksjonen for tilbakeskriving. Det kobler SkyPlanners REST API og webhooks til Kinetic REST v2. Støtten fortsetter når BAQ-ene, BPM-ene eller Kinetic-versjonen deres endres.
- Epicor-partneren deres. Partnere som allerede utvikler BAQ-er, BPM-er og Epicor Functions, kan bruke det samme dokumenterte REST API-et fra SkyPlanner. Det leser og skriver ordrer, produkter, materialer, prosesstrinn og timeregistreringer.
- Deres egne utviklere. Interne team med erfaring fra Kinetic REST kan bygge integrasjonen direkte, eller i Automation Studio hvis dere bruker det. En API-nøkkel fra SkyPlanner er nok til å komme i gang (integrasjonsveiledning), og SkyPlanner-teamet bistår ved behov. Se den offentlig tilgjengelige produktdokumentasjonen fra SkyPlanner.
Det samme mønsteret med API og webhooks er i drift med andre ERP-systemer, for eksempel hos UTU. Hos Laboratory & Allied bygde det interne IT-teamet integrasjonen med SAP Business One i stor grad selv, med hjelp fra SkyPlanner.
Alle alternativene starter på samme måte: Bruk først den gratis prøveperioden på 30 dager med CSV-import, bekreft at planen fungerer, og bygg deretter integrasjonen. Prisen er fra 199 € per måned med 5 arbeidsstasjoner. Abonnementet faktureres månedlig og kan sies opp når som helst. Dere får et pristilbud på integrasjonen på forhånd, tilpasset prosessen og behovene deres, sammen med abonnementet. Dermed ser dere hele kostnaden før dere starter.
Hvorfor velge dette oppsettet fremfor en Kinetic APS-lisens?
For en teknisk innkjøper handler sammenligningen om omfang og hvor raskt løsningen gir verdi. Velg SkyPlanner når:
- Integrasjonen skal ha begrenset omfang. Jobber, operasjoner, ressurser og materialer sendes ut. Planlagte datoer og arbeidstimer kommer tilbake. Datakoblingen ovenfor dekker hele omfanget.
- Planen må oppdateres mellom kjøringene. Arcturus lager en produksjonsplan som tar hensyn til faktisk maskin- og bemanningskapasitet på sekunder, og Autopilot planlegger automatisk på nytt når produksjonen endres. SkyPlanners webhooks sender hver endring, slik at Kinetic får nye datoer uten at Global Scheduling må kjøres.
- Rapportering fra produksjonen bør bli arbeidsregistreringer i Kinetic. Operatørene registrerer arbeid på telefon eller nettbrett med Mobile Confirmations, Production Timer og Quick Log Mode. Overføringen via
LaborSvcer en del av den samme integrasjonen. - Innkjøpte materialer styrer når jobbene kan starte. Både lagerbeholdning og åpne leveranseplanlinjer for innkjøpsordrer inngår i planleggingen, slik at operasjonene starter når materialene faktisk forventes levert.
- Dere har flere enn to begrensninger. Flere operatører på én jobb, verktøy som er opptatt andre steder, og alternative arbeidsstasjoner og personer håndteres i én og samme plan. En omstillingsmatrise styrer rekkefølgen på omstillingene, og integrasjonen skriver resultatet tilbake.
- Dere vil se at det fungerer før prosjektstart, og ønsker et kort prosjekt. Prøveperioden viser deres egen produksjonsplan basert på en BAQ-eksport, med opptil 20 arbeidsstasjoner og uten kredittkort. Implementeringen fullføres normalt i løpet av uker etter at oppstartsarbeidet begynner.
Se funksjonene, les kundeomtaler eller bestill en demo.
Produksjonsbedrifters erfaringer med SkyPlanner
2 hspart hver uke
«Med SkyPlanner har vi gått fra produksjonsplanlegging i Excel-regneark til optimalisering av produksjonen i sanntid.»
Kalle Kalliomäki, spesialist på forsyningskjeder
UTU · Eltavler og koblingsanlegg
Produksjonsplanleggingen sparer 2 timers arbeidstid hver uke, og en ny arbeidskø er ute på produksjonslinjen i løpet av sekunder.
+90%produksjonseffektivitet
«Effektiviteten i produksjonen har økt med 90%.»
Abdul Rucyinga, IT-sjef
Laboratory & Allied · Legemiddelproduksjon
Produksjonseffektiviteten har økt med 90%, og det tar under 30 minutter å lage en optimalisert plan for tre måneder som dekker alle arbeidsstasjonene.
1 000-vis avarbeidsordrer planlagt automatisk
«Vi har kontroll på produksjonen på en helt annen måte, og forståelsen vår av kapasiteten er på et helt annet nivå.»
Hannu Ryynänen, administrerende direktør
Mamec · Industrielle miksere, pumper og høyteknologisk leieproduksjon
Tusenvis av arbeidsordrer planlegges automatisk, og hele organisasjonen har oversikt over produksjonen i sanntid.
99,2%leveringspålitelighet
«SkyPlanner har gjort det lettere å se flaskehalsene og gjort produksjonsstyringen mer oversiktlig.»
Toni Tuori, produksjonssjef
Piristeel · Taksikring og takrennesystemer
Leveringspåliteligheten nådde 99,2% i år, og produksjonsplanleggingen sparer opptil fire timers arbeidstid per dag.
Ofte stilte spørsmål
Hvordan integreres SkyPlanner APS med Epicor Kinetic?
Integrasjonen går begge veier via Kinetic REST v2, BAQs og Epicor Functions. Jobber, operasjoner, ressurser og leveranseplaner for innkjøpsordrer overføres til SkyPlanner. Planlagte operasjonsdatoer og arbeidstimer sendes tilbake, og webhooks sender planendringer fortløpende. SkyPlanner-teamet tilpasser integrasjonen til Kinetic-oppsettet deres under oppstarten. Epicor-partneren eller utviklerne deres kan bruke det samme REST API-et.
Hvilket Kinetic-API bør brukes til en integrasjon for produksjonsplanlegging?
REST v2. Bruk JobEntrySvc for jobber og operasjoner, ResourceGroupSvc, ResourceSvc og CapabilitySvc for kapasitet, BAQ-er for å lese store datamengder og LaborSvc for å skrive arbeidsregistreringer tilbake.
Støtter Epicor Kinetic webhooks?
Ikke i form av et generelt API for utgående webhooks. Hendelsesstyrte overføringer skjer via BPM-direktiver som kaller Epicor Functions. Alternativt kan dere hente data fra en BAQ med faste intervaller.
Kan SkyPlanner skrive planlagte datoer tilbake til jobber i Kinetic?
Ja. En Epicor Function kaller ScheduleEngine.GetNewParamsForJob, MoveJobItem for hver operasjon og ChangeResource når ressursen er endret. Deretter låser den jobbens plan slik at Global Scheduling beholder datoene. De samme kallene kan også kjøres direkte via REST mot Erp.BO.ScheduleEngineSvc.
Hvem vedlikeholder integrasjonen?
SkyPlanner-teamet konfigurerer integrasjonen under oppstarten og gir støtte etter at den er satt i drift, også når dere endrer BAQs, BPMs eller Kinetic-versjon.
Fungerer integrasjonen med lokalt installert Epicor Kinetic?
Ja. REST API-et, BAQs, BPMs og Epicor Functions fungerer likt lokalt og i Kinetic-skyen, så samme integrasjonsløsning dekker begge.
Hvor lang tid tar det å integrere SkyPlanner APS med Epicor Kinetic?
Implementeringen fullføres normalt i løpet av noen uker etter at oppstartsarbeidet begynner. Arbeidet omfatter feltkoblinger, førstegangsinnlasting, synkronisering av jobber og innkjøpsordrer, tilbakeskriving av planen og registrering av arbeidstimer, som beskrevet ovenfor. Alt testes parallelt med den gjeldende produksjonsplanen deres.