Integrationer / ERP / Oracle NetSuite

Guide til NetSuite-integration med SkyPlanner APS til detailplanlægning

Denne guide viser NetSuite-partnere, administratorer og tekniske indkøbere, hvordan SkyPlanner APS forbindes med Oracle NetSuite til produktionsplanlægning, der tager højde for maskinernes og medarbejdernes reelle kapacitet. SkyPlanner integreres med NetSuite i begge retninger via REST-webtjenester og SuiteQL:

  • Produktionsordrer, ruter, arbejdscentre, varer og indkøbsordrer hentes ind.
  • Planlagte start- og sluttidspunkter skrives til opgaverne for produktionsoperationerne.
  • Registrerede timer og producerede mængder bogføres i NetSuite som Work Order Completions eller Assembly Builds.
  • SkyPlanner-webhooks sender ændringer i planen, så snart de sker.
Gantt-tidslinje i SkyPlanner APS med opgaver fordelt på arbejdsstationer og en ordreliste nedenunder.

NetSuite er det styrende system for varer, BOM’er, ruter, produktionsordrer, lager og omkostningsberegning. SkyPlanner står for produktionsplanlægningen med Arcturus-motoren, så planen tager højde for den reelt tilgængelige kapacitet hos både maskiner og medarbejdere. SkyPlanner-teamet konfigurerer integrationen til din konto under opstarten og yder support efter idriftsættelsen. Integrationen bruger standardposter i NetSuite og er ikke afhængig af Advanced Manufacturing SuiteApp.

SkyPlanner kører allerede integreret med NetSuite hos UTU, der fremstiller eltavler og koblingsanlæg i Ulvila i Finland. UTU tog løsningen i brug i september 2025 med SkyPlanner integreret med Oracle NetSuite og virksomhedens lønsystem. Vil du se det forretningsmæssige grundlag, så start med siden om detailplanlægning med NetSuite og Har NetSuite produktionsplanlægning?.

Det afgørende valg for projektet: REST og OAuth 2.0

Oracle har lagt retningen. Fra 2026.1 bør nye integrationer bygges på SuiteTalk REST-webtjenester med OAuth 2.0. Fra 2027.1 er der lukket for nye integrationer med SOAP eller Token-Based Authentication (TBA). SOAP-endpoints deaktiveres i 2028.2. Enhver integration til detailplanlægning, der påbegyndes i dag, skal bygge på REST.

Mulighed i NetSuiteHvad er det?Rolle i en APS-integration
SuiteTalk REST record API/services/rest/record/v1/<recordType>, versioneret sammen med NetSuite-udgivelsen; !transform til færdigmeldinger, materialeudtag og fremstilling på produktionsordrerSkrivning: datoer for operationsopgaver og produktionsordrer (PATCH), færdigmeldinger, materialeudtag og fremstilling af montagevarer (transform)
SuiteQL via RESTPOST /services/rest/query/v1/suiteql med Prefer: transient, op til 100.000 resultater pr. forespørgsel, sideinddeling med limit/offsetMasselæsning: varer, ruter, arbejdscentre, åbne produktionsordrer og lagerbeholdning
SuiteScript 2.1 RESTletsTilpassede get/post/put/delete-endpointsFunktioner, som REST ikke dækker, og samlede payloads, f.eks. en produktionsordre med alle dens operationer
SuiteScript User Event / Map-ReduceScripts, der kører på serversiden i NetSuiteUdgående meddelelser om ændringer
CSV Import AssistantGemte importtilknytningerEngangsindlæsninger; ikke til løbende synkronisering
SuiteTalk SOAPÆldre teknologi, kun TBABrug ikke dette til nye integrationer

Autentificering

Brug OAuth 2.0 Client Credentials (machine-to-machine) til en planlægningsløsning, der kommunikerer server til server. Stien i administrationen er Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Du uploader et offentligt certifikat og knytter det til en entitet, en rolle og integrationsposten. Hver integrationspost kan højst have fem aktive certifikater.

Opret en særskilt integrationsrolle med læseadgang til varer, BOM-revisioner, ruter og arbejdscentre samt redigeringsadgang til produktionsordrer, færdigmeldinger og materialeudtag. SkyPlanner REST API (API-reference) bruger JWT, så middlewarelaget opbevarer begge sæt legitimationsoplysninger.

Hændelser: Der findes ingen standardwebhook

