Kobler seg til ERP- og MES-systemer som

Integrasjoner / ERP / Oracle NetSuite

Guide til NetSuite-integrasjon for produksjonsplanlegging med SkyPlanner APS

Denne guiden viser NetSuite-partnere, administratorer og tekniske innkjøpere hvordan SkyPlanner APS kobles til Oracle NetSuite for produksjonsplanlegging som tar hensyn til faktisk maskin- og bemanningskapasitet. SkyPlanner integreres med NetSuite i begge retninger via REST-webtjenester og SuiteQL:

  • Produksjonsordrer, produksjonsruter, arbeidssentre, varer og innkjøpsordrer hentes inn.
  • Planlagte start- og sluttidspunkter skrives til oppgavene for produksjonsoperasjonene.
  • Registrerte timer og produserte mengder føres tilbake som Work Order Completions eller Assembly Builds.
  • SkyPlanner sender planendringer via webhooks så snart de skjer.
Gantt-tidslinje i SkyPlanner APS med jobber fordelt på arbeidsstasjoner og en ordreliste nedenfor.

NetSuite er master for varer, BOM-er, produksjonsruter, produksjonsordrer, lagerbeholdning og kostnadsberegning. SkyPlanner bruker Arcturus-motoren til produksjonsplanlegging som tar hensyn til faktisk maskin- og bemanningskapasitet. SkyPlanner-teamet konfigurerer integrasjonen mot kontoen din under oppstarten og gir støtte etter at løsningen er satt i drift. Integrasjonen bruker standardposter i NetSuite og er ikke avhengig av Advanced Manufacturing SuiteApp.

SkyPlanner er allerede integrert med NetSuite hos UTU, en produsent av eltavler og koblingsanlegg i Ulvila i Finland. UTU satte løsningen i drift i september 2025, med SkyPlanner integrert med Oracle NetSuite og lønnssystemet sitt. For å vurdere forretningsnytten kan du starte med siden om produksjonsplanlegging med NetSuite og Har NetSuite produksjonsplanlegging som tar hensyn til kapasitet?.

Valget som legger føringene for prosjektet: REST og OAuth 2.0

Oracle har staket ut kursen. Fra versjon 2026.1 bør nye integrasjoner bygges på SuiteTalk REST-webtjenester med OAuth 2.0. Fra 2027.1 tillates ingen nye integrasjoner med SOAP eller Token-Based Authentication (TBA). SOAP-endepunktene deaktiveres i 2028.2. En integrasjon for produksjonsplanlegging som påbegynnes i dag, skal bygge på REST.

Alternativ i NetSuiteBeskrivelseRolle i en APS-integrasjon
SuiteTalk REST record API/services/rest/record/v1/<recordType>, versjonert i takt med NetSuite-utgivelsene; !transform for ferdigmeldinger, materialuttak og sammenstillinger på produksjonsordrerSkriving: datoer for operasjonsoppgaver og produksjonsordrer (PATCH), ferdigmeldinger, materialuttak og sammenstillinger (transform)
SuiteQL via RESTPOST /services/rest/query/v1/suiteql med Prefer: transient, opptil 100 000 resultater per spørring, paginering med limit/offsetMasselesing: varer, produksjonsruter, arbeidssentre, åpne produksjonsordrer, lagerbeholdning
SuiteScript 2.1 RESTletsTilpassede get/post/put/delete-endepunkterDekker mangler i REST-støtten og samler data i én melding, for eksempel en produksjonsordre med alle operasjonene
SuiteScript User Event / Map-ReduceSkript som kjøres på serversiden i NetSuiteUtgående endringsvarsler
CSV Import AssistantLagrede feltkoblinger for importEngangsinnlasting; ikke for løpende synkronisering
SuiteTalk SOAPEldre teknologi, kun TBAIkke bygg nye integrasjoner på dette

Autentisering

