Verbindt met ERP & MES-systemen zoals

Integraties / ERP / Oracle NetSuite

NetSuite-integratiegids voor productieschema’s met SkyPlanner APS

Deze gids laat NetSuite-partners, beheerders en technische inkopers zien hoe SkyPlanner APS met Oracle NetSuite wordt gekoppeld voor capaciteitsplanning die rekening houdt met de werkelijke machine- en personeelscapaciteit. SkyPlanner wisselt in beide richtingen gegevens uit met NetSuite via REST-webservices en SuiteQL:

  • Productieorders, bewerkingsvolgorden, werkcentra, artikelen en inkooporders worden ingelezen.
  • Geplande start- en eindtijden worden naar de taken voor productie­bewerkingen geschreven.
  • Geregistreerde uren en geproduceerde aantallen worden teruggeboekt als Work Order Completions of Assembly Builds.
  • SkyPlanner-webhooks geven wijzigingen in het productieschema direct door.
Gantt-tijdlijn in SkyPlanner APS met taken ingepland op verschillende werkcentra en daaronder een orderlijst.

NetSuite is leidend voor artikelen, stuklijsten, bewerkingsvolgorden, productieorders, voorraad en kostencalculatie. SkyPlanner verzorgt met de Arcturus-engine de capaciteitsplanning van de productie. Het SkyPlanner-team configureert de integratie voor uw account tijdens de onboarding en biedt na de ingebruikname ondersteuning. De integratie werkt met standaardrecords van NetSuite en is niet afhankelijk van de Advanced Manufacturing SuiteApp.

Bij UTU, een fabrikant van verdeel- en schakelinrichtingen in het Finse Ulvila, is SkyPlanner al met NetSuite geïntegreerd. UTU nam SkyPlanner in september 2025 in gebruik, gekoppeld aan Oracle NetSuite en het eigen salarissysteem. Begin voor de businesscase bij de pagina over productieschema’s voor NetSuite en Biedt NetSuite capaciteitsplanning?.

De keuze die het project bepaalt: REST en OAuth 2.0

Oracle heeft de koers bepaald. Vanaf 2026.1 horen nieuwe integraties te worden gebouwd met SuiteTalk REST-webservices en OAuth 2.0. Vanaf 2027.1 zijn er geen nieuwe integraties op basis van SOAP of Token-Based Authentication (TBA) meer mogelijk. SOAP-endpoints worden in 2028.2 uitgeschakeld. Elke planningsintegratie die nu wordt gestart, hoort op REST te worden gebouwd.

NetSuite-optieWat het isRol in een APS-integratie
SuiteTalk REST record API/services/rest/record/v1/<recordType>, met versies gekoppeld aan de NetSuite-release; !transform voor gereedmeldingen, materiaaluitgiften en assemblageboekingen van productieordersSchrijven: datums van bewerkingstaken en productieorders (PATCH), gereedmeldingen, materiaaluitgiften en assemblageboekingen (transform)
SuiteQL via RESTPOST /services/rest/query/v1/suiteql met Prefer: transient, maximaal 100.000 resultaten per query, paginering met limit/offsetIn bulk uitlezen: artikelen, bewerkingsvolgordes, werkcentra, openstaande productieorders, voorraad
SuiteScript 2.1 RESTletsAangepaste get/post/put/delete-endpointsFuncties die REST niet dekt, gecombineerde payloads zoals een productieorder met alle bijbehorende bewerkingen
SuiteScript User Event / Map-ReduceScripts die aan de serverzijde binnen NetSuite draaienUitgaande wijzigingsmeldingen
CSV Import AssistantOpgeslagen importtoewijzingenEenmalig laden; niet voor doorlopende synchronisatie
SuiteTalk SOAPVerouderd, alleen TBABouw hier geen nieuwe integraties op

Authenticatie

Gebruik OAuth 2.0 Client Credentials (machine-to-machine) voor een planningstoepassing die server-to-server werkt. Het pad in het beheermenu is Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. U uploadt een openbaar certificaat en koppelt dit aan een entiteit, een rol en het integratierecord. Elk integratierecord kan maximaal vijf actieve certificaten bevatten.

