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 productiebewerkingen geschreven.
- Geregistreerde uren en geproduceerde aantallen worden teruggeboekt als Work Order Completions of Assembly Builds.
- SkyPlanner-webhooks geven wijzigingen in het productieschema direct door.
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-optie | Wat het is | Rol 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 productieorders | Schrijven: datums van bewerkingstaken en productieorders (PATCH), gereedmeldingen, materiaaluitgiften en assemblageboekingen (transform) |
| SuiteQL via REST | POST /services/rest/query/v1/suiteql met Prefer: transient, maximaal 100.000 resultaten per query, paginering met limit/offset | In bulk uitlezen: artikelen, bewerkingsvolgordes, werkcentra, openstaande productieorders, voorraad |
| SuiteScript 2.1 RESTlets | Aangepaste get/post/put/delete-endpoints | Functies die REST niet dekt, gecombineerde payloads zoals een productieorder met alle bijbehorende bewerkingen |
| SuiteScript User Event / Map-Reduce | Scripts die aan de serverzijde binnen NetSuite draaien | Uitgaande wijzigingsmeldingen |
| CSV Import Assistant | Opgeslagen importtoewijzingen | Eenmalig laden; niet voor doorlopende synchronisatie |
| SuiteTalk SOAP | Verouderd, alleen TBA | Bouw 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-object | Richting | Frequentie |
|---|---|---|---|
Assembly Item (assemblyItem), Inventory Item (inventoryItem) | Product / materiaal | NetSuite → SkyPlanner | Eerst eenmalig laden, daarna dagelijks of bij wijzigingen |
BOM Revision (bomRevision), BOM-componenten | Productstructuur met meerdere niveaus, materiaalbehoefte | NetSuite → SkyPlanner | Bij wijzigingen |
Manufacturing Routing (manufacturingRouting, sublijsten routingStep, routingComponent) | Processtappen: volgorde, werkcentrum, insteltijd, bewerkingstijd | NetSuite → SkyPlanner | Bij wijzigingen |
| Manufacturing Work Center (Group gemarkeerd als werkcentrum): Machine Resources, Labor Resources, Work Calendar | Werkcentra, werkcentrumgroepen, diensten | NetSuite → SkyPlanner, daarna beheerd in SkyPlanner | Eenmalig laden bij de start |
Work Order (workOrder): artikel, hoeveelheid, locatie, Production Start/End Date, status; gekoppelde Sales Order voor de leverdatum | Order / taak met leverdatum en prioriteit | NetSuite → SkyPlanner | Vrijwel realtime via User Event, aangevuld met periodieke controle |
Manufacturing Operation Task (manufacturingOperationTask) | Ingeplande bewerking | NetSuite → SkyPlanner, datums SkyPlanner → NetSuite | Vrijwel realtime |
Aanwezige voorraad per locatie (SuiteQL), Item Receipts (itemReceipt) | Voorraadstanden voor planning op basis van materiaalbeschikbaarheid | NetSuite → SkyPlanner | Elke 15 tot 60 minuten of bij ontvangst |
Regels van Purchase Order (purchaseOrder): artikel, hoeveelheid, verwachte ontvangstdatum, status | Inkooporders / inkomend materiaal (verwachte leverdatum). Geldt als beschikbaar op de leverdatum; de voorraad wordt bijgewerkt zodra de inkooporder de status Delivered heeft | NetSuite → SkyPlanner | Elke 15 tot 60 minuten of bij wijzigingen |
| Geplande start en einde per bewerking | PATCH manufacturingOperationTask/{id} (startDate, endDate) en PATCH workOrder/{id} (Production Start/End Date) | SkyPlanner → NetSuite | Bij wijzigingen in het productieschema, via een SkyPlanner-webhook |
| Mobile Confirmations, tijdregistraties, Production Timer | POST workOrder/{id}/!transform/workOrderCompletion: bereik startOperation/endOperation, gereedgemelde hoeveelheid, arbeidstijd op de operation-regels, SkyPlanner-tijdregistratie-ID als externe ID | SkyPlanner → NetSuite | Per gereedmelding of gebundeld |
| Materiaalverbruik | POST workOrder/{id}/!transform/workOrderIssue, of isBackflush bij de gereedmelding | SkyPlanner → NetSuite | Per gereedmelding |
| Voltooide order (accounts zonder WIP) | POST workOrder/{id}/!transform/assemblyBuild | SkyPlanner → NetSuite | Bij voltooiing van de order |
| Order afgesloten | Work Order Close (workOrderClose) | In NetSuite, door de financiële afdeling | Standaard 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.
- 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.
- 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.
- 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
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.
+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.
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.
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.
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).