Kobler seg til ERP- og MES-systemer som

Integrasjoner / ERP / SAP Business One

Integrasjonsguide for SAP Business One og produksjonsplanlegging med SkyPlanner APS

Denne guiden viser SAP Business One-partnere og IT-team hvordan de kobler B1 til SkyPlanner APS. Den beskriver hvilke API-er dere skal bruke, hvilke objekter som overføres hvor, og hva som går galt i B1-prosjekter. SkyPlanner integreres med SAP Business One i begge retninger via Service Layer:

  • Produksjonsordrer, trinn i produksjonsruten, ressurser, artikler og innkjøpsordrer overføres til SkyPlanner.
  • Planlagte startdatoer og ferdigdatoer skrives tilbake til produksjonsordrene.
  • Operatørenes tidsregistreringer bokføres som Receipt and Issue for Production.
  • SkyPlanners webhooks sender planendringer fortløpende.
Gantt-tidslinje i SkyPlanner APS med jobber fordelt på arbeidsstasjoner og en ordreliste nedenfor.

SAP Business One beholder artikler, BOM-er, produksjonsordrer, lager og økonomi, og produksjonsmodulen forblir uendret. SkyPlanner-teamet konfigurerer integrasjonen mot standardobjektene i B1 under oppstarten og gir støtte etter at løsningen er satt i drift. Hver firmadatabase har sine egne trinn i produksjonsruten, ressursgrupper, brukerdefinerte felt og tilleggsmoduler. Konfigurasjonen tilpasser datakoblingene til disse forskjellene.

Laboratory & Allied bruker SkyPlanner sammen med SAP Business One på HANA. Les om forretningsnytten på siden om produksjonsplanlegging for SAP Business One.

Integrasjonsmuligheter i SAP Business One

SAP Business One har tre integrasjonsgrensesnitt. For en skybasert planleggingsløsning er Service Layer standardvalget.

AlternativBeskrivelseEgnethet for APS-integrasjon
Service LayerREST/OData-API. /b1s/v1 bruker OData v3, og /b1s/v2 bruker OData v4. Kjører på SAP Business One-versjonen for SAP HANA og på Microsoft SQL Server fra og med 10.0 PL01.Førstevalget. Bruker HTTP og JSON og fungerer fra en skytjeneste.
DI APICOM-bibliotek for Windows. Produksjonsordrer håndteres med objektet ProductionOrders og lagres i tabellen OWOR (objekttype 202).For eldre løsninger eller lokalt installert mellomvare. Krever en Windows-vert.
Integration Framework (B1if)SAPs mellomvare for integrasjonsscenarioer på dokumentnivå.Nyttig hvis partneren allerede kjører B1if-scenarioer.

Autentisering

Service Layer bruker øktbasert autentisering. Send POST /b1s/v1/Login med CompanyDB, UserName og Password. Du får tilbake en B1SESSION-informasjonskapsel, samt en valgfri ROUTEID ved lastbalansering. Standardverdien for SessionTimeout er 30 minutter uten aktivitet. Kall Logout eksplisitt når en synkronisering er ferdig. Opprett en egen integrasjonsbruker i B1, slik at alle endringer som skrives fra SkyPlanner, kan spores i endringsloggen.

Service Layer-entiteter for produksjonsplanlegging

DataEntitet i Service Layer
Varer og planleggingsdataItems
Stykklister og trinn i produksjonsrutenProductTrees (Lines, Stages)
Maskiner, arbeidskraft og andre ressurserResources, ResourceGroups
ProduksjonsordrerProductionOrders (Lines, Stages)
Beholdning per lagerLagerdata fra Items, Warehouses
Åpne innkjøpsordrer og leveringsdatoerPurchaseOrders (DocumentLines: åpent antall, ShipDate)
Varemottak mot innkjøpsordrerPurchaseDeliveryNotes (Goods Receipt PO, objekttype 20)
Uttak til produksjonInventoryGenExits
Mottak fra produksjonInventoryGenEntries
Oppsett av webhooksEventSubscriptions, EventNotifications

Standard sidestørrelse er 20 poster. Øk den med headeren Prefer: odata.maxpagesize (eller PageSize i b1s.conf), og følg odata.nextLink. Bruk $expand for å hente produksjonsordrelinjer og rutetrinn i ett kall, og samle forespørsler i batcher når store datamengder skal skrives tilbake.