Bruk OAuth 2.0 Client Credentials (maskin-til-maskin) for en planleggingsløsning som kommuniserer mellom servere. Menybanen i administrasjonen er Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Du laster opp et offentlig sertifikat og knytter det til en entitet, en rolle og integrasjonsposten. Hver integrasjonspost kan ha maksimalt fem aktive sertifikater.

Opprett en egen integrasjonsrolle med lesetilgang til varer, BOM-revisjoner, produksjonsruter og arbeidssentre, og redigeringstilgang til produksjonsordrer, ferdigmeldinger og materialuttak. SkyPlanner REST API (API-referanse) bruker JWT, så mellomvaren håndterer begge settene med autentiseringsopplysninger.

Hendelser: Det finnes ingen standard webhook

Oracles dokumentasjon beskriver ingen innebygd utgående webhook. En fungerende løsning er et SuiteScript User Event-skript på Work Order (afterSubmit) som legger et utgående kall i kø via N/task eller et Map/Reduce-skript. Selve kallet gjøres med N/https. Gjør aldri synkrone utgående kall i afterSubmit: Kallet kjøres som en del av brukerens lagring, så et tregt endepunkt forsinker lagringen eller får den til å feile.

User Event-hendelser fanger ikke opp alle måter data kan endres på. Masseoppdateringer og CSV-importer kan omgå dem. Kombiner hendelsesskriptet med en planlagt SuiteQL-spørring som avstemmer endringer basert på lastmodifieddate, slik at ingenting blir oversett. I motsatt retning utløser SkyPlanners egne webhooks tilbakeskrivingen, slik at NetSuite får nye datoer så snart planen endres.

Datakobling: Fra NetSuite til SkyPlanner