Maak een aparte integratierol aan met leesrechten voor artikelen, stuklijstrevisies, bewerkingsvolgorden en werkcentra, en bewerkrechten voor productieorders, gereedmeldingen en materiaaluitgiften. De SkyPlanner REST API (API-referentie) gebruikt JWT, dus de middleware beheert beide sets toegangsgegevens.

Events: er is geen standaardwebhook

De documentatie van Oracle beschrijft geen ingebouwde uitgaande webhook. De werkbare aanpak is een SuiteScript User Event-script op Work Order (afterSubmit) dat een uitgaande aanroep in de wachtrij zet via N/task of een Map/Reduce-script. De aanroep zelf verloopt via N/https. Voer nooit een synchrone uitgaande aanroep uit in afterSubmit: de aanroep maakt deel uit van de opslagactie van de gebruiker, waardoor een traag endpoint het opslaan vertraagt of laat mislukken.

User Events dekken niet alle manieren waarop gegevens kunnen wijzigen. Massa-updates en CSV-imports kunnen ze omzeilen. Combineer het eventscript daarom met een periodieke SuiteQL-controle op lastmodifieddate om niets te missen. In de andere richting sturen de eigen webhooks van SkyPlanner het terugschrijven aan, zodat NetSuite nieuwe datums ontvangt zodra de planning verandert.

Gegevensmapping: van NetSuite naar SkyPlanner

