Quando un’azienda utilizza più applicazioni per gestire le proprie attività, può nascere la necessità di farle comunicare fra loro. Un programma può contenere informazioni che servono a un altro, oppure un’operazione eseguita in un sistema può richiedere un aggiornamento in una seconda applicazione.
Il problema si presenta quando queste informazioni non arrivano, vengono aggiornate soltanto in parte oppure sono interpretate in modo differente dai programmi che le utilizzano.
In alcune situazioni il personale può essere costretto a riportare manualmente i dati da un’applicazione all’altra. In altre, le attività proseguono senza che ci si accorga subito della differenza fra le informazioni registrate nei vari sistemi.
Non sempre, però, la presenza di un passaggio manuale indica un problema tecnico. Può essere una scelta organizzativa oppure una modalità di lavoro prevista. La difficoltà nasce quando lo scambio di informazioni necessario alle attività aziendali non avviene come previsto e non è chiaro dove intervenire.
Che cosa può non funzionare nello scambio dei dati
Quando due software devono scambiarsi informazioni, non è sufficiente verificare che esista un collegamento. Occorre capire se i dati vengono trasferiti correttamente e se il sistema che li riceve riesce a utilizzarli.
Le situazioni che possono verificarsi sono differenti.
Le informazioni non arrivano al sistema destinatario. Un dato inserito in un’applicazione non compare nell’altra, anche se dovrebbe essere trasferito. Se quell’informazione è necessaria per proseguire un’attività, il processo può fermarsi oppure richiedere un intervento manuale.
Gli aggiornamenti arrivano in ritardo o sono incompleti. Il dato viene trasferito, ma non nel momento previsto, oppure soltanto una parte delle informazioni viene aggiornata. Un’applicazione può quindi utilizzare una situazione precedente mentre un’altra dispone già dei dati più recenti.
Le informazioni arrivano, ma vengono interpretate diversamente. I due sistemi possono ricevere gli stessi valori senza attribuire loro lo stesso significato operativo. Un campo che in un programma rappresenta uno stato può essere utilizzato dall’altro con regole differenti, oppure un valore può non essere compatibile con quello atteso dal sistema destinatario.
Queste situazioni hanno conseguenze diverse. Un’informazione mancante può impedire di proseguire un’attività, mentre un dato non aggiornato può indurre a prendere una decisione sulla base di una situazione che non corrisponde più a quella effettiva. Un’informazione interpretata in modo differente, invece, può essere presente in entrambi i sistemi senza produrre il risultato atteso.
Per comprendere il problema è quindi importante distinguere la presenza del dato dalla sua effettiva utilizzabilità.
Perché due software possono produrre risultati diversi
Le differenze osservate possono dipendere da meccanismi differenti. Non è possibile stabilire la causa soltanto guardando il risultato finale: occorre capire come l’informazione viene prodotta, trasferita ed elaborata.
Le informazioni non hanno la stessa struttura
Due applicazioni possono gestire informazioni simili utilizzando strutture differenti.
Due applicazioni possono identificare lo stesso elemento con codici differenti. Se il collegamento non dispone di una corrispondenza corretta fra questi identificativi, il dato potrebbe non essere associato all’elemento previsto.
In questi casi il collegamento può anche funzionare dal punto di vista della comunicazione, ma il dato potrebbe non essere accettato oppure potrebbe richiedere una trasformazione prima di essere utilizzato.
Non significa necessariamente che uno dei due programmi sia difettoso. Potrebbero semplicemente essere stati sviluppati per gestire le informazioni secondo regole differenti.
Le regole applicate ai dati sono diverse
Un’altra possibilità riguarda il significato attribuito alle informazioni.
Supponiamo che due applicazioni utilizzino un campo per indicare lo stato di un’attività. Il primo programma può considerare un’operazione conclusa quando è stata registrata, mentre il secondo può richiedere anche un’ulteriore verifica prima di considerarla completata.
Se il collegamento trasferisce soltanto il valore del campo senza tenere conto di queste differenze, il sistema destinatario potrebbe interpretare l’informazione in modo non coerente con il processo aziendale.
Il dato è arrivato, ma non necessariamente produce il risultato atteso. Per questo motivo, lo scambio di informazioni deve essere valutato anche in relazione alle regole con cui i programmi le utilizzano.
La trasmissione o l’elaborazione non vengono completate
Durante lo scambio possono verificarsi errori di comunicazione, indisponibilità temporanee o problemi nell’elaborazione dei dati ricevuti.
In una situazione del genere, il sistema che invia le informazioni potrebbe non riuscire a completare la richiesta. In alternativa, il destinatario potrebbe riceverla ma non riuscire a registrare quanto necessario.
La distinzione è importante perché una richiesta inviata non equivale necessariamente a un’operazione completata. Allo stesso modo, l’assenza di una conferma non dimostra automaticamente che il destinatario non abbia eseguito l’operazione.
Se il sistema ripete una richiesta dopo un errore o una mancata conferma, occorre inoltre verificare come viene gestita la ripetizione. A seconda delle protezioni previste, l’operazione potrebbe essere ripresa correttamente oppure potrebbe essere eseguita più volte.
Non si può quindi attribuire ogni anomalia a un problema di collegamento: la causa potrebbe trovarsi nella trasmissione, nella validazione dei dati o nelle operazioni eseguite dal sistema destinatario.
Collegare le applicazioni non basta: che cosa occorre verificare
Quando due applicazioni non producono il risultato atteso, è utile partire da ciò che dovrebbe accadere e confrontarlo con quello che si osserva.
La prima domanda riguarda l’origine dell’informazione: quale sistema la produce e quale applicazione deve riceverla? Sembra un aspetto scontato, ma non sempre è chiaro quale programma debba essere considerato il riferimento per un determinato dato.
Occorre poi verificare che cosa succede durante il trasferimento. L’informazione è stata effettivamente inviata? Il sistema destinatario l’ha ricevuta? Esiste una conferma dell’elaborazione oppure è disponibile un messaggio che segnala un errore?
Sono domande differenti, perché permettono di separare le fasi del processo senza presumere che il problema si trovi necessariamente nella comunicazione.
Un’ulteriore verifica riguarda il contenuto delle informazioni. Anche quando il dato risulta presente in entrambi i sistemi, può essere utile confrontare i valori registrati e capire se vengono interpretati nello stesso modo.
Infine, bisogna considerare il momento in cui avviene l’aggiornamento. Se due applicazioni elaborano informazioni in tempi diversi, una differenza temporanea potrebbe essere prevista dal funzionamento del collegamento. Se invece l’aggiornamento non viene completato, occorre capire che cosa abbia impedito di raggiungere lo stato atteso.
Questi controlli iniziali aiutano a circoscrivere il problema, ma non costituiscono necessariamente una diagnosi completa. La possibilità di individuare la causa dipende dalle informazioni disponibili e da come i sistemi registrano le operazioni eseguite.
Quali possibilità esistono per integrare software aziendali
Le modalità per collegare due applicazioni dipendono dai programmi utilizzati, dalle funzionalità disponibili e dal tipo di informazioni che devono scambiarsi.
In alcuni casi il produttore mette a disposizione un connettore già pronto. Questa soluzione può essere sufficiente quando supporta i dati e le operazioni richieste dall’azienda.
In altri casi è possibile utilizzare le API, cioè interfacce attraverso le quali un’applicazione può richiedere o modificare informazioni in un altro sistema. Per determinati flussi possono essere utilizzati anche webhook, che permettono di notificare eventi a un’applicazione esterna, oppure procedure che trasferiscono i dati a intervalli prestabiliti.
Questi meccanismi non sono equivalenti e non risolvono automaticamente le differenze fra i programmi. Un connettore può non coprire tutte le funzioni necessarie, un’API può consentire di trasferire un dato senza garantire che venga elaborato correttamente e una notifica può richiedere ulteriori controlli da parte del sistema destinatario.
La scelta dipende quindi da ciò che occorre ottenere e dalle possibilità offerte dalle applicazioni coinvolte. Non è detto che serva sviluppare un’integrazione personalizzata: prima bisogna verificare se le soluzioni già disponibili sono adeguate.
Il punto centrale rimane lo stesso. Collegare due software aziendali significa consentire lo scambio delle informazioni necessarie, ma anche assicurarsi che queste informazioni possano essere utilizzate correttamente nei processi per cui sono state trasferite. È questo che distingue un collegamento tecnicamente possibile da un’integrazione che risponde alle esigenze operative dell’azienda.