Oracles dokumentation beskriver ingen indbygget udgående webhook. Løsningen er et SuiteScript User Event-script på Work Order (afterSubmit), som sætter et udgående kald i kø via N/task eller et Map/Reduce-script og foretager kaldet med N/https. Foretag aldrig synkrone udgående kald i afterSubmit: Kaldet kører som en del af brugerens gemmehandling, så et langsomt endpoint forsinker eller afbryder handlingen.

User Events dækker ikke alle måder, data kan ændres på. Masseopdateringer og CSV-importer kan omgå dem. Suppler event-scriptet med en planlagt SuiteQL-polling på lastmodifieddate for at afstemme data, så intet bliver overset. I den modsatte retning styrer SkyPlanners egne webhooks tilbageskrivningen, så NetSuite får nye datoer, så snart planen ændres.

Datamapping: Fra NetSuite til SkyPlanner

NetSuite-post (REST-id)Objekt i SkyPlannerRetningHyppighed
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Produkt / materialeNetSuite → SkyPlannerFørste indlæsning, derefter dagligt eller ved ændringer
BOM Revision (bomRevision), BOM-komponenterProduktstruktur i flere niveauer, materialebehovNetSuite → SkyPlannerVed ændringer
Manufacturing Routing (manufacturingRouting, underlisterne routingStep, routingComponent)Procestrin: rækkefølge, arbejdsstation, omstillingstid, køretidNetSuite → SkyPlannerVed ændringer
Manufacturing Work Center (Group markeret som arbejdscenter): Machine Resources, Labor Resources, Work CalendarArbejdsstationer, grupper af arbejdsstationer, skifteholdNetSuite → SkyPlanner, derefter vedligeholdelse i SkyPlannerFørste indlæsning
Work Order (workOrder): vare, antal, lokation, Production Start/End Date, status; leveringsdato fra den tilknyttede Sales OrderOrdre / opgave med leveringsdato og prioritetNetSuite → SkyPlannerNæsten i realtid via User Event, suppleret med polling til afstemning
Manufacturing Operation Task (manufacturingOperationTask)Planlagt operationNetSuite → SkyPlanner, datoer SkyPlanner → NetSuiteNæsten i realtid
Lagerbeholdning pr. lokation (SuiteQL), Item Receipts (itemReceipt)Lagerbeholdninger til materialestyret detailplanlægningNetSuite → SkyPlannerHvert 15. til 60. minut eller ved varemodtagelse
Linjer i Purchase Order (purchaseOrder): vare, antal, forventet modtagelsesdato, statusIndkøbsordrer / indgående materialer (forventet leveringsdato). Regnes som tilgængelige på leveringsdatoen; lagerbeholdningen opdateres, når indkøbsordren markeres som DeliveredNetSuite → SkyPlannerHvert 15. til 60. minut eller ved ændringer
Planlagt start og slut pr. operationPATCH manufacturingOperationTask/{id} (startDate, endDate) og PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteVed ændringer i planen, via en SkyPlanner-webhook
Mobile Confirmations, tidsregistreringer, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: intervallet startOperation/endOperation, færdigmeldt antal, arbejdstid på operation-linjerne, SkyPlanners tidsregistrerings-id som eksternt idSkyPlanner → NetSuitePr. tilbagemelding eller samlet i batches
MaterialeforbrugPOST workOrder/{id}/!transform/workOrderIssue eller isBackflush på færdigmeldingenSkyPlanner → NetSuitePr. tilbagemelding
Færdigmeldt ordre (NetSuite-konti uden WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteVed færdigmelding af ordren
Ordre lukketWork Order Close (workOrderClose)I NetSuite, af økonomiafdelingenIkke automatiseret som standard

Integrationsmønstre

1. Første indlæsning af stamdata. Hent først arbejdscentre og derefter varer, BOM-revisioner og ruter med SuiteQL. Ruter henviser til arbejdscentre, så rækkefølgen er vigtig. I prøveperioden eksporterer du de samme data til CSV og importerer dem i SkyPlanner. Planen valideres, før der er skrevet nogen kode.

2. Synkronisering af ordrer. Hent produktionsordrer med status Released og In Process. Afgør tidligt, om produktionsordrer med status Planned også skal med. Hvis de skal, behandles de som foreløbigt behov. Synkroniser åbne indkøbsordrer i samme kørsel, så planen kontrollerer hver opgave mod både lagerbeholdning og indgående materialer, ikke kun lagerbeholdningen.

3. Tilbageskrivning af planen. Når planen ændres, sender en SkyPlanner-webhook de nye operationsdatoer til middlewaren. Middlewaren sender PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (Oracles reference for poster) med startDate og endDate for hver ændret operation. Endnu et PATCH-kald på ordrehovedet i workOrder angiver Production Start and End Date. Skriv kun datoer og et tilpasset felt til rækkefølge, hvis I bruger et. Skriv aldrig antal eller BOM-data tilbage. Hvis mange operationer skal opdateres i én transaktion, kan en lille RESTlet gemme hele operationslisten i ét kald. Record-API’et er fortsat standardvalget.

4. Tilbagemeldinger fra produktionsgulvet. Operatørerne registrerer arbejdet i SkyPlanner Mobile Confirmations. Middlewaren bogfører hver tilbagemelding via transformationer af Work Order med POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion. Kaldet indeholder startOperation, endOperation, det færdigmeldte antal og den registrerede tid på operationslinjerne. Produktionsordrer uden WIP afsluttes i stedet med !transform/assemblyBuild. Work Order Completion via REST kræver funktionen Manufacturing Work In Process. Lager- og omkostningsposteringer håndteres fortsat i NetSuite.

5. Idempotens og genforsøg. Hver færdigmelding har SkyPlanner-tidsregistreringens ID som eksternt ID i NetSuite. Eksterne ID’er er unikke pr. posttype, så en genafsendt webhook afvises som en dublet i stedet for at bogføre mængder og omkostninger to gange. Skriveoperationer sættes i kø. Et mislykket kald (grænse for samtidige kald, låst post, udløbet certifikat) forsøges igen og logges. Fejl, der stadig ikke løses, er synlige for SkyPlanner-teamet, som yder support på integrationen.

6. Regler for dataansvar. NetSuite styrer, hvad der fremstilles: vare, mængde, BOM, rute og lokation. SkyPlanner styrer hvornår og hvor: operationsrækkefølge, arbejdsstation, start og slut. Datoer, der ændres i NetSuite, overskrives ved næste tilbageskrivning. Lås derfor Production Start/End Date via en formulartilpasning eller en arbejdsgang.

Typiske trin i projektet

Implementeringen er normalt afsluttet inden for få uger efter opstarten, også i store virksomheder. Et NetSuite-projekt omfatter:

  • Afprøvning med egne data: Arbejdscentre, ruter og åbne produktionsordrer eksporteres til CSV fra gemte søgninger og importeres i SkyPlanner i den 30-dages prøveperiode.
  • Mapping af stamdata: Mapping af NetSuite-poster til SkyPlanner-objekter samt af tilpassede felter, enheder og WIP- eller ikke-WIP-modellen for hver vare.
  • Første indlæsning: Varer, BOM-revisioner, ruter og arbejdscentre hentes via SuiteQL. Derefter opsættes skiftehold, operatører og alternative arbejdsstationer i SkyPlanner.
  • Synkronisering af produktions- og indkøbsordrer: Produktionsordrer med status Released og In Process samt åbne indkøbsordrer med forventede modtagelsesdatoer synkroniseres via User Event-scripts og polling til afstemning.
  • Tilbageskrivning af planen: Planlagte operationsdatoer skrives til produktionsordrer og operationsopgaver, med OAuth 2.0 M2M opsat i både sandbox- og produktionsmiljøet.
  • Tilbagemeldinger fra produktionsgulvet: Work Order Completions, materialeudtag eller Assembly Builds oprettes ud fra Mobile Confirmations og tidsregistreringer.
  • Test parallelt med den nuværende plan: Kør SkyPlanner-planen sideløbende med den nuværende frigivelsesproces, og sammenlign.
  • Idriftsættelse: Flyt planlægningen til SkyPlanner, og lås datofelterne i NetSuite.

Velstrukturerede ruter og ét datterselskab holder projektets omfang nede. Flere datterselskaber, WIP-backflush og tilpassede formularer kræver mere mapping.

Faldgruber i NetSuite

  • Produktionsordrer uden ruter. En produktionsordre uden Manufacturing Routing har ingen operationer at planlægge. Oracle siger det samme om sin egen produktionsplanlægning: “Work orders not associated with a NetSuite routing should not be scheduled.” (Produktionsordrer, der ikke er knyttet til en NetSuite-rute, bør ikke planlægges.) Find dem med SuiteQL før idriftsættelsen.
  • Arbejdscentre indeholder få oplysninger. Et arbejdscenter i NetSuite er en Group med to antalsfelter, Machine Resources og Labor Resources (begge har standardværdien 0), og én Work Calendar, som regel “Default Work Calendar”. Indlæs arbejdscentrene én gang, og vedligehold derefter de enkelte arbejdsstationer, skift pr. person, værktøjer, matricen for omstillingstider og alternative arbejdsstationer i SkyPlanner.
  • Datakvalitet i Setup Time og Run Rate. NetSuites planlægning uden kapacitetsbegrænsninger bruger disse felter, men da den ikke tager hensyn til kapaciteten, bliver forkerte værdier ikke opdaget. En produktionsplan, der tager højde for den reelle kapacitet, afslører dem fra første dag.
  • WIP eller ikke-WIP. Med Manufacturing WIP bogføres produktionen via Work Order Issue, Work Order Completion og Work Order Close. Uden WIP bruges en Assembly Build. Integrationen bogfører færdigmeldinger for WIP-varer og Assembly Builds for resten, så modellen for hver vare indgår i mappingen.
  • Advanced Manufacturing på samme konto. Hvis kontoen også bruger Advanced Manufacturing SuiteApp, skal dens Manufacturing Work Bench-poster svare nøjagtigt til ruten: operationsrækkefølge, operationsnavn og arbejdscenter. Afgør, hvilket system der fastlægger operationsdatoerne. To planlægningssystemer på de samme produktionsordrer giver to konkurrerende planer.
  • Grænser for samtidige kald. Webtjenester og RESTlet-kald deler én grænse for samtidige kald på kontoen, som bestemmes af serviceniveauet plus 10 pr. SuiteCloud Plus-licens. Parallel polling af enkelte poster rammer hurtigt grænsen. Brug SuiteQL med sideinddeling til læsning, og sæt skriveoperationer i kø.
  • Opdatering af sandbox sletter M2M-opsætningen. Tilknytninger for OAuth 2.0 Client Credentials slettes, når sandboxmiljøet opdateres, og kopieres ikke mellem konti. Et udløbet eller tilbagekaldt certifikat stopper synkroniseringen, indtil der oprettes en ny tilknytning. Opsæt alarmer ved autentificeringsfejl.

NetSuite-integrationen: Hvem konfigurerer den og yder support?

Arbejdet omfatter mapping til dine poster, ruter og arbejdscentre samt de begrænsninger, NetSuite ikke har som data til planlægning: matrix for omstillingstider, værktøjer, antal operatører og alternative ressourcer. SkyPlanner-webhooks sender ændringer i planen tilbage, så snart de sker, også dem Autopilot foretager.

  1. SkyPlanner-teamet konfigurerer integrationen under opstarten og yder support efter idriftsættelsen. Hver fabrik bruger NetSuite forskelligt: WIP eller ikke-WIP, tilpassede formularer, scripts og forskellige måder at opbygge ruter på. Teamet mapper dine poster og forbinder SkyPlanner REST API og webhooks med NetSuite REST, SuiteQL og RESTlets. Supporten omfatter User Event-scriptet og middlewarelaget og tilpasses ændringer i din NetSuite-opsætning.
  2. Din NetSuite-partner kan deltage. Partneren kender dine tilpassede formularer, scripts og roller. Partneren arbejder med SkyPlanner REST API, som omfatter ordrer, produkter, materialer, indkøbsordrer, procestrin og tidsregistreringer. API’et har Swagger/OpenAPI-dokumentation og JWT-autentificering. Offentlig dokumentation: SkyPlanner-dokumentation.
  3. Dine egne udviklere kan bygge videre på løsningen. En almindelig opdeling er et User Event-script i NetSuite og en lille middlewaretjeneste udenfor. En API-nøgle er nok til at komme i gang (integrationsvejledning), og SkyPlanner-teamet hjælper efter behov.

Validér først planen i den gratis 30-dages prøveperiode med CSV-data og op til 20 arbejdsstationer, uden kreditkort. Så tager integrationen udgangspunkt i en plan, der allerede passer til fabrikken.

Når forbindelsen er etableret, planlægger Arcturus-motoren ud fra aktuelle produktionsordrer i NetSuite og kontrollerer materialer fra lager og indgående indkøbsordrer. Operatørerne registrerer arbejdet med Mobile Confirmations, Production Timer og Quick Log Mode, så NetSuite afspejler arbejdet på produktionsgulvet uden manuel indtastning. SkyPlanner koster fra 199 € pr. måned med 5 arbejdsstationer inkluderet. Der faktureres månedligt, og du kan opsige når som helst. Du får på forhånd et tilbud på integrationen, tilpasset din proces og dine behov, sammen med dit abonnement, så du kender den samlede pris, før du starter. Kontakt salg for at få afklaret omfanget af din NetSuite-integration, eller se funktioner og kunder.

Produktionsvirksomheders anmeldelser af SkyPlanner

Kalle Kalliomäki, forsyningskædespecialist hos UTU, i eltavleproduktionen i Ulvila

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

Luftfoto af Piristeels fabrik for tagsikkerhedsudstyr i Kauhava

99,2%leveringssikkerhed

“SkyPlanner har gjort det lettere at få øje på 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.

Læs Piristeels anmeldelse

Anu Järvinen, produktionschef hos Fredman Operations, ved en robotcelle til palletering i Rauma

6 månederfrem kan salgsafdelingen se den ledige kapacitet

“SkyPlanner giver et pålideligt grundlag for al produktionsplanlægning.”

Anu Järvinen, produktionschef
Fredman Operations · Fødevaresikkert emballagepapir

Salgsafdelingen kan se den ledige kapacitet seks måneder frem, og forespørgsler om ændringer i planen, som før tog en time eller mere, besvares nu på få sekunder.

Læs Fredman Operations’ anmeldelse

Ofte stillede spørgsmål

Hvordan forbindes SkyPlanner APS med NetSuite?

I begge retninger via NetSuites REST record API, SuiteQL og RESTlets, hvor det er nødvendigt. Operationsdatoer skrives med PATCH på manufacturingOperationTask. Arbejdstid og produceret antal bogføres via transformationen workOrderCompletion eller assemblyBuild. SkyPlanner-teamet konfigurerer integrationen under opstarten og yder support efter idriftsættelsen. Jeres NetSuite-partner eller egne udviklere kan bygge videre på det dokumenterede REST API.

Skal vi have Advanced Manufacturing SuiteApp for at bruge SkyPlanner?

Nej. SkyPlanner står selv for produktionsplanlægningen ud fra standardobjekterne Work Orders, Manufacturing Routings og Work Centers og tager højde for maskinernes og medarbejdernes reelle kapacitet. Hvis kontoen også bruger Advanced Manufacturing, afgør afklaringen, hvilket system der fastsætter datoerne for operationerne.

Hvordan undgår man dobbeltposteringer, hvis en hændelse sendes to gange?

Hver Work Order Completion bruger SkyPlanners tidsregistrerings-ID som eksternt ID. NetSuite sikrer, at eksterne ID’er er entydige inden for hver posttype, så en gensendt hændelse afvises i stedet for at bogføre mængde og omkostninger igen. Mislykkede skriveoperationer sættes i kø, forsøges igen og logges.

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

Ved nye integrationer skal I planlægge med REST og OAuth 2.0. Oracle stopper for nye TBA- og SOAP-integrationer fra 2027.1 og deaktiverer alle SOAP-endpoints i 2028.2. En SkyPlanner-integration bygget på REST og OAuth 2.0 fortsætter med at fungere efter begge tidspunkter.

Hvordan får SkyPlanner besked om nye produktionsordrer i NetSuite?

NetSuite har ingen dokumenteret udgående standardwebhook. Et User Event-script på Work Order lægger en meddelelse i kø, når posten gemmes. En planlagt SuiteQL-forespørgsel opfanger ændringer, som scriptet overser, f.eks. CSV-importer og masseopdateringer.

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

Ja. Eksportér arbejdscentre, ruter og åbne produktionsordrer som CSV, importér dem i SkyPlanner i løbet af prøveperioden på 30 dage, og sammenlign produktionsplanen, der tager højde for den reelle kapacitet, med jeres nuværende plan. Start den gratis prøveperiode, eller book en demo.

Hvor lang tid tager et integrationsprojekt med NetSuite?

Implementeringen er normalt afsluttet i løbet af få uger efter opstarten, også i store virksomheder. Planlægningen kører allerede på CSV-data i prøveperioden, og UTU bruger i dag SkyPlanner sammen med NetSuite (UTU’s anmeldelse).