NetSuite-post (REST-ID)SkyPlanner-objektRetningHyppighet
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Produkt / materialeNetSuite → SkyPlannerFørstegangsinnlasting, deretter daglig eller ved endring
BOM Revision (bomRevision), BOM-komponenterProduktstruktur med flere nivåer, materialbehovNetSuite → SkyPlannerVed endring
Manufacturing Routing (manufacturingRouting, underlistene routingStep, routingComponent)Prosesstrinn: rekkefølge, arbeidsstasjon, omstillingstid, kjøretidNetSuite → SkyPlannerVed endring
Manufacturing Work Center (Group merket som arbeidssenter): Machine Resources, Labor Resources, Work CalendarArbeidsstasjoner, arbeidsstasjonsgrupper, skiftNetSuite → SkyPlanner, deretter vedlikehold i SkyPlannerFørstegangsinnlasting
Work Order (workOrder): vare, antall, lokasjon, Production Start/End Date, status; tilknyttet Sales Order for leveringsfristenOrdre / jobb med leveringsfrist og prioritetNetSuite → SkyPlannerTilnærmet sanntid via User Event, med avstemmingsspørring i tillegg
Manufacturing Operation Task (manufacturingOperationTask)Tidfestet operasjonNetSuite → SkyPlanner, datoer SkyPlanner → NetSuiteTilnærmet sanntid
Lagerbeholdning per lokasjon (SuiteQL), Item Receipts (itemReceipt)Lagersaldoer for planlegging ut fra materialtilgangNetSuite → SkyPlannerHvert 15. til 60. minutt eller ved varemottak
Linjer i Purchase Order (purchaseOrder): vare, antall, forventet mottaksdato, statusInnkjøpsordrer / innkommende materiale (forventet leveringsdato). Regnes som tilgjengelig på leveringsdatoen; lagerbeholdningen oppdateres når innkjøpsordren merkes som DeliveredNetSuite → SkyPlannerHvert 15. til 60. minutt eller ved endring
Planlagt start og slutt per operasjonPATCH manufacturingOperationTask/{id} (startDate, endDate) og PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteNår produksjonsplanen endres, via en SkyPlanner-webhook
Mobile Confirmations, tidslogger, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: intervallet startOperation/endOperation, ferdigmeldt antall, arbeidstid på operation-linjene, SkyPlanner-tidsloggens ID som ekstern IDSkyPlanner → NetSuitePer bekreftelse eller samlet i grupper
MaterialforbrukPOST workOrder/{id}/!transform/workOrderIssue, eller isBackflush ved ferdigmeldingSkyPlanner → NetSuitePer bekreftelse
Ferdigstilt ordre (NetSuite-kontoer uten WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteNår ordren ferdigstilles
Ordre lukketWork Order Close (workOrderClose)I NetSuite, av økonomiavdelingenIkke automatisert som standard

Integrasjonsmønstre

1. Førstegangsinnlasting av grunndata. Hent først arbeidssentre, deretter varer, BOM-revisjoner og produksjonsruter med SuiteQL. Produksjonsrutene refererer til arbeidssentre, så rekkefølgen er viktig. I prøveperioden eksporterer du de samme dataene til CSV og importerer dem i SkyPlanner. Planen valideres før det er skrevet noen kode.

2. Ordresynkronisering. Hent produksjonsordrer med status Released og In Process. Avklar tidlig om produksjonsordrer med status Planned skal tas med. Hvis de tas med, skal de behandles som foreløpig etterspørsel. Synkroniser åpne innkjøpsordrer i samme kjøring, slik at planen kontrollerer hver jobb mot både lagerbeholdning og innkommende materialer, ikke bare lagerbeholdningen.

3. Tilbakeskriving av produksjonsplanen. Når planen endres, sender en SkyPlanner-webhook de nye operasjonsdatoene til mellomvaren. Mellomvaren sender PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (Oracles referanse for posten) med startDate og endDate for hver operasjon som er endret. Et ekstra PATCH-kall på ordrehodet i workOrder setter Production Start og End Date. Skriv bare datoer og eventuelt et egendefinert felt for rekkefølge, hvis dere bruker det. Skriv aldri antall eller BOM-data tilbake. Hvis mange operasjoner skal oppdateres i én transaksjon, kan en liten RESTlet lagre hele operasjonslisten i ett kall. Record API er fortsatt standardvalget.

4. Bekreftelser fra produksjonsgulvet. Operatørene registrerer arbeid i SkyPlanner Mobile Confirmations. Mellomvaren sender hver bekreftelse via transformasjoner av Work Order med POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion. Kallet inneholder startOperation, endOperation, ferdigmeldt antall og registrert tid på operasjonslinjene. Produksjonsordrer uten WIP lukkes i stedet med !transform/assemblyBuild. Work Order Completion via REST krever funksjonen Manufacturing Work In Process. Lager- og kostnadsposteringer håndteres fortsatt i NetSuite.

5. Idempotens og nye forsøk. Hver ferdigmelding bruker ID-en fra SkyPlanners timeregistrering som ekstern ID i NetSuite. Eksterne ID-er er unike per posttype. En webhook som sendes på nytt, avvises derfor som et duplikat i stedet for at mengder og kostnader bokføres to ganger. Skriveoperasjoner går gjennom en kø. Et mislykket kall (samtidighetsgrense, låst post, utløpt sertifikat) forsøkes på nytt og loggføres. Alt som fortsatt feiler, er synlig for SkyPlanner-teamet som støtter integrasjonen.

6. Regler for dataansvar. NetSuite styrer hva som produseres: vare, mengde, BOM, produksjonsrute og lokasjon. SkyPlanner styrer når og hvor: operasjonsrekkefølge, arbeidsstasjon, start og slutt. Datoer som endres i NetSuite, overskrives ved neste tilbakeskriving. Lås derfor Production Start/End Date med en skjematilpasning eller arbeidsflyt.

Typiske prosjekttrinn

Implementeringen fullføres normalt i løpet av uker etter at oppstartsarbeidet begynner, også i store bedrifter. Et NetSuite-prosjekt omfatter:

  • Utprøving med egne data: Arbeidssentre, produksjonsruter og åpne produksjonsordrer eksporteres til CSV fra lagrede søk og importeres i SkyPlanner i løpet av prøveperioden på 30 dager.
  • Kobling av grunndata: NetSuite-poster kobles til SkyPlanner-objekter, med tilpassede felt, enheter og WIP- eller ikke-WIP-modell for hver vare.
  • Førstegangsinnlasting: Varer, BOM-revisjoner, produksjonsruter og arbeidssentre hentes via SuiteQL. Deretter settes skift, operatører og alternative arbeidsstasjoner opp i SkyPlanner.
  • Synkronisering av produksjons- og innkjøpsordrer: Produksjonsordrer med status Released og In Process samt åpne innkjøpsordrer med forventede mottaksdatoer synkroniseres ved hjelp av User Event-skript og polling for avstemming.
  • Tilbakeskriving av planen: Planlagte operasjonsdatoer skrives til produksjonsordrer og operasjonsoppgaver, med OAuth 2.0 M2M satt opp i sandkasse- og produksjonsmiljøet.
  • Tilbakemeldinger fra produksjonsgulvet: Work Order Completions, materialuttak eller Assembly Builds opprettes fra Mobile Confirmations og timeregistreringer.
  • Testing parallelt med gjeldende plan: Kjør SkyPlanner-planen parallelt med dagens prosess for frigivelse av produksjonsordrer, og sammenlign.
  • Produksjonssetting: Flytt planleggingen til SkyPlanner og lås datofeltene i NetSuite.

Ryddige produksjonsruter og ett datterselskap holder omfanget nede. Flere datterselskaper, WIP-backflush og tilpassede skjemaer gir mer arbeid med datakoblingene.

Fallgruver i NetSuite

  • Produksjonsordrer uten produksjonsruter. En produksjonsordre uten Manufacturing Routing har ingen operasjoner å planlegge. Oracle sier det samme om sin egen løsning for produksjonsplanlegging: «Work orders not associated with a NetSuite routing should not be scheduled.» (Produksjonsordrer som ikke er knyttet til en NetSuite-produksjonsrute, bør ikke planlegges.) Finn dem med SuiteQL før produksjonssetting.
  • Arbeidssentre har lite detaljinformasjon. Et arbeidssenter i NetSuite er en Group med to antallsfelt, Machine Resources og Labor Resources (begge har 0 som standardverdi), og én Work Calendar, vanligvis «Default Work Calendar». Last inn arbeidssentrene én gang. Vedlikehold deretter de enkelte arbeidsstasjonene, skift per person, verktøy, omstillingstidsmatrisen og alternative arbeidsstasjoner i SkyPlanner.
  • Datakvalitet i Setup Time og Run Rate. NetSuites planlegging uten kapasitetsbegrensninger bruker disse feltene, men fordi kapasiteten ignoreres, blir feil verdier ikke oppdaget. Produksjonsplanlegging som tar hensyn til faktisk maskin- og bemanningskapasitet, avdekker dem fra første dag.
  • WIP eller ikke-WIP. Med Manufacturing WIP bokføres produksjonen gjennom Work Order Issue, Work Order Completion og Work Order Close. Uten WIP brukes en Assembly Build. Integrasjonen bokfører ferdigmeldinger for WIP-varer og Assembly Builds for resten, så modellen for hver vare inngår i datakoblingen.
  • Advanced Manufacturing på samme konto. Hvis kontoen også bruker Advanced Manufacturing SuiteApp, må Manufacturing Work Bench-postene samsvare nøyaktig med produksjonsruten: operasjonsrekkefølge, operasjonsnavn og arbeidssenter. Avklar hvilket system som fastsetter operasjonsdatoene. To planleggingssystemer som arbeider med de samme produksjonsordrene, betyr to konkurrerende planer.
  • Grenser for samtidige kall. Webtjenester og RESTlet-kall deler én grense for samtidige kall på kontoen. Grensen bestemmes av tjenestenivået, med et tillegg på 10 per SuiteCloud Plus-lisens. Parallelle oppslag på enkeltposter når raskt denne grensen. Bruk SuiteQL med sideinndeling til lesing, og legg skriveoperasjoner i kø.
  • Oppdatering av sandkassen sletter M2M-oppsettet. Koblinger for OAuth 2.0 Client Credentials slettes når sandkassen oppdateres, og kopieres ikke mellom kontoer. Et utløpt eller tilbakekalt sertifikat stopper synkroniseringen til en ny kobling er opprettet. Sett opp varsling ved autentiseringsfeil.

NetSuite-integrasjonen: Hvem konfigurerer den og gir støtte?

Arbeidet omfatter kobling til postene, produksjonsrutene og arbeidssentrene dine, samt begrensninger som NetSuite ikke lagrer som planleggingsdata: omstillingstidsmatrise, verktøy, antall operatører og alternative ressurser. SkyPlanner sender planendringer tilbake via webhooks så snart de skjer, også endringer gjort av Autopilot.

  1. SkyPlanner-teamet konfigurerer integrasjonen under oppstarten og gir støtte etter produksjonssetting. Hver fabrikk bruker NetSuite på sin måte: WIP eller ikke-WIP, tilpassede skjemaer, skript og ulike oppsett for produksjonsruter. Teamet kobler postene dine og knytter SkyPlanner REST API og webhooks til NetSuite REST, SuiteQL og RESTlets. Støtten omfatter User Event-skriptet og mellomvaren og tilpasses endringer i NetSuite-oppsettet ditt.
  2. NetSuite-partneren din kan delta. Partneren kjenner de tilpassede skjemaene, skriptene og rollene dine. De arbeider mot SkyPlanner REST API, som dekker ordrer, produkter, materialer, innkjøpsordrer, prosesstrinn og timeregistreringer. API-et har Swagger/OpenAPI-dokumentasjon og JWT-autentisering. Offentlig dokumentasjon: SkyPlanner-dokumentasjon.
  3. Dine egne utviklere bygger videre på løsningen. En vanlig fordeling er et User Event-skript i NetSuite og en liten mellomvaretjeneste utenfor. En API-nøkkel er nok for å komme i gang (integrasjonsveiledning), og SkyPlanner-teamet hjelper til ved behov.

Valider først planen med CSV-data i den gratis prøveperioden på 30 dager, med opptil 20 arbeidsstasjoner og uten kredittkort. Da tar integrasjonen utgangspunkt i en plan som allerede passer fabrikken.

Når tilkoblingen er på plass, planlegger Arcturus-motoren ut fra oppdaterte produksjonsordrer i NetSuite og kontrollerer materialtilgangen mot lagerbeholdning og innkommende innkjøpsordrer. Operatørene registrerer arbeid med Mobile Confirmations, Production Timer og Quick Log Mode, og NetSuite gjenspeiler aktiviteten på produksjonsgulvet uten manuell registrering. SkyPlanner koster fra 199 € per måned med 5 arbeidsstasjoner inkludert. Abonnementet faktureres månedlig og kan sies opp når som helst. Du får et pristilbud på integrasjonen på forhånd, basert på prosessen og behovene dine, sammen med abonnementet. Dermed ser du hele kostnaden før du starter. Kontakt salg for en avklaring av NetSuite-integrasjonen, eller se funksjoner og kunder.

Produsentenes erfaringer med SkyPlanner

Kalle Kalliomäki, forsyningskjedespesialist hos UTU, i eltavleproduksjonen i Ulvila

2 hspart hver uke

«Med SkyPlanner har vi gått fra produksjonsplanlegging i Excel til produksjonsoptimalisering i sanntid.»

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

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

Les kundeomtalen fra UTU

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 arbeidsstasjonene.

Les kundeomtalen fra Laboratory & Allied

Flyfoto av Piristeels fabrikk for taksikringsutstyr i Kauhava

99,2%leveringspålitelighet

«SkyPlanner har gitt oss oversikten vi trenger for å identifisere flaskehalser, 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.

Les kundeomtalen fra Piristeel

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

6 månederfrem i tid kan salgsavdelingen se ledig kapasitet

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

Anu Järvinen, produksjonssjef
Fredman Operations · Emballasjepapir egnet for matkontakt

Salgsavdelingen ser ledig kapasitet seks måneder frem i tid. Forespørsler om endringer i produksjonsplanen som tidligere tok en time eller mer å besvare, får nå svar på sekunder.

Les kundeomtalen fra Fredman Operations

Ofte stilte spørsmål

Hvordan kobles SkyPlanner APS til NetSuite?

I begge retninger, via NetSuite REST record API, SuiteQL og RESTlets der det er nødvendig. Operasjonsdatoer skrives med PATCH på manufacturingOperationTask. Arbeidstid og produsert antall registreres via transformasjonen workOrderCompletion eller assemblyBuild. SkyPlanner-teamet setter opp integrasjonen under innføringen og gir brukerstøtte etter produksjonssetting. NetSuite-partneren deres eller egne utviklere kan bygge videre på det dokumenterte REST-API-et.

Trenger vi Advanced Manufacturing SuiteApp for å bruke SkyPlanner?

Nei. SkyPlanner håndterer selv produksjonsplanleggingen basert på standardobjektene Work Orders, Manufacturing Routings og Work Centers, og tar hensyn til faktisk maskin- og bemanningskapasitet. Hvis kontoen også bruker Advanced Manufacturing, avgjøres det under avklaringen av prosjektets omfang hvilket system som fastsetter datoene for operasjonene.

Hvordan unngås dobbeltposteringer hvis en hendelse sendes to ganger?

Hver Work Order Completion bruker ID-en til tidsregistreringen i SkyPlanner som ekstern ID. NetSuite sikrer at eksterne ID-er er unike per posttype. Dermed avvises en hendelse som sendes på nytt, i stedet for at mengde og kostnad posteres en gang til. Mislykkede skriveoperasjoner legges i kø, forsøkes på nytt og loggføres.

Kan vi bruke TBA eller SOAP i stedet for REST og OAuth 2.0?

For nye integrasjoner bør dere velge REST med OAuth 2.0. Oracle stopper nye TBA- og SOAP-integrasjoner fra 2027.1 og deaktiverer alle SOAP-endepunkter i 2028.2. En SkyPlanner-integrasjon bygget på REST og OAuth 2.0 fortsetter å fungere etter begge disse tidspunktene.

Hvordan får SkyPlanner beskjed om nye produksjonsordrer i NetSuite?

NetSuite har ingen dokumentert standardfunksjon for utgående webhooks. Et User Event-skript på Work Order legger et varsel i kø ved lagring. Regelmessig polling med SuiteQL fanger opp endringer som skriptet ikke registrerer, som CSV-importer og masseoppdateringer.

Kan vi teste SkyPlanner med NetSuite-data før vi bygger integrasjonen?

Ja. Eksporter arbeidssentre, produksjonsruter og åpne produksjonsordrer som CSV, importer dem til SkyPlanner i løpet av prøveperioden på 30 dager, og sammenlign produksjonsplanen som tar hensyn til faktisk maskin- og bemanningskapasitet, med dagens plan. Start gratis prøveperiode eller bestill en demo.

Hvor lang tid tar et integrasjonsprosjekt med NetSuite?

Implementeringen er normalt ferdig i løpet av noen uker etter at innføringen starter, også for store bedrifter. Produksjonsplanleggingen kjører allerede på CSV-data i prøveperioden, og UTU bruker SkyPlanner sammen med NetSuite i dag (kundeomtale fra UTU).