Hendelser og webhooks

Fra og med SAP Business One 10.0 FP 2602 støtter Service Layer webhooks. De er deaktivert som standard. Aktiver dem per firma med CompanyService_UpdateAdminInfo (EnableWebhook = tYES). Send deretter POST EventSubscriptions med tre deler:

  • en WebhookURL
  • en AuthenticationType: None, Basic, HMAC eller OAuth, med HMAC som standard
  • en EventCollection med forretningsobjekter og transaksjonstyper

WebhookURL må bruke HTTPS med et sertifikat som samsvarer med vertsnavnet. EventSubscriptionsService_GetEventCatalog viser hva du kan abonnere på. Webhook Messenger Service må kjøre.

På eldre versjoner bruker du polling med faste intervaller (se fallgruven om UpdateDate nedenfor). SBO_SP_TransactionNotification er en valideringsmekanisme på databasenivå, ikke en kanal for å sende hendelser.

Datakoblinger fra SAP Business One til SkyPlanner

SAP Business One (Service Layer)Objekt i SkyPlannerRetningHyppighet
Items (varer med Procurement Method satt til Make)ProdukterB1 → SkyPlannerFørstegangsinnlasting, deretter med faste intervaller
Lines i ProductTrees (varelinjer)ProduktmaterialerB1 → SkyPlannerFørstegangsinnlasting, deretter ved endringer
Stages og ressurslinjer i ProductTreesProsesstrinn og kjøretiderB1 → SkyPlannerFørstegangsinnlasting, deretter ved endringer
Resources (Machine, Labor, Other)Arbeidsstasjoner og personellB1 → SkyPlannerFørstegangsinnlasting, sjeldne endringer
ResourceGroupsArbeidsstasjonsgrupperB1 → SkyPlannerFørstegangsinnlasting
ProductionOrders (Planned, Released)Ordrer og jobberB1 → SkyPlannerWebhook (FP 2602+) eller polling med noen minutters mellomrom
Stages i ProductionOrdersJobbtrinn i angitt rekkefølgeB1 → SkyPlannerSammen med ordren
Beholdning fra Items per lager i WarehousesMaterialbeholdningB1 → SkyPlannerMed faste intervaller, f.eks. hver time
Åpne linjer i PurchaseOrders (objekttype 22) med leveringsdatoInnkjøpsordrer / innkommende materialer med forventet leveringsdatoB1 → SkyPlannerMed faste intervaller, f.eks. hver time
Linjer i PurchaseDeliveryNotes (Goods Receipt PO) med BaseType 22Mottatt antall på innkjøpsordrelinjen, oppdatert beholdningB1 → SkyPlannerMed faste intervaller, f.eks. hver time
Planlagt start og sluttPATCH ProductionOrders({DocEntry}): StartDate, DueDate, samt StartDate og EndDate på ressurslinjenSkyPlanner → B1Webhook fra SkyPlanner når planen endres
Registrerte antallInventoryGenEntries (mottak fra produksjon)SkyPlanner → B1Ved bekreftelse eller samlet i batcher
Registrerte timer og materialforbrukInventoryGenExits (uttak til produksjon)SkyPlanner → B1Ved bekreftelse eller samlet i batcher

Skiftkalendere, personell og fravær håndteres i SkyPlanner. Tallene for daglig kapasitet i B1 overføres ikke (se den første fallgruven nedenfor).

Integrasjonsmønstre

1. Førstegangsinnlasting av grunndata. Hent Resources, ResourceGroups og Items med Procurement Method satt til Make, samt tilhørende ProductTrees med rutetrinn. Koble hver maskinressurs til en arbeidsstasjon i SkyPlanner. Gå gjennom listen med planleggerne før den første ordresynkroniseringen.

2. Ordresynkronisering. Les ProductionOrders med status Planned og Released, og bruk $expand for linjer og rutetrinn. Produksjonsordrer i B1 inneholder rutetrinn hentet fra stykklisten, og planleggerne kan endre en ordre etter at den er opprettet. Bruk trinnene på ordren, ikke i stykklisten. En produksjonsordre lager ett produkt, så et produkt med flere nivåer krever én produksjonsordre per nivå. Koble dem sammen slik at SkyPlanner planlegger delproduktene før det overordnede produktet.

