Di Marco Guiducci
Quando arriva il momento di aggiornare infrastrutture informatiche datate, è essenziale scegliere strumenti flessibili e scalabili: in questo articolo approfondiamo come integrare Netsuite in infrastrutture complesse, esplorando:
- Introduzione: lo stato dell’arte
- Oracle Netsuite: panoramica del software e delle sue funzionalità principali
- Le regole di una buona integrazione fra sistemi: linee guida fondamentali per connettere software in modo performante
- Come integrare Netsuite in infrastrutture complesse
- Conclusioni
Introduzione: lo stato dell’arte
Nel nostro settore, sempre più spesso stiamo affrontando le necessità dei nostri clienti di rivoluzionare la loro infrastruttura informatica, radicata nel cuore delle loro aziende da anni a cavallo del nuovo millennio e mai aggiornate “perché finora ci ha sempre funzionato bene così”. Arriva però il momento in cui il cambiamento diventa non più rimandabile, il che può avvenire per l’ormai non più aggirabile obsolescenza degli attuali strumenti operativi, così come per i costi esorbitanti legati alla loro manutenzione, dato che molto spesso trattasi di applicativi nati custom e per i quali ogni volta l’aggiunta di una nuova minima funzionalità può minare l’equilibrio precario del software o della salute mentale dell’unico sviluppatore al mondo che sa dove deve intervenire (e che si farà pagare profumatamente).
Per questo tipo di aziende, la trasformazione digitale equivale al passare dal cavallo al razzo per raggiungere la luna. Se non vogliamo rischiare di ricondurci un giorno al caso precedente, però, è necessario dotarsi di software che siano scalabili, facilmente personalizzabili e che vantino una vasta comunità di utilizzatori e di partner certificati.
Ultimo ma non meno importante, è fondamentale assicurarsi che ciascun software del quale ci dotiamo venga utilizzato per cui è pensato, lavorando dunque sulle integrazioni fra diversi elementi per costruire un’architettura solida e performante, piuttosto che forzare lo sviluppo di tutte le funzionalità in un unico monolite che diventerebbe inevitabilmente il “nuovo “vecchio software” difficile da sostituire tra qualche anno.
Nell’articolo di oggi affronteremo queste tematiche usando come esempio l’adozione di Oracle Netsuite e, nello specifico, spiegando i segreti per integrare questo strumento come tassello all’interno di infrastrutture complesse.
Oracle Netsuite: panoramica del software e delle sue funzionalità principali
Prima di entrare nel vivo del concetto, partiamo dal contesto. Benché si possa supporre che il lettore interessato abbia già conoscenza di cosa sia Oracle Netsuite prima di aprire questo articolo (ma nel caso contrario, può facilmente scoprire perché è il software giusto per trasformare il proprio business) facciamo una breve panoramica sullo strumento.
Per raccontare Netsuite in pillole, mai come in questo caso un’immagine vale più di 1000 parole:

Come si evince dallo specchietto precedente, Oracle Netsuite è una soluzione ERP cloud based che permette una gestione dei processi aziendali a 360°. Approfondiamo brevemente ciascuno dei punti chiave:
- CRM: censimento delle informazioni legate a clienti e fornitori, con possibilità di gestire i dati anagrafici, indirizzi e contatti interni alle aziende, ma anche dati relativi a termini di pagamento e preferenze sul conto bancario utilizzato. All’interno di Netsuite sarà dunque registrata la carta d’identità completa del cliente.
- Flusso Vendita e Marketing: all’interno di Netsuite è possibile gestire nativamente tutte le fasi del ciclo di vendita, dalla lead all’ordine, fino alla fatturazione e registrazione del pagamento.
È inoltre possibile gestire la creazione di campagne di Marketing e l’invio di newsletter ai clienti. - Gestione Finanziaria e Contabilità: con Netsuite possono essere seguite tutte le fasi di monitoraggio dei flussi finanziari e la rendicontazione contabile in ogni fase dei processi di vendita ed acquisto.
- Ciclo Produttivo: per aziende manifatturiere, è possibile monitorare tutto il ciclo produttivo degli articoli, dall’ingresso della merce dai fornitori alle lavorazioni che portano alla produzione del prodotto finito.
- Gestione delle Risorse Umane: all’interno di Netsuite è possibile censire tutti i dipendenti dell’azienda, sia per gestire l’accounting dei propri clienti come per il project management, monitorando dunque i costi legati alle attività delle proprie risorse.
- Pianificazione: tutte le scadenze amministrative e contabili possono essere pianificate, così come le azioni automatiche che dovranno essere intraprese.
- Gestione Inventario: per aziende che vendono prodotti e non servizi, è possibile monitorare le quantità di magazzino in diverse location ed il trasferimento della merce fra esse o verso il cliente.
- Reportistica: attraverso un motore di reportistica avanzato ed altamente personalizzabile, è possibile costruire le proprie statistiche e monitorare l’andamento dei flussi aziendali.
Come abbiamo visto, dunque Netsuite è un software estremamente versatile e ricco di funzionalità e che può fare un sacco di cose. Non dobbiamo, però, correre il rischio di pensare che possa fare tutto, o cadremo nuovamente nell’errore di cui vi abbiamo parlato prima.
Facciamo degli esempi concreti in merito.
Pocanzi abbiamo detto come Netsuite permetta la gestione dei prodotti e del loro inventario. Questa feature, però, è ben lontana dal fornire tutte le funzionalità che sono prerogativa di un PIM; le informazioni anagrafiche presenti nel prodotto su Netsuite, infatti, sono strettamente legate ai processi di acquisto e vendita, più che alla diffusione delle informazioni stesse in canali esterni.
Abbiamo anche detto come con Netsuite sia possibile gestire tutte le fasi legate all’ordine ed alla contabilizzazione dei pagamenti; tuttavia, è impensabile utilizzare Netsuite come E-commerce dato in mano direttamente al cliente finale.
Sempre legato al ciclo degli ordini, come ultimo esempio possiamo citare il flusso di monitoraggio delle spedizioni. Per quanto sia possibile in Netsuite definire lo spedizioniere ed impostare un numero di tracciamento dell’ordine, non possiamo trasformare Netsuite in un software di monitoraggio della spedizione; per questo scopo, ci sono tool che lo fanno di mestiere.
Adesso che abbiamo chiaro quanto sia necessario separare le responsabilità fra software distinti, vediamo quali sono le best practices per integrare Netsuite con altri software in modo semplice e performante.
Le regole di una buona integrazione fra sistemi
Già da molti anni, come già abbiamo detto nel capitolo introduttivo, il mondo della trasformazione digitale prevede sempre più l’adozione di tanti piccoli software distinti che hanno lo scopo di assolvere uno o più compiti ben definiti, in sostituzione della precedente filosofia che prevedeva l’uso di monoliti le cui ridotte possibilità di scalabilità ed estendibilità si stanno rivelando un ostacolo alla crescita delle aziende.
L’adozione di software specificatamente preposti allo svolgimento di un obiettivo ha reso questi applicativi sempre più prestazionali, più semplici da manutenere ed aggiornare e sempre più attenti all’usabilità dell’utilizzatore finale, che spesso corrisponde ad un utente non tecnico.
Per tutti questi motivi, nel mondo dello sviluppo software è sempre più richiesta l’abilità nel saper mettere in comunicazione fra loro i diversi software che compongono l’infrastruttura digitale.
Il successo dell’integrazione fra due diversi sistemi si può raggiungere, a patto di rispettare queste poche e semplici regole:
- Scalabilità: il flusso di integrazione deve poter tollerare dei picchi di comunicazione o, in generale, un aumento dei volumi nel tempo.
- Flessibilità: lo sviluppo del processo di integrazione deve consentire, nei limiti del possibile, la facoltà di poter essere esteso con effort ridotto da parte dell’utilizzatore finale per attività semplici, come ad esempio l’aggiunta di un attributo nel flusso di scambio dati
- Affidabilità: nella comunicazione fra due sistemi, deve essere garantita la mancanza di perdita di dati. Deve dunque essere garantito che il dato di partenza sia correttamente comunicato alla rispettiva destinazione.
- Asincronicità: la comunicazione tra due sistemi deve essere quanto più possibile asincrona, e dunque per quanto possibile non deve essere triggerata da un evento puntuale ma da una schedulazione.
- Monitorabilità: deve essere possibile, per un operatore, consultare in qualsiasi momento lo stato di avanzamento delle comunicazione tramite dashboard o report
- Tolleranza: il sistema deve poter tollerare momentanee interruzioni nel flusso di comunicazione, e poter poi gestire il retry delle comunicazioni stesse una volta che i sistemi sono tornati operativi, garantendo che nessun messaggio vada perso.
Per garantire che le suddette regole siano rispettate, nell’integrazione fra sistemi complessi è sempre preferibile avvalersi di Soluzioni Ipaas, in quanto permettono di disaccoppiare i due sistemi esternalizzando le logiche di business proprie dei vari sistemi e di aumentare le performance generali degli applicativi stessi permettendo di concentrare le risorse nello svolgere le attività per il quale il software è pensato, anziché nel gestire direttamente le comunicazioni ed i tempi di attesa delle risposte
Come integrare Netsuite in infrastrutture complesse
Ora che abbiamo definito le regole generali, vediamo quali strumenti ci offre Netsuite e quali sono le best practice per integrarlo a sistemi esterni.
Custom Fields e Custom Records
Netsuite fa parte di una fetta ormai sempre più ampia di software che garantisce un approccio “low code”, ovvero quei software che offrono la possibilità di customizzare funzionalità ed interfaccia del sistema con scarsa (o persino nulla) necessità di sviluppare codice.
Nonostante Netsuite fornisca già un set molto ampio di attributi per qualsiasi tipologia di entità censita al suo interno, per ogni azienda è quasi sempre necessario aggiungere “quel qualcosa in più” per gestire adeguatamente determinati aspetti legati alle logiche di business dell’azienda stessa.
Per farlo, in Netsuite è possibile creare per ciascuna entità degli attributi custom che possono essere impostati al livello principale o, per le entità che lo prevedono, anche a livello di riga (e.g. Ordini di Vendita)
Per casistiche più complesse, è possibile definire delle intere entità custom, dette appunto “Custom Record” ed eventualmente associarle ad altre entità esistenti.
Nell’ottica di integrare Netsuite con un applicativo esterno, possiamo pensare di combinare l’uso di Custom Fields o Custom Records per:
- Gestire lo stato di sincronizzazione delle informazioni da Netsuite ad un applicativo
- Censire la struttura delle informazioni che provengono da un software esterno e che devono essere elaborate in Netsuite
Saved Searches
Quello delle “ricerche salvate” è una delle funzionalità certamente più potenti all’interno di Netsuite grazie alla loro praticità e facilità di configurazione.
Le “Saved Searches” possono essere usate per alimentare report o dashboard, per esportare i dati in fogli csv o excel, ma anche come base per sviluppare, come vedremo tra poco, flussi di integrazione dati con applicativi esterni.
Sviluppo di Script Custom
Poc’anzi abbiamo detto come Netsuite sia un software che garantisce un approccio “low code”, ma non che sia effettivamente un software “no-code”.
Questo significa che Netsuite ci da la possibilità di sviluppare del codice custom in dei piccoli script autocontenuti, che possono essere di varia tipologia e che permettono di gestire l’interazione dell’utente con il sistema così come la comunicazione da e verso l’esterno.
Per definire approfonditamente tutte le varie tipologie di script avremmo bisogno di un articolo a parte, quindi non ci dilunghiamo molto; per il nostro scopo, possiamo però citare due diverse tipologie di script che risultano incredibilmente utili per sviluppare integrazioni che rispettino i requisiti che abbiamo precedentemente descritto.
RESTLet
Come il nome suggerisce, questo tipo di script prevede di sviluppare delle semplici e completamente personalizzabili API REST.
Tutto ciò che è necessario è definire con l’interlocutore il tracciato di scambio dati in scrittura, per integrazioni che prevedono l’invio di informazioni a Netsuite, o in lettura; dopodiché, è sufficiente sviluppare la logica di business che vada a leggere le informazioni definite nel tracciato e le elabori.
Per garantire le performance dell’applicativo, che è una delle regole fondamentali che abbiamo precedentemente elencato, il suggerimento è sempre quello di scrivere le informazioni che ci arrivano dall’esterno in un Custom Record, che funga da coda di processo, anziché elaborare direttamente le informazioni, e successivamente creare uno script che elabori la coda stessa.
Map/Reduce
Partendo come base da una ricerca salvata, con questo tipo di script possiamo recuperare le singole righe della ricerca stessa ed elaborare i dati in essa contenuti per creare o modificare delle entità in Netsuite.
In combinazione con la precedente tipologia di script, con questo paradigma è possibile gestire il flusso di comunicazione in modo asincrono e incrementale.
Allo stesso modo, possiamo anche utilizzare questo pattern per effettuare chiamate API verso l’esterno per l’invio di informazioni a sistemi esterni.
Come esercizio, immaginiamo di dover sviluppare un’integrazione fra Netsuite ed una piattaforma E-commerce per gestire il flusso di creazione ed aggiornamento ordini.
Mettendo assieme tutti i concetti che abbiamo visto, in pochi semplici passi possiamo:
- Configurare un Custom Record per gestire le informazioni degli ordini in ingresso dall’E-commerce
- Sviluppare uno script RESTLet per ricevere gli ordini dal connettore Ipaas
- Configurare una Saved Search per recuperare gli ordini “da processare”
- Sviluppare uno script Map/Reduce che elabora un batch di ordini creandoli su Netsuite e indicandoli come “processati”
- Configurare una Saved Search per definire le informazioni di aggiornamento sullo stato di spedizione degli ordini
- Sviluppare uno script Map/Reduce che vada ad inviare i suddetti dati tramite chiamata API al connettore Ipaas
Conclusioni
In questo articolo, abbiamo parlato del ruolo chiave che hanno gli sviluppi delle integrazioni fra diversi sistemi e di come sia fondamentale realizzare queste soluzioni in modo efficiente.
Attraverso l’esempio di Netsuite, abbiamo sia importante sfruttare gli strumenti messi a disposizione da un software per ottimizzare i processi di integrazione, senza snaturare dunque la natura del sistema stesso separando le logiche di business.
Recentemente, sfruttando anche l’impiego di soluzioni Ipaas abbiamo implementato un’architettura digitale che mette in comunicazione Netsuite con un applicativo PIM ed una soluzione E-commerce B2B basata su Shopify. Se hai l’esigenza di realizzare un processo di trasformazione digitale, parlaci del tuo progetto: possiamo realizzarlo insieme.