Si connette con sistemi ERP e MES come

Integrazioni / ERP / Oracle NetSuite

Guida all’integrazione di NetSuite con SkyPlanner APS per la schedulazione della produzione

Questa guida spiega a partner NetSuite, amministratori e responsabili degli acquisti tecnici come SkyPlanner APS si collega a Oracle NetSuite per la schedulazione della produzione nel rispetto della capacità reale di macchine e personale. L’integrazione tra SkyPlanner e NetSuite è bidirezionale e utilizza i servizi web REST e SuiteQL:

  • Vengono importati ordini di produzione, cicli di lavorazione, centri di lavoro, articoli e ordini di acquisto.
  • Gli orari di inizio e fine pianificati vengono scritti nelle attività operative di produzione.
  • Le ore registrate e le quantità prodotte vengono inviate a NetSuite come Work Order Completions o Assembly Builds.
  • I webhook di SkyPlanner inviano le modifiche alla schedulazione non appena avvengono.
Diagramma di Gantt di SkyPlanner APS con le operazioni schedulate sui centri di lavoro e un elenco degli ordini in basso.

NetSuite gestisce articoli, distinte base, cicli di lavorazione, ordini di produzione, scorte e calcolo dei costi. SkyPlanner elabora la schedulazione della produzione con il motore Arcturus, rispettando la capacità reale di macchine e personale. Il team SkyPlanner configura l’integrazione per il tuo account durante l’avviamento e fornisce assistenza dopo la messa in produzione. L’integrazione opera sui record standard di NetSuite e non dipende da Advanced Manufacturing SuiteApp.

SkyPlanner è già operativo e integrato con NetSuite presso UTU, produttore di quadri elettrici e apparecchiature di manovra a Ulvila, in Finlandia. UTU è passata in produzione a settembre 2025, con SkyPlanner integrato con Oracle NetSuite e con il proprio sistema paghe. Per valutare i vantaggi economici, parti dalla pagina sulla schedulazione della produzione con NetSuite e da NetSuite offre la schedulazione della produzione nel rispetto della capacità disponibile?.

La scelta che determina il progetto: REST e OAuth 2.0

Oracle ha indicato la direzione. Dalla versione 2026.1, le nuove integrazioni dovrebbero essere sviluppate con i servizi web SuiteTalk REST e OAuth 2.0. Dalla versione 2027.1, non sono più ammesse nuove integrazioni basate su SOAP o Token-Based Authentication (TBA). Gli endpoint SOAP vengono disabilitati nella versione 2028.2. Qualsiasi integrazione per la schedulazione avviata oggi va realizzata su REST.

Opzione NetSuiteDescrizioneRuolo nell’integrazione con un APS
API REST SuiteTalk per i record/services/rest/record/v1/<recordType>, con versioni allineate alle release di NetSuite; !transform per completamenti, prelievi e assemblaggi degli ordini di produzioneScrittura: date delle operazioni e degli ordini di produzione (PATCH), completamenti, prelievi e assemblaggi (transform)
SuiteQL tramite RESTPOST /services/rest/query/v1/suiteql con Prefer: transient, fino a 100.000 risultati per query, paginazione con limit/offsetLetture massive: articoli, cicli di lavorazione, centri di lavoro, ordini di produzione aperti, giacenze
RESTlet SuiteScript 2.1Endpoint get/post/put/delete personalizzatiFunzionalità non coperte da REST, payload combinati come un ordine di produzione con tutte le relative operazioni
SuiteScript User Event / Map-ReduceScript lato server all’interno di NetSuiteNotifiche delle modifiche verso sistemi esterni
CSV Import AssistantMappature di importazione salvateCaricamenti una tantum; non per la sincronizzazione continuativa
SuiteTalk SOAPTecnologia legacy, solo TBADa non usare per nuove integrazioni

Autenticazione

Per uno schedulatore server-to-server, usa OAuth 2.0 Client Credentials (machine-to-machine). Il percorso di amministrazione è Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Carica un certificato pubblico e associalo a un’entità, a un ruolo e al record di integrazione. Ogni record di integrazione può contenere al massimo cinque certificati attivi.