Synkroniser også åpne PurchaseOrders-linjer med åpent antall og leveringsdato til SkyPlanners endepunkter for innkjøpsordrer. SkyPlanner regner bestilte materialer som tilgjengelige på innkjøpsordrens leveringsdato. I B1 endres beholdningen når et varemottak mot innkjøpsordre, Goods Receipt PO (PurchaseDeliveryNotes), bokføres. Integrasjonen leser disse mottakene, markerer mottatt antall som levert i SkyPlanner og lar resten stå åpent. Delmottak telles bare én gang, og materialkontrollen omfatter både lagerbeholdning og innkommende leveranser.

3. Tilbakeskriving av planen. SkyPlanners webhooks utløses når planen endres. Integrasjonen sender PATCH /b1s/v1/ProductionOrders({DocEntry}) med nye verdier for StartDate og DueDate, samt StartDate og EndDate på ordrens ressurslinjer (ProductionOrderLines). Dermed får hvert trinn sitt planlagte tidsrom. Forespørselskroppen inneholder bare felter som SkyPlanner eier, og flere ordrer sendes i én $batch-forespørsel. B1-brukerne ser da de planlagte datoene på produksjonsordren og i vinduet Resource Capacity. På installasjoner der Service Layer ikke er tilgjengelig, utføres samme oppdatering via DI API-objektet ProductionOrders (GetByKey, sett datoer, Update) fra en lokalt installert tjeneste.

4. Tilbakemeldinger fra produksjonen. Operatørene registrerer arbeid i SkyPlanner med Mobile Confirmations eller Production Timer. Hver tidsregistrering blir til et POST /b1s/v1/InventoryGenEntries for ferdigprodusert antall (mottak fra produksjon) og et POST /b1s/v1/InventoryGenExits for komponenter og ressurstid (uttak til produksjon).

Hver dokumentlinje har BaseType 202 og BaseEntry satt til produksjonsordrens DocEntry. Uttakslinjene har i tillegg BaseLine for komponent- eller ressurslinjen. Delmengder bokføres etter hvert som de registreres, og parti- og serienumre legges til på varer som styres med slike numre. Ordren må ha status Released.

ID-en til tidsregistreringen i SkyPlanner lagres på B1-dokumentet. Dermed blir en hendelse aldri bokført to ganger ved nye forsøk. Hvis en bokføring mislykkes, blir den forsøkt på nytt og rapportert, ikke forkastet.

5. Regler for dataeierskap og konflikter. Avtal dem før dere begynner å kode:

  • B1 styrer artikler, BOM-er, mengder, lagre og oppretting av ordrer.
  • SkyPlanner styrer rekkefølge, start- og sluttidspunkter og tildeling av arbeidsstasjoner.
  • Hvis datoene på en ordre endres i begge systemer, gjelder datoene fra neste planleggingskjøring i SkyPlanner, med mindre planleggerne har låst jobben i SkyPlanner.
  • Når en ordre har status Closed eller Cancelled i B1, fjernes jobben fra planen.

Hva prosjektet omfatter

Implementeringen er normalt ferdig i løpet av noen uker etter at oppstartsarbeidet begynner. Før det kan dere bruke egne data i den gratis prøveperioden på 30 dager. Eksporter artikler, ressurser og åpne produksjonsordrer fra B1 til CSV eller Excel, og last dem inn med dataimporten i SkyPlanner. Planleggerne får se en reell produksjonsplan før noen skriver integrasjonskode.

Et typisk SAP Business One-prosjekt omfatter:

  • Kobling av grunndata. Ressurser og ressursgrupper i B1 kobles til arbeidsstasjoner, trinn i produksjonsruten til prosesstrinn og artikler av typen Make til produkter.
  • Førstegangsimport. Artikler, Product Trees med trinn og artikkellinjer, ressurser og lagerbeholdning per lager.
  • Synkronisering av produksjonsordrer og innkjøpsordrer. Åpne produksjonsordrer med linjer og trinn, samt åpne innkjøpsordrer med leveringsdatoer.
  • Tilbakeskriving av planen. Planlagte start- og forfallsdatoer til ProductionOrders.
  • Tilbakemeldinger fra produksjonen. Receipt and Issue for Production bokføres på grunnlag av tidsregistreringer i SkyPlanner.
  • Testing parallelt med dagens plan. Planleggerne sammenligner planen fra SkyPlanner med måten de planlegger på i dag.
  • Driftsstart. Planen i SkyPlanner blir den gjeldende produksjonsplanen.