NetSuite-record (REST-id)SkyPlanner-objectRichtingFrequentie
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Product / materiaalNetSuite → SkyPlannerEerst eenmalig laden, daarna dagelijks of bij wijzigingen
BOM Revision (bomRevision), BOM-componentenProductstructuur met meerdere niveaus, materiaalbehoefteNetSuite → SkyPlannerBij wijzigingen
Manufacturing Routing (manufacturingRouting, sublijsten routingStep, routingComponent)Processtappen: volgorde, werkcentrum, insteltijd, bewerkingstijdNetSuite → SkyPlannerBij wijzigingen
Manufacturing Work Center (Group gemarkeerd als werkcentrum): Machine Resources, Labor Resources, Work CalendarWerkcentra, werkcentrumgroepen, dienstenNetSuite → SkyPlanner, daarna beheerd in SkyPlannerEenmalig laden bij de start
Work Order (workOrder): artikel, hoeveelheid, locatie, Production Start/End Date, status; gekoppelde Sales Order voor de leverdatumOrder / taak met leverdatum en prioriteitNetSuite → SkyPlannerVrijwel realtime via User Event, aangevuld met periodieke controle
Manufacturing Operation Task (manufacturingOperationTask)Ingeplande bewerkingNetSuite → SkyPlanner, datums SkyPlanner → NetSuiteVrijwel realtime
Aanwezige voorraad per locatie (SuiteQL), Item Receipts (itemReceipt)Voorraadstanden voor planning op basis van materiaalbeschikbaarheidNetSuite → SkyPlannerElke 15 tot 60 minuten of bij ontvangst
Regels van Purchase Order (purchaseOrder): artikel, hoeveelheid, verwachte ontvangstdatum, statusInkooporders / inkomend materiaal (verwachte leverdatum). Geldt als beschikbaar op de leverdatum; de voorraad wordt bijgewerkt zodra de inkooporder de status Delivered heeftNetSuite → SkyPlannerElke 15 tot 60 minuten of bij wijzigingen
Geplande start en einde per bewerkingPATCH manufacturingOperationTask/{id} (startDate, endDate) en PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteBij wijzigingen in het productieschema, via een SkyPlanner-webhook
Mobile Confirmations, tijdregistraties, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: bereik startOperation/endOperation, gereedgemelde hoeveelheid, arbeidstijd op de operation-regels, SkyPlanner-tijdregistratie-ID als externe IDSkyPlanner → NetSuitePer gereedmelding of gebundeld
MateriaalverbruikPOST workOrder/{id}/!transform/workOrderIssue, of isBackflush bij de gereedmeldingSkyPlanner → NetSuitePer gereedmelding
Voltooide order (accounts zonder WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteBij voltooiing van de order
Order afgeslotenWork Order Close (workOrderClose)In NetSuite, door de financiële afdelingStandaard niet geautomatiseerd

Integratiepatronen

1. Stamgegevens voor het eerst laden. Lees met SuiteQL eerst de werkcentra in en daarna de artikelen, stuklijstrevisies en bewerkingsvolgorden. Bewerkingsvolgorden verwijzen naar werkcentra, dus de volgorde is belangrijk. Exporteer tijdens de proefperiode dezelfde gegevens naar CSV en importeer ze in SkyPlanner. Zo wordt het productieschema gevalideerd voordat er code is geschreven.

2. Orders synchroniseren. Haal productieorders met de status Released en In Process op. Bepaal vroeg in het traject of orders met de status Planned ook worden meegenomen. Behandel die in dat geval als voorlopige vraag. Synchroniseer openstaande inkooporders in dezelfde cyclus. Zo wordt voor elke taak niet alleen de voorraad gecontroleerd, maar ook het materiaal dat nog binnenkomt.

3. Het productieschema terugschrijven. Wanneer het productieschema verandert, stuurt een SkyPlanner-webhook de nieuwe bewerkingsdatums naar de middleware. De middleware verstuurt voor elke gewijzigde bewerking PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (Recordreferentie van Oracle) met startDate en endDate. Een extra PATCH op de kop van workOrder stelt Production Start en End Date in. Schrijf alleen datums terug en, als u dat gebruikt, een aangepast veld voor de volgorde. Schrijf nooit hoeveelheden of BOM-gegevens terug. Om veel bewerkingen in één transactie bij te werken, slaat een kleine RESTlet de volledige bewerkingslijst in één aanroep op. De record API blijft de standaard.

4. Gereedmeldingen vanaf de productievloer. Operators registreren hun werk in SkyPlanner Mobile Confirmations. De middleware boekt elke gereedmelding via de transforms voor Work Order met POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion. Daarbij worden startOperation, endOperation, de gereedgemelde hoeveelheid en de geregistreerde tijd op de bewerkingsregels meegestuurd. Productieorders zonder WIP worden in plaats daarvan afgesloten met !transform/assemblyBuild. Voor Work Order Completion via REST is de functie Manufacturing Work In Process vereist. Voorraad- en kostenboekingen blijven in NetSuite.

5. Idempotentie en herhaalde pogingen. Elke gereedmelding krijgt de SkyPlanner-timelog-ID als externe ID in NetSuite. Externe ID’s zijn uniek per recordtype. Een opnieuw ontvangen webhook wordt daardoor als duplicaat geweigerd, in plaats van aantallen en kosten dubbel te boeken. Schrijfacties verlopen via een wachtrij. Een mislukte aanroep (limiet voor gelijktijdige aanroepen, vergrendeld record, verlopen certificaat) wordt opnieuw geprobeerd en gelogd. Alles wat daarna nog mislukt, is zichtbaar voor het SkyPlanner-team dat de integratie ondersteunt.

6. Afspraken over welk systeem leidend is. NetSuite bepaalt wat er wordt gemaakt: artikel, aantal, stuklijst, bewerkingsvolgorde en locatie. SkyPlanner bepaalt wanneer en waar: volgorde van bewerkingen, werkcentrum, start en einde. Datums die in NetSuite worden aangepast, worden bij de volgende terugschrijfactie overschreven. Vergrendel Production Start/End Date daarom met een formulieraanpassing of workflow.

Gebruikelijke projectstappen

De implementatie is normaal gesproken binnen enkele weken na de start van de onboarding afgerond, ook bij grote bedrijven. Een NetSuite-project omvat:

  • Testen met uw eigen gegevens: exporteer werkcentra, bewerkingsvolgorden en openstaande productieorders vanuit opgeslagen zoekopdrachten naar CSV en importeer ze tijdens de proefperiode van 30 dagen in SkyPlanner.
  • Stamgegevens mappen: koppel NetSuite-records aan SkyPlanner-objecten en leg aangepaste velden, eenheden en het WIP- of niet-WIP-model per artikel vast.
  • Eerste gegevensimport: laad artikelen, stuklijstrevisies, bewerkingsvolgorden en werkcentra via SuiteQL. Stel daarna ploegen, operators en alternatieve werkcentra in SkyPlanner in.
  • Productie- en inkooporders synchroniseren: synchroniseer productieorders met de status Released en In Process en openstaande inkooporders met verwachte ontvangstdatums, via User Event-scripts en periodieke controle op verschillen.
  • Productieschema terugschrijven: schrijf geplande bewerkingsdatums naar productieorders en bewerkingstaken, met OAuth 2.0 M2M ingesteld in de sandbox- en productieomgeving.
  • Terugmeldingen van de productievloer: boek Work Order Completions, materiaaluitgiften of Assembly Builds op basis van Mobile Confirmations en tijdregistraties.
  • Parallel testen met de huidige planning: laat het SkyPlanner-productieschema naast het huidige vrijgaveproces draaien en vergelijk de resultaten.
  • Ingebruikname: stap voor de planning over op SkyPlanner en vergrendel de datumvelden in NetSuite.

Correcte bewerkingsvolgorden en één dochteronderneming houden de scope beperkt. Meerdere dochterondernemingen, WIP-backflush en aangepaste formulieren vragen extra werk bij de gegevensmapping.

Valkuilen bij NetSuite

  • Productieorders zonder bewerkingsvolgorde. Een productieorder zonder Manufacturing Routing heeft geen bewerkingen om in te plannen. Oracle zegt hetzelfde over de eigen tool voor capaciteitsplanning: “Work orders not associated with a NetSuite routing should not be scheduled.” (Productieorders zonder gekoppelde NetSuite-bewerkingsvolgorde mogen niet worden ingepland.) Spoor deze orders vóór de ingebruikname op met SuiteQL.
  • Werkcentra bevatten weinig planningsgegevens. Een werkcentrum in NetSuite is een Group met twee aantallen, Machine Resources en Labor Resources (beide standaard 0), en één Work Calendar, meestal “Default Work Calendar”. Laad de werkcentra eenmalig en beheer daarna de afzonderlijke werkcentra, diensten per persoon, gereedschappen, omsteltijdmatrix en alternatieve werkcentra in SkyPlanner.
  • Kwaliteit van Setup Time en Run Rate. NetSuite gebruikt deze velden bij het plannen zonder capaciteitsbeperkingen. Doordat het daarbij geen rekening houdt met de capaciteit, blijven onjuiste waarden onopgemerkt. Capaciteitsplanning brengt ze op de eerste dag aan het licht.
  • WIP of niet-WIP. Met Manufacturing WIP wordt de productie geboekt via Work Order Issue, Work Order Completion en Work Order Close. Zonder WIP wordt een Assembly Build gebruikt. De integratie boekt gereedmeldingen voor WIP-artikelen en Assembly Builds voor de overige artikelen. Het model per artikel maakt daarom deel uit van de gegevensmapping.
  • Advanced Manufacturing in hetzelfde account. Als het account ook de Advanced Manufacturing SuiteApp gebruikt, moeten de Manufacturing Work Bench-records exact overeenkomen met de bewerkingsvolgorde: volgnummer en naam van de bewerking en werkcentrum. Bepaal welk systeem de bewerkingsdatums vastlegt. Twee planningssystemen voor dezelfde productieorders leveren twee concurrerende plannen op.
  • Limieten voor gelijktijdige aanroepen. Webservices en RESTlet-aanroepen delen één limiet voor gelijktijdige aanroepen per account. Deze wordt bepaald door het serviceniveau, plus 10 per SuiteCloud Plus-licentie. Wie afzonderlijke records parallel opvraagt, bereikt die limiet snel. Gebruik SuiteQL met paginering voor het uitlezen en een wachtrij voor schrijfacties.
  • Een sandboxverversing wist de M2M-instellingen. Koppelingen voor OAuth 2.0 Client Credentials worden bij een sandboxverversing gewist en niet tussen accounts gekopieerd. Een verlopen of ingetrokken certificaat stopt de synchronisatie totdat er een nieuwe koppeling is aangemaakt. Stel waarschuwingen in voor authenticatiefouten.

De NetSuite-integratie: wie verzorgt de configuratie en ondersteuning?

Het werk omvat de mapping naar uw records, bewerkingsvolgorden en werkcentra, plus de randvoorwaarden die NetSuite niet als planningsgegevens vastlegt: omsteltijdmatrix, gereedschappen, aantallen operators en alternatieve resources. SkyPlanner-webhooks sturen wijzigingen in het productieschema direct terug, ook wijzigingen die Autopilot maakt.

  1. Het SkyPlanner-team configureert de integratie tijdens de onboarding en biedt na de ingebruikname ondersteuning. Elke fabriek gebruikt NetSuite anders: met of zonder WIP, met aangepaste formulieren, scripts en eigen afspraken over bewerkingsvolgorden. Het team brengt uw records in kaart en koppelt de SkyPlanner REST API en webhooks aan NetSuite REST, SuiteQL en RESTlets. De ondersteuning omvat het User Event-script en de middleware en houdt rekening met wijzigingen in uw NetSuite-inrichting.
  2. Uw NetSuite-partner kan meewerken. Partners kennen uw aangepaste formulieren, scripts en rollen. Ze werken met de SkyPlanner REST API, die orders, producten, materialen, inkooporders, processtappen en tijdregistraties ontsluit. De API heeft Swagger/OpenAPI-documentatie en JWT-authenticatie. Openbare documentatie: SkyPlanner-documentatie.
  3. Uw eigen ontwikkelaars bouwen erop voort. Een gebruikelijke opzet is een User Event-script binnen NetSuite en een kleine middleware-service daarbuiten. Een API-sleutel is voldoende om te beginnen (integratiehandleiding). Het SkyPlanner-team helpt waar nodig.

Valideer het productieschema eerst tijdens de gratis proefperiode van 30 dagen, met CSV-gegevens en maximaal 20 werkcentra. Een creditcard is niet nodig. De integratie vertrekt dan vanuit een productieschema dat al bij uw fabriek past.

Na het koppelen plant de Arcturus-engine op basis van actuele productieorders uit NetSuite en controleert de engine de materiaalbeschikbaarheid aan de hand van de voorraad en het materiaal dat via inkooporders binnenkomt. Operators registreren hun werk met Mobile Confirmations, Production Timer en Quick Log Mode. Zo geeft NetSuite de situatie op de productievloer weer zonder handmatige invoer. SkyPlanner is beschikbaar vanaf 199 € per maand, inclusief 5 werkcentra, met maandelijkse facturering en op elk moment opzegbaar. De integratie wordt vooraf samen met uw abonnement geoffreerd, op basis van uw proces en behoeften. Zo kent u de totale kosten voordat u begint. Neem contact op met sales voor de scopebepaling van uw NetSuite-integratie, of bekijk de functies en klantverhalen.

Ervaringen van fabrikanten met SkyPlanner

Kalle Kalliomäki, supplychainspecialist bij UTU, op de productievloer voor verdeelinrichtingen in Ulvila

2 hbesparing per week

“Met SkyPlanner zijn we voor onze productieplanning overgestapt van Excel-spreadsheets naar realtime optimalisatie van de productie.”

Kalle Kalliomäki, supplychainspecialist
UTU · Elektrische verdeelkasten en schakelapparatuur

De productieplanning bespaart elke week 2 uur werktijd, en een nieuwe takenlijst is binnen enkele seconden beschikbaar aan de productielijn.

Lees het klantverhaal van UTU

Operators in cleanroomkleding bij een flessenvullijn in de farmaceutische fabriek van Laboratory & Allied in Nairobi

+90%productie-efficiëntie

“De efficiëntie in de productie is met 90% gestegen.”

Abdul Rucyinga, hoofd IT
Laboratory & Allied · Farmaceutische productie

De productie-efficiëntie is met 90% gestegen. Een geoptimaliseerde planning voor drie maanden voor alle werkcentra is in minder dan 30 minuten klaar.

Lees het klantverhaal van Laboratory & Allied

Luchtfoto van de fabriek van Piristeel voor dakveiligheidsproducten in Kauhava

99,2%leverbetrouwbaarheid

“Dankzij SkyPlanner zien we waar de knelpunten zitten en kunnen we de productie duidelijker aansturen.”

Toni Tuori, productiemanager
Piristeel · Dakveiligheid en hemelwaterafvoersystemen

De leverbetrouwbaarheid bereikte dit jaar 99,2%, en het inplannen bespaart tot vier uur werktijd per dag.

Lees het klantverhaal van Piristeel

Anu Järvinen, productiemanager bij Fredman Operations, naast een robotpalletiseercel in Rauma

6 maandenvooruit inzicht in vrije capaciteit voor verkoop

“SkyPlanner vormt de betrouwbare basis voor onze volledige productieplanning.”

Anu Järvinen, productiemanager
Fredman Operations · Voedselveilig verpakkingspapier

Verkoop ziet de vrije capaciteit zes maanden vooruit. Verzoeken om de planning aan te passen die eerder een uur of langer kostten, worden nu binnen enkele seconden beantwoord.

Lees het klantverhaal van Fredman Operations

Veelgestelde vragen

Hoe wordt SkyPlanner APS gekoppeld aan NetSuite?

In beide richtingen, via de NetSuite REST record API, SuiteQL en waar nodig RESTlets. Bewerkingsdatums worden geschreven met PATCH op manufacturingOperationTask. Arbeid en productieaantallen worden geboekt via de transform workOrderCompletion of assemblyBuild. Het SkyPlanner-team configureert de integratie tijdens de onboarding en ondersteunt deze na de ingebruikname. Uw NetSuite-partner of eigen ontwikkelaars kunnen verder bouwen op de gedocumenteerde REST API.

Hebben we de Advanced Manufacturing SuiteApp nodig om SkyPlanner te gebruiken?

Nee. SkyPlanner verzorgt zelf de capaciteitsplanning op basis van standaard Work Orders, Manufacturing Routings en Work Centers. Als het account ook Advanced Manufacturing gebruikt, wordt bij de scopebepaling vastgelegd welk systeem de datums van de bewerkingen bepaalt.

Hoe worden dubbele boekingen voorkomen als een gebeurtenis twee keer wordt verzonden?

Elke Work Order Completion krijgt de SkyPlanner-timelog-ID als externe ID. NetSuite houdt externe ID’s uniek per recordtype. Daardoor wordt een opnieuw verzonden gebeurtenis geweigerd, in plaats van de hoeveelheid en kosten opnieuw te boeken. Mislukte schrijfacties worden in een wachtrij geplaatst, opnieuw geprobeerd en gelogd.

Kunnen we TBA of SOAP gebruiken in plaats van REST en OAuth 2.0?

Ga voor nieuwe integraties uit van REST met OAuth 2.0. Oracle staat vanaf 2027.1 geen nieuwe TBA- en SOAP-integraties meer toe en schakelt in 2028.2 alle SOAP-endpoints uit. Een SkyPlanner-integratie op basis van REST en OAuth 2.0 blijft na beide momenten werken.

Hoe krijgt SkyPlanner bericht over nieuwe productieorders in NetSuite?

NetSuite heeft geen gedocumenteerde standaardwebhook voor uitgaande berichten. Een User Event-script op Work Order plaatst bij het opslaan een melding in de wachtrij. Een periodieke SuiteQL-query haalt wijzigingen op die het script mist, zoals CSV-imports en massale updates.

Kunnen we SkyPlanner met NetSuite-gegevens testen voordat we de integratie bouwen?

Ja. Exporteer werkcentra, bewerkingsvolgordes en openstaande productieorders als CSV en importeer ze tijdens de proefperiode van 30 dagen in SkyPlanner. Vergelijk vervolgens het resultaat van de capaciteitsplanning met uw huidige planning. Start de gratis proefperiode of boek een demo.

Hoelang duurt een integratieproject met NetSuite?

De implementatie is doorgaans binnen enkele weken na de start van het onboardingtraject afgerond, ook bij grote bedrijven. Tijdens de proefperiode werkt het productieschema al op basis van CSV-gegevens. UTU gebruikt SkyPlanner nu al met NetSuite (klantverhaal van UTU).