Crea un ruolo dedicato all’integrazione: accesso in lettura ad articoli, revisioni delle distinte base, cicli di lavorazione e centri di lavoro; accesso in modifica a ordini di produzione, completamenti e prelievi. L’API REST di SkyPlanner (riferimento API) usa JWT, quindi il middleware conserva entrambe le credenziali.

Eventi: non esiste un webhook standard

La documentazione Oracle non descrive alcun webhook nativo in uscita. La soluzione consiste in uno script SuiteScript User Event su Work Order (afterSubmit) che accoda una chiamata in uscita tramite N/task o uno script Map/Reduce, usando N/https per inviarla. Non effettuare mai chiamate sincrone in afterSubmit: la chiamata viene eseguita durante il salvataggio dell’utente, quindi un endpoint lento rallenta il salvataggio o lo fa fallire.

Gli User Event non coprono tutte le modalità di modifica. Gli aggiornamenti massivi e le importazioni CSV possono non attivarli. Affianca allo script di evento un polling SuiteQL periodico di riconciliazione su lastmodifieddate, per non perdere nessuna modifica. Nella direzione opposta, i webhook di SkyPlanner attivano la scrittura dei dati in NetSuite, che riceve così le nuove date non appena il piano cambia.

Mappatura dei dati da NetSuite a SkyPlanner