Ryddige ressursdata og trinn i produksjonsruten i B1 gjør arbeidet med datakoblinger enklere. Hos Laboratory & Allied var integrasjonen en av de minst arbeidskrevende delene av prosjektet. Deres eget IT-team gjennomførte i stor grad integrasjonen med SAP Business One på HANA på egen hånd. SkyPlanner-teamet bisto med de mest komplekse tilfellene, som produkter som kombineres gjennom prosesser med flere trinn.

Fallgruver i SAP Business One

Daglig kapasitet er ikke en skiftmodell.

B1 lagrer Daily Internal Capacity og Single Run Capacity per ressurs per dag («These capacities are defined on a daily basis,» (disse kapasitetene defineres per dag), ifølge SAP Learning). SAPs veiledning sier at beregningen av Required Days forutsetter at «a single production order can be produced on a single machine» (en enkelt produksjonsordre kan produseres på én maskin) (SAPs praktiske veiledning). Ikke bruk disse tallene direkte som kapasitetsgrenser i planleggingen. Definer skift, personell og effektiviteten til arbeidsstasjonene i SkyPlanner.

Produksjonsruten ligger i BOM-en.

Det finnes ikke egne grunndata for produksjonsruter. Route Stage-linjene i Product Tree angir rekkefølgen, og Waiting Days fylles ut manuelt. Les Stages fra ProductTrees og ProductionOrders, og kontroller at hver ressurslinje tilhører et trinn. Uten trinn på ordren har planleggingssystemet ingen operasjonsrekkefølge å følge.

Mengdene på ressurslinjene må regnes om.

Quantity på en BOM-linje angir det som trengs for å produsere mengden i BOM-hodet, ikke én enhet. Additional Quantity legges til den planlagte tiden «regardless of the quantity of the parent item produced» (uavhengig av hvor mye som produseres av den overordnede artikkelen) (SAPs praktiske veiledning). Behandle dette som fast tid per ordre, for eksempel klargjøringstid. Del på mengden i BOM-hodet før dere beregner kjøretid per enhet. Ellers blir tidsberegningen for hver jobb feil med en tilsvarende faktor.

Grunndata for ressurser er sjelden ryddige.

Ressurser har typen Machine, Labor eller Other. Maskiner kan kobles til anleggsmidler og arbeidskraft til ansatte. En ressurs kan også være koblet til en artikkel som ikke lagerføres, for kjøp eller salg av ressursen. Ingen av disse koblingene forteller hvilke ressurser som er faktiske maskiner som kan planlegges. Rydd opp i ressursgrupper og dupliserte ressurser før de blir til listen over arbeidsstasjoner.

Lagerregler kan stoppe bokføringen av tilbakemeldinger.

Mottak og uttak er lagerdokumenter. Vanlige feil er å forveksle InventoryGenEntries og InventoryGenExits, utelate parti- eller serienumre på varer som krever dem, eller bokføre mot en ordre med status Planned.

Økter og paginering.

En utløpt økt gir feilmeldingen «Invalid session or session already timeout.» (Ugyldig økt, eller økten er allerede utløpt.) Logg inn på nytt ved denne feilen. Standard sidestørrelse på 20 poster gjør at synkroniseringer som ignorerer odata.nextLink, blir avkortet uten varsel.

UpdateDate inneholder ikke klokkeslett.

I tabellen OWOR er UpdateDate et datofelt. Klokkeslettet for oppdateringen ligger separat i UpdateTS. Polling som bare filtrerer på UpdateDate, henter alle ordrer som er endret i dag, ved hver kjøring. Kombiner begge feltene, eller fjern duplikater på din side.

Webhooks leveres minst én gang.

