Ansluter med ERP & MES-system som

Integrationer / ERP / Oracle NetSuite

Guide till NetSuite-integration för produktionsplanering med SkyPlanner APS

Den här guiden visar NetSuite-partner, administratörer och tekniska inköpare hur SkyPlanner APS ansluts till Oracle NetSuite för finplanering som tar hänsyn till maskinernas och personalens faktiska kapacitet. SkyPlanner integreras med NetSuite i båda riktningarna via REST-webbtjänster och SuiteQL:

  • Tillverkningsorder, operationsföljder, produktionsgrupper, artiklar och inköpsorder läses in.
  • Planerade start- och sluttider skrivs till tillverkningsoperationerna.
  • Rapporterade timmar och producerade kvantiteter återförs som Work Order Completions eller Assembly Builds.
  • SkyPlanners webhooks skickar planändringar så snart de sker.
Gantt-tidslinje i SkyPlanner APS med operationer inplanerade på produktionsgrupper och en orderlista nedanför.

NetSuite är master för artiklar, BOM, operationsföljder, tillverkningsorder, lager och kostnadsberäkning. SkyPlanner skapar finplanen med Arcturus-motorn. SkyPlanner-teamet konfigurerar integrationen för ditt konto under införandet och ger support efter driftsättningen. Integrationen använder standardposter i NetSuite och är inte beroende av Advanced Manufacturing SuiteApp.

SkyPlanner är redan integrerat med NetSuite hos UTU, som tillverkar elcentraler och ställverk i Ulvila i Finland. UTU gick i drift i september 2025 med SkyPlanner integrerat med Oracle NetSuite och sitt lönesystem. För att se affärsnyttan kan du börja med sidan om produktionsplanering för NetSuite och Har NetSuite finplanering?.

Beslutet som styr projektet: REST och OAuth 2.0

Oracle har stakat ut riktningen. Från 2026.1 bör nya integrationer byggas med SuiteTalk REST-webbtjänster och OAuth 2.0. Från 2027.1 tillåts inga nya integrationer med SOAP eller Token-Based Authentication (TBA). SOAP-endpoints inaktiveras i 2028.2. Alla integrationer för produktionsplanering som påbörjas i dag ska bygga på REST.

Alternativ i NetSuiteBeskrivningRoll i en APS-integration
SuiteTalk REST record API/services/rest/record/v1/<recordType>, versionshanteras med NetSuite-versionen; !transform för färdigrapportering, materialuttag och inrapportering av tillverkade artiklar på tillverkningsorderSkrivning: datum för operationer och tillverkningsorder (PATCH), färdigrapportering, materialuttag och inrapportering av tillverkade artiklar (transform)
SuiteQL via RESTPOST /services/rest/query/v1/suiteql med Prefer: transient, upp till 100 000 resultat per fråga, sidindelning med limit/offsetMassläsning: artiklar, operationsföljder, produktionsgrupper, öppna tillverkningsorder, lagersaldon
SuiteScript 2.1 RESTletsAnpassade ändpunkter för get/post/put/deleteTäcker luckor i REST-stödet och samlar data i samma meddelande, till exempel en tillverkningsorder med alla dess operationer
SuiteScript User Event / Map-ReduceServerskript i NetSuiteUtgående ändringsaviseringar
CSV Import AssistantSparade importmappningarEngångsinläsningar; inte för löpande synkronisering
SuiteTalk SOAPÄldre teknik, endast TBABygg inga nya integrationer här

Autentisering

Använd OAuth 2.0 Client Credentials (machine-to-machine) för en planeringstjänst som kommunicerar mellan servrar. Sökvägen i administrationsgränssnittet är Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Du laddar upp ett publikt certifikat och kopplar det till en entitet, en roll och integrationsposten. Varje integrationspost kan ha högst fem aktiva certifikat.

Skapa en särskild integrationsroll med läsbehörighet för artiklar, BOM-revisioner, operationsföljder och produktionsgrupper samt redigeringsbehörighet för tillverkningsorder, färdigrapporteringar och materialuttag. SkyPlanners REST API (API-referens) använder JWT, så mellanprogramvaran hanterar autentiseringsuppgifterna för båda systemen.

Händelser: det finns ingen standardwebhook

Oracles dokumentation beskriver ingen inbyggd utgående webhook. En fungerande lösning är ett SuiteScript User Event-skript på Work Order (afterSubmit) som köar ett utgående anrop via N/task eller ett Map/Reduce-skript. Själva anropet görs med N/https. Gör aldrig synkrona utgående anrop i afterSubmit: anropet körs medan användaren sparar, så en långsam ändpunkt gör att det tar längre tid att spara eller att sparandet misslyckas.