Record NetSuite (ID REST)Oggetto SkyPlannerDirezioneFrequenza
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Prodotto / materialeNetSuite → SkyPlannerCaricamento iniziale, poi ogni giorno o a ogni modifica
BOM Revision (bomRevision), componenti della BOMStruttura prodotto multilivello, fabbisogni di materialiNetSuite → SkyPlannerA ogni modifica
Manufacturing Routing (manufacturingRouting, sottoelenchi routingStep, routingComponent)Fasi di lavorazione: sequenza, centro di lavoro, tempo di attrezzaggio, tempo di lavorazioneNetSuite → SkyPlannerA ogni modifica
Manufacturing Work Center (Group contrassegnato come centro di lavoro): Machine Resources, Labor Resources, Work CalendarCentri di lavoro, gruppi di centri di lavoro, turniNetSuite → SkyPlanner, poi gestione in SkyPlannerCaricamento iniziale
Work Order (workOrder): articolo, quantità, ubicazione, Production Start/End Date, stato; Sales Order collegato per la data di consegnaOrdine / operazione con data di consegna e prioritàNetSuite → SkyPlannerQuasi in tempo reale tramite User Event, più polling di riconciliazione
Manufacturing Operation Task (manufacturingOperationTask)Operazione schedulataNetSuite → SkyPlanner, date SkyPlanner → NetSuiteQuasi in tempo reale
Giacenze per ubicazione (SuiteQL), Item Receipts (itemReceipt)Giacenze per la schedulazione in base alla disponibilità dei materialiNetSuite → SkyPlannerOgni 15–60 minuti o al ricevimento
Righe Purchase Order (purchaseOrder): articolo, quantità, data di ricevimento prevista, statoOrdini di acquisto / materiale in arrivo (data di consegna prevista). Il materiale è considerato disponibile alla data di consegna; le giacenze si aggiornano quando l’ordine di acquisto viene contrassegnato come Delivered.NetSuite → SkyPlannerOgni 15–60 minuti o a ogni modifica
Inizio e fine pianificati per ogni operazionePATCH manufacturingOperationTask/{id} (startDate, endDate) e PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteA ogni modifica del programma di produzione, tramite webhook SkyPlanner
Mobile Confirmations, registrazioni dei tempi, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: intervallo startOperation/endOperation, quantità completata, tempo di manodopera sulle righe operation, ID della registrazione dei tempi di SkyPlanner come ID esternoSkyPlanner → NetSuiteA ogni conferma o in batch
Consumo di materialiPOST workOrder/{id}/!transform/workOrderIssue, oppure isBackflush sul completamentoSkyPlanner → NetSuiteA ogni conferma
Ordine completato (account senza WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteAl completamento dell’ordine
Ordine chiusoWork Order Close (workOrderClose)In NetSuite, a cura dell’amministrazioneNon automatizzato per impostazione predefinita

Schemi di integrazione

1. Caricamento iniziale delle anagrafiche. Leggi prima i centri di lavoro, poi articoli, revisioni delle distinte base e cicli di lavorazione tramite SuiteQL. I cicli fanno riferimento ai centri di lavoro, quindi l’ordine conta. Durante la prova, esporta gli stessi dati in CSV e importali in SkyPlanner. La schedulazione viene convalidata prima ancora di scrivere codice.

2. Sincronizzazione degli ordini. Importa gli ordini di produzione negli stati Released e In Process. Decidi fin dall’inizio se includere anche quelli in stato Planned. Se li includi, trattali come domanda provvisoria. Sincronizza nello stesso ciclo gli ordini di acquisto aperti, in modo che la schedulazione verifichi ogni operazione rispetto alle scorte e ai materiali in arrivo, non soltanto alle scorte.

3. Scrittura del programma di produzione in NetSuite. Quando il programma cambia, un webhook di SkyPlanner invia al middleware le nuove date delle operazioni. Il middleware invia PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (riferimento Oracle per il record) con startDate e endDate per ogni operazione modificata. Un’ulteriore PATCH sulla testata workOrder imposta i campi Production Start e End Date. Scrivi solo le date e, se lo usi, un campo personalizzato per la sequenza. Non riscrivere mai quantità o dati della BOM. Per aggiornare molte operazioni in un’unica transazione, un piccolo RESTlet salva l’intero elenco di operazioni con una sola chiamata. L’API per i record resta la scelta predefinita.

4. Conferme dal reparto produttivo. Gli operatori registrano il lavoro in SkyPlanner Mobile Confirmations. Il middleware invia ogni conferma tramite le trasformazioni di Work Order con POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion, includendo startOperation, endOperation, la quantità completata e il tempo registrato sulle righe delle operazioni. Gli ordini di produzione senza WIP vengono invece chiusi con !transform/assemblyBuild. Work Order Completion tramite REST richiede la funzionalità Manufacturing Work In Process. Le registrazioni di magazzino e dei costi restano in NetSuite.

5. Idempotenza e nuovi tentativi. Ogni completamento usa l’ID della registrazione ore di SkyPlanner come ID esterno in NetSuite. Gli ID esterni sono univoci per tipo di record: un webhook ripetuto viene quindi rifiutato come duplicato, invece di registrare due volte quantità e costi. Le scritture passano attraverso una coda. Una chiamata non riuscita (limite di concorrenza, record bloccato, certificato scaduto) viene ritentata e registrata nel log. Gli errori che persistono sono visibili al team SkyPlanner che fornisce assistenza sull’integrazione.

6. Responsabilità sui dati. NetSuite stabilisce cosa viene prodotto: articolo, quantità, distinta base, ciclo di lavorazione e ubicazione. SkyPlanner stabilisce quando e dove: sequenza delle operazioni, centro di lavoro, inizio e fine. Le date modificate in NetSuite vengono sovrascritte al successivo invio dei dati, quindi blocca Production Start/End Date con una personalizzazione del modulo o un workflow.

Le fasi tipiche del progetto

L’implementazione viene normalmente completata entro poche settimane dall’inizio dell’avviamento, anche nelle grandi aziende. Un progetto NetSuite comprende:

  • Prova con i tuoi dati: esportazione in CSV di centri di lavoro, cicli di lavorazione e ordini di produzione aperti dalle ricerche salvate, con importazione in SkyPlanner durante la prova di 30 giorni.
  • Mappatura delle anagrafiche: corrispondenze tra record NetSuite e oggetti SkyPlanner, campi personalizzati, unità e modello WIP o non-WIP per ciascun articolo.
  • Caricamento iniziale: articoli, revisioni delle distinte base, cicli di lavorazione e centri di lavoro tramite SuiteQL, seguiti dalla configurazione in SkyPlanner di turni, operatori e centri di lavoro alternativi.
  • Sincronizzazione degli ordini di produzione e di acquisto: ordini di produzione in stato Released e In Process e ordini di acquisto aperti con le date di ricevimento previste, tramite script User Event e polling di riconciliazione.
  • Invio della schedulazione a NetSuite: scrittura delle date pianificate delle operazioni negli ordini di produzione e nelle attività operative, con OAuth 2.0 M2M configurato in sandbox e in produzione.
  • Consuntivazione dal reparto produttivo: Work Order Completions, prelievi o Assembly Builds generati da Mobile Confirmations e dalle registrazioni ore.
  • Test in parallelo con il piano attuale: esecuzione della schedulazione SkyPlanner affiancata all’attuale processo di rilascio, per confrontare i risultati.
  • Messa in produzione: passaggio della pianificazione a SkyPlanner e blocco dei campi data in NetSuite.

Con cicli di lavorazione ben definiti e una sola società controllata, il progetto resta circoscritto. Più società controllate, scarico retroattivo WIP e moduli personalizzati richiedono ulteriore lavoro di mappatura.

Le criticità di NetSuite

  • Ordini di produzione senza cicli di lavorazione. Un ordine di produzione privo di Manufacturing Routing non ha operazioni da schedulare. Oracle afferma lo stesso a proposito del proprio strumento di schedulazione della produzione che tiene conto della capacità disponibile: “Work orders not associated with a NetSuite routing should not be scheduled.” (Gli ordini di produzione non associati a un ciclo di lavorazione NetSuite non devono essere schedulati.) Individuali con SuiteQL prima della messa in produzione.
  • I centri di lavoro hanno pochi dettagli. Un centro di lavoro NetSuite è un Group con due conteggi, Machine Resources e Labor Resources (entrambi impostati a 0 per default), e un Work Calendar, di solito “Default Work Calendar”. Carica i centri di lavoro una volta sola, poi gestisci in SkyPlanner i singoli centri di lavoro, i turni per persona, gli utensili, la matrice dei tempi di attrezzaggio e i centri di lavoro alternativi.
  • Qualità dei dati in Setup Time e Run Rate. La schedulazione a capacità infinita di NetSuite usa questi campi, ma, non tenendo conto della capacità, lascia passare inosservati i valori errati. Una schedulazione della produzione che rispetta la capacità reale di macchine e personale li mette in evidenza fin dal primo giorno.
  • WIP o non-WIP. Con Manufacturing WIP, la produzione viene registrata tramite Work Order Issue, Work Order Completion e Work Order Close. Senza WIP, si usa un Assembly Build. L’integrazione registra i completamenti per gli articoli WIP e gli Assembly Builds per gli altri, quindi il modello di ciascun articolo rientra nella mappatura.
  • Advanced Manufacturing nello stesso account. Se l’account usa anche Advanced Manufacturing SuiteApp, i relativi record Manufacturing Work Bench devono corrispondere esattamente al ciclo di lavorazione: sequenza delle operazioni, nome dell’operazione e centro di lavoro. Decidi quale sistema stabilisce le date delle operazioni. Due schedulatori sugli stessi ordini di produzione significano due piani in conflitto.
  • Limiti di concorrenza. Le chiamate ai servizi web e ai RESTlet condividono un unico limite di concorrenza dell’account, determinato dal livello di servizio, con un incremento di 10 per ogni licenza SuiteCloud Plus. Il polling parallelo dei singoli record lo raggiunge rapidamente. Usa SuiteQL con paginazione per le letture e metti in coda le scritture.
  • L’aggiornamento della sandbox cancella la configurazione M2M. Le associazioni OAuth 2.0 Client Credentials vengono cancellate quando si aggiorna la sandbox e non vengono copiate tra account. Un certificato scaduto o revocato interrompe la sincronizzazione finché non viene creata una nuova associazione. Configura avvisi per gli errori di autenticazione.

Integrazione con NetSuite: chi la configura e chi fornisce assistenza

Il lavoro comprende la mappatura dei tuoi record, cicli di lavorazione e centri di lavoro, oltre ai vincoli che NetSuite non conserva come dati utilizzabili per la schedulazione: matrice dei tempi di attrezzaggio, utensili, numero di operatori e risorse alternative. I webhook di SkyPlanner inviano a NetSuite le modifiche alla schedulazione non appena avvengono, comprese quelle effettuate da Autopilot.

  1. Il team SkyPlanner configura l’integrazione durante l’avviamento e fornisce assistenza dopo la messa in produzione. Ogni stabilimento usa NetSuite in modo diverso: WIP o non-WIP, moduli personalizzati, script, convenzioni per i cicli di lavorazione. Il team mappa i tuoi record e collega l’API REST e i webhook di SkyPlanner a NetSuite REST, SuiteQL e RESTlets. L’assistenza copre lo script User Event e il middleware e segue le modifiche alla tua configurazione NetSuite.
  2. Il tuo partner NetSuite può partecipare. I partner conoscono i tuoi moduli personalizzati, script e ruoli. Lavorano con l’API REST di SkyPlanner, che copre ordini, prodotti, materiali, ordini di acquisto, fasi di lavorazione e registrazioni ore. L’API dispone di documentazione Swagger/OpenAPI e autenticazione JWT. Documentazione pubblica: documentazione SkyPlanner.
  3. I tuoi sviluppatori possono realizzare l’integrazione. Una suddivisione comune prevede lo script User Event all’interno di NetSuite e un piccolo servizio middleware all’esterno. Per iniziare basta una chiave API (tutorial di integrazione); il team SkyPlanner fornisce assistenza quando serve.

Convalida prima la schedulazione con la prova gratuita di 30 giorni, usando dati CSV con un massimo di 20 centri di lavoro, senza carta di credito. L’integrazione parte così da una schedulazione già adatta allo stabilimento.

Una volta collegato, il motore Arcturus elabora la schedulazione a partire dagli ordini di produzione aggiornati di NetSuite e verifica i materiali disponibili a magazzino e quelli in arrivo dagli ordini di acquisto. Gli operatori registrano il lavoro con Mobile Confirmations, Production Timer e Quick Log Mode, e NetSuite rispecchia la situazione del reparto produttivo senza inserimenti manuali. SkyPlanner parte da 199 € al mese con 5 centri di lavoro inclusi, fatturazione mensile e possibilità di disdire in qualsiasi momento. L’integrazione viene preventivata in anticipo in base ai tuoi processi e alle tue esigenze, insieme al piano, così conosci il costo totale prima di iniziare. Contatta il team commerciale per definire il perimetro della tua integrazione NetSuite, oppure scopri le funzionalità e i clienti.

Recensioni su SkyPlanner delle aziende manifatturiere

Kalle Kalliomäki, specialista della supply chain di UTU, nel reparto di produzione dei quadri elettrici a Ulvila

2 hrisparmiate ogni settimana

“Con SkyPlanner siamo passati dai fogli Excel per la pianificazione della produzione all’ottimizzazione della produzione in tempo reale.”

Kalle Kalliomäki, specialista della supply chain
UTU · Quadri elettrici e apparecchiature di manovra

La pianificazione della produzione fa risparmiare 2 ore di lavoro ogni settimana e una nuova coda di lavoro arriva in linea in pochi secondi.

Leggi la testimonianza di UTU

Operatori con tute da camera bianca presso una linea di riempimento flaconi nello stabilimento farmaceutico di Laboratory & Allied a Nairobi

+90%di efficienza produttiva

“L’efficienza in produzione è aumentata del 90%.”

Abdul Rucyinga, responsabile IT
Laboratory & Allied · Produzione farmaceutica

L’efficienza produttiva è aumentata del 90% e bastano meno di 30 minuti per creare un piano ottimizzato su tre mesi per tutti i centri di lavoro.

Leggi la testimonianza di Laboratory & Allied

Veduta aerea dello stabilimento Piristeel di Kauhava, dove si producono sistemi di sicurezza per tetti

99,2%di affidabilità delle consegne

“SkyPlanner ci ha dato la visibilità necessaria per individuare i colli di bottiglia e ha reso più chiara la gestione della produzione.”

Toni Tuori, responsabile di produzione
Piristeel · Sistemi di sicurezza per tetti e di raccolta delle acque piovane

Quest’anno l’affidabilità delle consegne ha raggiunto il 99,2% e la schedulazione fa risparmiare fino a quattro ore di lavoro al giorno.

Leggi la testimonianza di Piristeel

Anu Järvinen, responsabile di produzione di Fredman Operations, accanto a una cella robotizzata di pallettizzazione a Rauma

6 mesidi visibilità sulla capacità disponibile per l’ufficio commerciale

“SkyPlanner offre una base solida e affidabile per tutta la pianificazione della produzione.”

Anu Järvinen, responsabile di produzione
Fredman Operations · Carte per imballaggi alimentari

L’ufficio commerciale vede la capacità disponibile con sei mesi di anticipo. Le richieste di modifica del programma, che prima richiedevano un’ora o più, ricevono risposta in pochi secondi.

Leggi la testimonianza di Fredman Operations

Domande frequenti

Come si collega SkyPlanner APS a NetSuite?

In entrambe le direzioni, tramite l’API REST di NetSuite per i record, SuiteQL e, dove necessario, i RESTlet. Le date delle operazioni vengono scritte con PATCH su manufacturingOperationTask. La manodopera e le quantità prodotte vengono registrate tramite la trasformazione workOrderCompletion o assemblyBuild. Il team SkyPlanner configura l’integrazione durante l’avviamento e fornisce assistenza dopo la messa in produzione. Il tuo partner NetSuite o i tuoi sviluppatori possono estenderla usando l’API REST documentata.

Per usare SkyPlanner serve Advanced Manufacturing SuiteApp?

No. SkyPlanner esegue autonomamente la schedulazione della produzione nel rispetto della capacità reale di macchine e personale, a partire dai record standard Work Orders, Manufacturing Routings e Work Centers. Se nell’account è in uso anche Advanced Manufacturing, in fase di definizione del perimetro si stabilisce quale sistema imposta le date delle operazioni.

Come si evitano registrazioni duplicate se un evento viene inviato due volte?

Ogni Work Order Completion usa l’ID della registrazione dei tempi di SkyPlanner come ID esterno. NetSuite garantisce l’unicità degli ID esterni per ciascun tipo di record: un evento reinviato viene quindi rifiutato, senza registrare nuovamente quantità e costi. Le scritture non riuscite vengono messe in coda, ritentate e registrate nei log.

Possiamo usare TBA o SOAP al posto di REST e OAuth 2.0?

Per le nuove integrazioni, prevedete REST con OAuth 2.0. Dalla versione 2027.1 Oracle non consentirà nuove integrazioni TBA e SOAP, e nella versione 2028.2 disattiverà tutti gli endpoint SOAP. Un’integrazione SkyPlanner basata su REST e OAuth 2.0 continuerà a funzionare anche dopo entrambe le scadenze.

Come viene informato SkyPlanner dei nuovi ordini di produzione in NetSuite?

NetSuite non dispone di un webhook standard in uscita documentato. Uno script User Event su Work Order mette in coda una notifica al salvataggio. Un’interrogazione periodica tramite SuiteQL rileva le modifiche che sfuggono allo script, come le importazioni CSV e gli aggiornamenti in massa.

Possiamo provare SkyPlanner con i dati di NetSuite prima di realizzare l’integrazione?

Sì. Esporta in CSV i centri di lavoro, i cicli di lavorazione e gli ordini di produzione aperti, importali in SkyPlanner durante la prova di 30 giorni e confronta la schedulazione della produzione, che rispetta la capacità reale di macchine e personale, con il tuo piano attuale. Inizia la prova gratuita o prenota una demo.

Quanto dura un progetto di integrazione con NetSuite?

L’implementazione si conclude normalmente nel giro di poche settimane dall’avvio dell’onboarding, anche nelle grandi aziende. Già durante la prova è possibile eseguire la schedulazione con i dati CSV, e UTU utilizza già oggi SkyPlanner con NetSuite (testimonianza di UTU).