Webhook Messenger forsøker en mislykket levering på nytt opptil fem ganger (2, 4, 8, 16 og 32 sekunder), og markerer den deretter som mislykket. Nye forsøk kan gi duplikater, og rekkefølgen er bare garantert innenfor ett firma. Gjør hendelsesbehandlerne idempotente basert på hendelses-ID, og behold en nattlig avstemmingsspørring.

Hvem setter opp integrasjonen med SAP Business One?

Arbeidet omfatter å kartlegge og koble trinnene i produksjonsruten, ressursene og B1-oppsettet. I tillegg kommer begrensningene B1 ikke tar hensyn til i planleggingen: matrise for klargjøringstider, verktøy, antall operatører og alternative ressurser.

  1. SkyPlanner-teamet konfigurerer integrasjonen under oppstarten og gir støtte etter driftsstart. Alle bedrifter bruker B1 på sin egen måte. Denne erfaringen brukes til å tilpasse integrasjonen. Dette er standardalternativet.
  2. SAP Business One-partneren deres kan delta. Partnere som kjenner firmadatabasen, tilleggsmodulene og de brukerdefinerte feltene deres, kan bygge integrasjonen med Service Layer og SkyPlanners REST API (API-referanse).
  3. Deres egne utviklere kan bygge integrasjonen. SkyPlanners REST API leser og skriver ordrer, produkter, materialer, prosesstrinn, innkjøpsordrer og tidsregistreringer. Det bruker autentisering med JWT bearer token og er dokumentert i Swagger/OpenAPI. Offentlig dokumentasjon finnes i SkyPlanner-dokumentasjonen. Webhooks sender endringer i plan og status i sanntid. Dere trenger bare en API-nøkkel fra SkyPlanner for å begynne å utvikle (integrasjonsveiledning), og SkyPlanner-teamet bistår ved behov. Det var denne løsningen IT-teamet hos Laboratory & Allied valgte.

Valider produksjonsplanen i den gratis prøveperioden på 30 dager først. Da starter integrasjonsarbeidet med en plan som allerede passer fabrikken.

Hvorfor tekniske team velger SkyPlanner for B1

  • Velg SkyPlanner når dere ønsker en liten, tydelig avgrenset integrasjon. Standardobjekter fra B1 overføres inn (produksjonsordrer, Product Trees, Resources, Items), mens datoer samt Issue and Receipt from Production overføres tilbake. Ingen endringer i produksjonsmodulen i B1 og ingen datamigrering.
  • Velg SkyPlanner når prosjektet må vise verdi tidlig. Den gratis prøveperioden på 30 dager bruker en CSV-eksport og støtter opptil 20 arbeidsstasjoner, uten krav om kredittkort. Bedriften får se sin egen produksjonsplan før integrasjonsarbeidet starter.
  • Velg SkyPlanner når planen må ta hensyn til reelle begrensninger. Omstillingstider, felles verktøy, jobber med flere operatører, alternative ressurser, lagerbeholdning og åpne innkjøpsordrer modelleres i SkyPlanner. Integrasjonen leverer bare dataene fra B1.
  • Velg SkyPlanner når dere vil ha ett system for planleggere og operatører. Arcturus-motoren lager planen på sekunder, og Autopilot planlegger automatisk på nytt når produksjonen endrer seg. Operatørene registrerer arbeid på telefon eller nettbrett, og integrasjonen skriver disse tilbakemeldingene tilbake til B1.
  • Velg SkyPlanner når kostnadene må være forutsigbare. Prisen er fra 199 € per måned med 5 arbeidsstasjoner inkludert. Dere faktureres månedlig og kan si opp når som helst. Dere får på forhånd et tilbud på integrasjonen og abonnementet, tilpasset prosessene og behovene deres. Da kjenner dere totalkostnaden før dere starter.

Les artikkelen om produksjonsplanlegging for SAP Business One for å forstå hva som mangler i planleggingen. Temaet er produksjonsplanlegging der planen tilpasses den reelle kapasiteten til både maskiner og ansatte. Se oversikten over ERP-integrasjoner for andre ERP-systemer.

Produksjonsbedrifters erfaringer med SkyPlanner

Operatører i renromsdrakter ved en flaskefyllingslinje på Laboratory & Allieds legemiddelfabrikk i Nairobi

+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 arbeidsstasjoner.