User Event-skript fångar inte alla sätt som data kan ändras på. Massuppdateringar och CSV-importer kan gå förbi dem. Komplettera händelseskriptet med en schemalagd avstämning som frågar efter lastmodifieddate via SuiteQL, så att inget missas. I andra riktningen driver SkyPlanners egna webhooks återskrivningen, så att NetSuite får nya datum så snart planen ändras.

Datamappning: från NetSuite till SkyPlanner

NetSuite-post (REST-id)Objekt i SkyPlannerRiktningFrekvens
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Produkt / materialNetSuite → SkyPlannerFörsta inläsningen, därefter dagligen eller vid ändring
BOM Revision (bomRevision), komponenter i BOMProduktstruktur i flera nivåer, materialbehovNetSuite → SkyPlannerVid ändring
Manufacturing Routing (manufacturingRouting, underlistorna routingStep, routingComponent)Processteg: ordningsföljd, produktionsgrupp, ställtid, körtidNetSuite → SkyPlannerVid ändring
Manufacturing Work Center (Group markerad som produktionsgrupp): Machine Resources, Labor Resources, Work CalendarProduktionsgrupper, grupperingar av produktionsgrupper, skiftNetSuite → SkyPlanner, underhålls därefter i SkyPlannerFörsta inläsningen
Work Order (workOrder): artikel, antal, lagerställe, Production Start/End Date, status; kopplad Sales Order för leveransdatumOrder / operation med leveransdatum och prioritetNetSuite → SkyPlannerNära realtid via User Event, kompletterat med avstämning via periodiska frågor
Manufacturing Operation Task (manufacturingOperationTask)Tidsplanerad operationNetSuite → SkyPlanner, datum SkyPlanner → NetSuiteNära realtid
Lagersaldo per lagerställe (SuiteQL), Item Receipts (itemReceipt)Lagersaldon för planering utifrån materialtillgångNetSuite → SkyPlannerMed 15 till 60 minuters mellanrum eller vid inleverans
Rader i Purchase Order (purchaseOrder): artikel, antal, förväntat inleveransdatum, statusInköpsorder / inkommande material (förväntat leveransdatum). Räknas som tillgängligt på leveransdagen; lagersaldot uppdateras när inköpsordern markeras som Delivered.NetSuite → SkyPlannerMed 15 till 60 minuters mellanrum eller vid ändring
Planerad start- och sluttid per operationPATCH manufacturingOperationTask/{id} (startDate, endDate) och PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteNär tidsplanen ändras, via en webhook från SkyPlanner
Mobile Confirmations, tidsloggar, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: intervallet startOperation/endOperation, färdigrapporterat antal, arbetstid på operation-raderna, tidsloggens ID i SkyPlanner som externt IDSkyPlanner → NetSuiteVid varje rapportering eller satsvis
MaterialförbrukningPOST workOrder/{id}/!transform/workOrderIssue, eller isBackflush vid färdigrapporteringenSkyPlanner → NetSuiteVid varje rapportering
Färdigställd order (konton utan WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteNär ordern färdigrapporteras
Stängd orderWork Order Close (workOrderClose)I NetSuite, av ekonomiavdelningenAutomatiseras inte som standard

Integrationsmönster

1. Första inläsningen av grunddata. Läs först in produktionsgrupper och därefter artiklar, BOM-revisioner och operationsföljder med SuiteQL. Operationsföljder hänvisar till produktionsgrupper, så ordningen spelar roll. Under provperioden exporterar du samma data till CSV och importerar dem till SkyPlanner. Planen valideras innan någon kod har skrivits.

2. Ordersynkronisering. Hämta tillverkningsorder med status Released och In Process. Bestäm tidigt om även tillverkningsorder med status Planned ska tas med. Behandla dem i så fall som preliminära behov. Synkronisera öppna inköpsorder i samma körning, så att varje operation i planen kontrolleras mot både lagersaldo och inkommande material, inte bara lagersaldot.

3. Återskrivning av tidsplanen. När tidsplanen ändras skickar en webhook från SkyPlanner de nya operationsdatumen till mellanprogramvaran. Den skickar PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (Oracles referens för poster) med startDate och endDate för varje ändrad operation. Ytterligare ett PATCH-anrop på workOrder-huvudet anger Production Start och End Date. Skriv bara datum och, om ni använder ett sådant, ett anpassat fält för ordningsföljd. Skriv aldrig tillbaka antal eller BOM-data. För att uppdatera många operationer i en transaktion kan en liten RESTlet spara hela operationslistan i ett enda anrop. Record API är fortfarande standardvalet.

4. Rapportering från produktionsgolvet. Operatörerna registrerar arbetet i SkyPlanner Mobile Confirmations. Mellanprogramvaran skickar varje rapportering via transformeringar av Work Order med POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion. Anropet innehåller startOperation, endOperation, färdigrapporterat antal och registrerad tid på operationsraderna. Tillverkningsorder utan WIP avslutas i stället med !transform/assemblyBuild. Work Order Completion via REST kräver funktionen Manufacturing Work In Process. Lager- och kostnadsbokföringen ligger kvar i NetSuite.

5. Idempotens och återförsök. Varje färdigrapportering använder SkyPlanners tidslogg-ID som externt ID i NetSuite. Externa ID:n är unika per posttyp. En webhook som skickas igen avvisas därför som en dubblett i stället för att kvantiteter och kostnader bokförs två gånger. Skrivningar hanteras via en kö. Misslyckade anrop (gräns för samtidiga anrop, låst post, utgånget certifikat) körs om och loggas. Fel som kvarstår är synliga för SkyPlanner-teamet som ger support för integrationen.

6. Regler för dataägarskap. NetSuite styr vad som tillverkas: artikel, kvantitet, BOM, operationsföljd och lagerställe. SkyPlanner styr när och var: operationsordning, produktionsgrupp samt start och slut. Datum som ändras i NetSuite skrivs över vid nästa återskrivning. Lås därför Production Start/End Date med en formuläranpassning eller ett arbetsflöde.

Vanliga projektsteg

Implementeringen är normalt klar inom några veckor efter att införandet har startat, även hos stora företag. Ett NetSuite-projekt omfattar:

  • Test med egna data: produktionsgrupper, operationsföljder och öppna tillverkningsorder exporteras till CSV från sparade sökningar och importeras till SkyPlanner under provperioden på 30 dagar.
  • Mappning av grunddata: NetSuite-poster kopplas till SkyPlanner-objekt, med anpassade fält, enheter och val av WIP- eller icke-WIP-modell per artikel.
  • Första inläsningen: artiklar, BOM-revisioner, operationsföljder och produktionsgrupper läses in via SuiteQL. Därefter läggs skift, operatörer och alternativa produktionsgrupper upp i SkyPlanner.
  • Synkronisering av tillverkningsorder och inköpsorder: tillverkningsorder med status Released och In Process samt öppna inköpsorder med förväntade inleveransdatum synkroniseras med hjälp av User Event-skript och avstämning via polling.
  • Återskrivning av planen: planerade operationsdatum skrivs till tillverkningsorder och operationsuppgifter, med OAuth 2.0 M2M konfigurerat i både test- och produktionsmiljön.
  • Återrapportering från produktionsgolvet: Work Order Completions, materialuttag eller Assembly Builds skapas från Mobile Confirmations och tidsloggar.
  • Test parallellt med den befintliga planen: kör SkyPlanner-planen vid sidan av dagens frisläppningsprocess och jämför.
  • Driftsättning: flytta planeringen till SkyPlanner och lås datumfälten i NetSuite.

Korrekt uppsatta operationsföljder och ett enda dotterbolag håller projektets omfattning nere. Flera dotterbolag, bakåtrapportering i WIP och anpassade formulär innebär mer mappningsarbete.

Fallgropar i NetSuite

  • Tillverkningsorder utan operationsföljd. En tillverkningsorder utan Manufacturing Routing saknar operationer att planera. Oracle säger samma sak om sin egen finplanering: ”Work orders not associated with a NetSuite routing should not be scheduled.” (Tillverkningsorder som inte är kopplade till en operationsföljd i NetSuite bör inte planeras.) Hitta dessa order med SuiteQL före driftsättningen.
  • Produktionsgrupperna innehåller få uppgifter. En produktionsgrupp i NetSuite är en Group med två antalsfält, Machine Resources och Labor Resources (båda har standardvärdet 0), och en Work Calendar, vanligen ”Default Work Calendar”. Läs in produktionsgrupperna en gång. Underhåll sedan enskilda produktionsgrupper, skift per person, verktyg, ställtidsmatrisen och alternativa produktionsgrupper i SkyPlanner.
  • Datakvalitet i Setup Time och Run Rate. NetSuites planering med obegränsad kapacitet använder dessa fält, men eftersom den inte tar hänsyn till kapaciteten förblir felaktiga värden oupptäckta. Finplanering synliggör dem redan första dagen.
  • Med eller utan WIP. Med Manufacturing WIP bokförs produktionen via Work Order Issue, Work Order Completion och Work Order Close. Utan WIP används Assembly Build. Integrationen bokför Work Order Completions för WIP-artiklar och Assembly Builds för övriga artiklar, så valet av modell per artikel ingår i mappningen.
  • Advanced Manufacturing i samma konto. Om kontot även använder Advanced Manufacturing SuiteApp måste dess Manufacturing Work Bench-poster stämma exakt med operationsföljden: operationsordning, operationsnamn och produktionsgrupp. Bestäm vilket system som sätter operationsdatumen. Två planeringssystem för samma tillverkningsorder innebär två konkurrerande planer.
  • Gränser för samtidiga anrop. Webbtjänster och RESTlet-anrop delar en kontogemensam gräns för samtidiga anrop. Gränsen bestäms av tjänstenivån, med ett tillägg på 10 per SuiteCloud Plus-licens. Parallell polling av enskilda poster når snabbt gränsen. Använd SuiteQL med paginering för läsningar och lägg skrivningar i kö.
  • Uppdatering av testmiljön raderar M2M-konfigurationen. Kopplingarna för OAuth 2.0 Client Credentials rensas när testmiljön uppdateras och kopieras inte mellan konton. Ett utgånget eller återkallat certifikat stoppar synkroniseringen tills en ny koppling har skapats. Konfigurera larm för autentiseringsfel.

NetSuite-integrationen: vem konfigurerar den och ger support?

Arbetet omfattar mappning mot dina poster, operationsföljder och produktionsgrupper samt de begränsningar som NetSuite inte lagrar som uppgifter som kan användas i produktionsplaneringen: ställtidsmatris, verktyg, antal operatörer och alternativa resurser. SkyPlanners webhooks återför planändringar så snart de sker, även ändringar som Autopilot gör.

  1. SkyPlanner-teamet konfigurerar integrationen under införandet och ger support efter driftsättningen. Varje fabrik använder NetSuite på sitt sätt: med eller utan WIP, anpassade formulär, skript och egna rutiner för operationsföljder. Teamet mappar dina poster och ansluter SkyPlanners REST API och webhooks till NetSuite REST, SuiteQL och RESTlets. Supporten omfattar User Event-skriptet och mellanprogramvaran och följer ändringarna i din NetSuite-konfiguration.
  2. Din NetSuite-partner kan delta. Partnern känner till dina anpassade formulär, skript och roller. Partnern arbetar mot SkyPlanners REST API, som omfattar order, produkter, material, inköpsorder, processteg och tidsloggar. Det har Swagger/OpenAPI-dokumentation och JWT-autentisering. Öppen dokumentation: SkyPlanners dokumentation.
  3. Dina egna utvecklare kan bygga vidare på integrationen. En vanlig uppdelning är ett User Event-skript i NetSuite och en liten mellanprogramvarutjänst utanför. En API-nyckel räcker för att komma igång (integrationsguide), och SkyPlanner-teamet hjälper till vid behov.

Validera först planen med CSV-data i den kostnadsfria provperioden på 30 dagar, med upp till 20 produktionsgrupper och utan kreditkort. Integrationsarbetet utgår då från en plan som redan passar fabriken.

När anslutningen är på plats planerar Arcturus-motorn utifrån aktuella tillverkningsorder i NetSuite och kontrollerar material mot lagersaldo och inkommande inköpsorder. Operatörerna rapporterar arbete med Mobile Confirmations, Production Timer och Quick Log Mode, och NetSuite speglar läget på produktionsgolvet utan manuell inmatning. SkyPlanner kostar från 199 € per månad med 5 produktionsgrupper inkluderade. Fakturering sker månadsvis och du kan säga upp när som helst. Du får en offert på integrationen utifrån din process och dina behov, tillsammans med abonnemanget, så att du ser hela kostnaden innan du börjar. Kontakta säljteamet för att kartlägga din NetSuite-integration, eller läs om funktioner och kunder.

Tillverkares omdömen om SkyPlanner

Kalle Kalliomäki, specialist inom försörjningskedjan på UTU, i produktionen av elcentraler i Ulvila

2 hsparas varje vecka

”Med SkyPlanner har vi gått från produktionsplanering i Excel till att optimera produktionen i realtid.”

Kalle Kalliomäki, specialist inom försörjningskedjan
UTU · Elcentraler och ställverk

Produktionsplaneringen sparar 2 timmars arbetstid varje vecka, och en ny körplan når produktionslinjen på några sekunder.

Läs UTU:s omdöme

Operatörer i renrumsdräkter vid en flaskfyllningslinje i Laboratory & Allieds läkemedelsfabrik i Nairobi

+90%produktionseffektivitet

”Effektiviteten i produktionen har ökat med 90%.”

Abdul Rucyinga, IT-chef
Laboratory & Allied · Läkemedelstillverkning

Produktionseffektiviteten har ökat med 90%, och det tar mindre än 30 minuter att ta fram en optimerad plan för tre månader för alla produktionsgrupper.

Läs Laboratory & Allieds omdöme

Flygbild över Piristeels fabrik för taksäkerhetsprodukter i Kauhava

99,2%leveransprecision

”SkyPlanner har gjort det lättare att upptäcka flaskhalsar och gett oss en tydligare produktionsstyrning.”

Toni Tuori, produktionschef
Piristeel · Taksäkerhet och takavvattning

Leveransprecisionen nådde 99,2% i år, och produktionsplaneringen sparar upp till fyra timmars arbetstid per dag.

Läs Piristeels omdöme

Anu Järvinen, produktionschef på Fredman Operations, vid en robotcell för pallastning i Raumo

6 månaderframåt kan säljarna se ledig kapacitet

”SkyPlanner ger en stabil och tillförlitlig grund för all produktionsplanering.”

Anu Järvinen, produktionschef
Fredman Operations · Förpackningspapper för livsmedel

Säljarna ser ledig kapacitet sex månader framåt. Förfrågningar om ändringar i produktionsplanen som tidigare tog en timme eller mer att besvara får nu svar på några sekunder.

Läs Fredman Operations omdöme

Vanliga frågor

Hur ansluts SkyPlanner APS till NetSuite?

I båda riktningarna, via NetSuite REST record API, SuiteQL och vid behov RESTlets. Operationsdatum skrivs med PATCH på manufacturingOperationTask. Arbetstid och producerat antal rapporteras via transformeringen workOrderCompletion eller assemblyBuild. SkyPlanner-teamet konfigurerar integrationen under införandet och ger support efter driftsättningen. Er NetSuite-partner eller era egna utvecklare kan bygga vidare på det dokumenterade REST-API:et.

Behöver vi Advanced Manufacturing SuiteApp för att använda SkyPlanner?

Nej. SkyPlanner sköter självt finplaneringen utifrån standardobjekten Work Orders, Manufacturing Routings och Work Centers. Om kontot också använder Advanced Manufacturing avgörs det under kartläggningen vilket system som ska sätta datum för operationerna.

Hur undviks dubbelregistrering om en händelse skickas två gånger?

Varje Work Order Completion använder ID:t för tidsregistreringen i SkyPlanner som externt ID. NetSuite ser till att externa ID:n är unika per posttyp, så en händelse som skickas igen avvisas i stället för att kvantitet och kostnad registreras en gång till. Misslyckade skrivningar köas, görs om och loggas.

Kan vi använda TBA eller SOAP i stället för REST och OAuth 2.0?

Utgå från REST med OAuth 2.0 för nya integrationer. Oracle stoppar nya TBA- och SOAP-integrationer från version 2027.1 och inaktiverar alla SOAP-endpoints i version 2028.2. En SkyPlanner-integration som bygger på REST och OAuth 2.0 fortsätter att fungera efter båda dessa tidpunkter.

Hur får SkyPlanner information om nya tillverkningsorder i NetSuite?

NetSuite har ingen dokumenterad standardfunktion för utgående webhooks. Ett User Event-skript på Work Order köar en avisering när posten sparas. En schemalagd SuiteQL-fråga fångar upp ändringar som skriptet missar, till exempel CSV-importer och massuppdateringar.

Kan vi testa SkyPlanner med data från NetSuite innan vi bygger integrationen?

Ja. Exportera produktionsgrupper, operationsföljder och öppna tillverkningsorder som CSV och importera dem till SkyPlanner under provperioden på 30 dagar. Jämför sedan finplanen med er nuvarande plan. Starta en gratis provperiod eller boka en demo.

Hur lång tid tar ett integrationsprojekt med NetSuite?

Implementeringen är normalt klar inom några veckor från att införandet påbörjas, även för stora företag. Redan under provperioden går det att planera med CSV-data, och UTU använder SkyPlanner med NetSuite i dag (UTU:s omdöme).