Les om erfaringene til Laboratory & Allied

Kalle Kalliomäki, spesialist på forsyningskjeder hos UTU, i produksjonshallen for elektrotavler i Ulvila

2 hspart hver uke

«Med SkyPlanner har vi gått fra produksjonsplanlegging i Excel-ark til optimalisering av produksjonen i sanntid.»

Kalle Kalliomäki, spesialist på forsyningskjeder
UTU · Elektrotavler og koblingsanlegg

Produksjonsplanleggingen sparer 2 timer arbeidstid hver uke, og en ny arbeidskø når produksjonslinjen på sekunder.

Les kundeomtalen fra UTU

Anu Järvinen, produksjonssjef hos Fredman Operations, ved en robotcelle for palletering i Rauma

6 månederfrem i tid ser salgsavdelingen ledig kapasitet

«SkyPlanner gir et pålitelig grunnlag for all produksjonsplanlegging.»

Anu Järvinen, produksjonssjef
Fredman Operations · Emballasjepapir for kontakt med mat

Salgsavdelingen ser ledig kapasitet seks måneder frem i tid, og forespørsler om planendringer som før tok en time eller mer, besvares på sekunder.

Les kundeomtalen fra Fredman Operations

Flyfoto av Piristeels fabrikk for taksikringsprodukter i Kauhava

99,2%leveringspålitelighet

«SkyPlanner har gitt oss oversikten vi trenger for å identifisere flaskehalser, og gjort produksjonsstyringen tydeligere.»

Toni Tuori, produksjonssjef
Piristeel · Taksikring og takrennesystemer

Leveringspåliteligheten nådde 99,2% i år, og produksjonsplanleggingen sparer opptil fire timers arbeidstid per dag.

Les kundeomtalen fra Piristeel

Ofte stilte spørsmål

Hvem setter opp integrasjonen med SAP Business One?

SkyPlanner-teamet konfigurerer toveisintegrasjonen under innføringen og gir støtte etter produksjonssetting. Produksjonsordrer, operasjoner i produksjonsruten, ressurser, innkjøpsordrer og varemottak hentes inn. Planlagte datoer samt Issue and Receipt from Production sendes tilbake. B1-partneren din eller egne utviklere kan også bygge integrasjonen med Service Layer og REST API-et til SkyPlanner. En API-nøkkel er nok for å komme i gang.

Hvor lang tid tar det å implementere SkyPlanner med SAP Business One?

Implementeringen er normalt ferdig i løpet av noen uker etter at innføringen starter. Teamet kobler sammen ressursene og operasjonene i produksjonsrutene i de to systemene, kobler til produksjons- og innkjøpsordrer og tester produksjonsplanen mot den gjeldende planen deres før produksjonssetting.

Service Layer eller DI API?

Bruk Service Layer til nye integrasjoner. Det er HTTP-basert, kjører på HANA og SQL Server og passer til et skybasert planleggingssystem. Bruk DI API bare der eksisterende mellomvare allerede er avhengig av det.

Trenger jeg SAP Business One 10.0 FP 2602?

Bare for webhooks. Tidligere 10.0-versjoner integreres ved hjelp av periodisk polling.

Hvordan skrives planlagte datoer tilbake til SAP Business One?

Med PATCH /b1s/v1/ProductionOrders({DocEntry}), utløst av SkyPlanners webhook for planendringer. Kallet setter StartDate og DueDate på ordren og StartDate og EndDate på ressurslinjene. Produsert antall og tidsbruk sendes tilbake som InventoryGenEntries og InventoryGenExits, koblet til ordren med BaseType 202 og BaseEntry.

Trenger vi en tilleggsmodul for produksjon i B1?

Nei. Integrasjonen bruker bare standardobjekter i B1: produksjonsordrer, Product Trees, Resources, Items, innkjøpsordrer og lagerdokumenter. Ingen data migreres til en ny datamodell for produksjon.

Kan vi teste SkyPlanner med våre egne B1-data før vi integrerer?

Ja. Prøveperioden på 30 dager omfatter opptil 20 arbeidsstasjoner med import fra CSV eller Excel. Du trenger ikke kredittkort. Start gratis prøveperiode eller snakk med salg om B1-oppsettet deres.