Gestire i dati di input errati con FlowForce Server
Ogni volta che si accettano dati da una fonte esterna, si corre il rischio di incorrere in errori. In passato, abbiamo scritto sul blog riguardo a questo fenomeno, in Aspettatevi l'inaspettato: Altova MissionKit risolve un mistero sui formati numerici e nella serie di articoli su Elaborazione dell'API di Groupon.
Dati errati in un file di input possono causare il fallimento della fase di trasformazione dei dati in un processo FlowForce Server. Quando un processo FlowForce Server fallisce, le fasi successive non vengono eseguite. FlowForce Server è progettato in questo modo per evitare che un errore in una singola fase del processo si propaghi a una serie di risultati errati aggiuntivi. Fortunatamente, FlowForce Server include anche funzionalità per aiutarvi a risolvere gli errori e a mantenere il flusso di lavoro.
In questo articolo, approfondiremo le funzionalità di mappatura dei dati e generazione di report descritte in Personalizzazione di un processo FlowForce, per gestire in modo efficace i dati errati presenti in un file di input.
Abbiamo iniziato creando una versione modificata di uno dei file contenenti dati errati, e abbiamo aggiunto una cartella al flusso di lavoro che fungerà da destinazione per i file di input contenenti errori. 
Abbiamo creato il file di input errato copiando un file di input esistente e modificandolo con il programma DiffDog.
La prima colonna numerica nel file .csv di input rappresenta un timestamp che indica ore, minuti, secondi e millisecondi. Abbiamo semplicemente modificato i valori presenti nelle righe 14 e 15 per assicurare che fossero al di fuori del limite massimo di 24 ore.

Abbiamo avviato MapForce e abbiamo impostato il file contenente dati errati come input per la mappatura da CameraLog a GPX. Quando abbiamo cliccato sul pulsante "Output" per eseguire la mappatura, si è verificato il seguente errore:

Fasi di esecuzione dei processi sul server FlowForce con gestione degli errori
Successivamente, abbiamo definito una nuova versione del processo FlowForce Server per elaborare i dati all'interno di una fase di gestione degli errori e dei successi. Se la mappatura dei dati fallisce, spostiamo il file di input problematico e qualsiasi file di output .gpx parzialmente scritto nella cartella "dati_errati". Se la mappatura dei dati ha successo, procediamo con la trasformazione per generare il report .html, quindi spostiamo i file di input e .gpx nella cartella "lavori_completati".
Notare l'ultimo passaggio della sezione "Gestione degli errori". Un errore di mappatura dei dati interromperà l'esecuzione del ciclo "per ogni file", quindi richiamiamo l'intero processo in modo ricorsivo per elaborare eventuali file di input non ancora processati.

Se un errore di mappatura dei dati è particolarmente grave per l'azienda e richiede un intervento immediato, potremmo persino aggiungere una fase di elaborazione all'interno della sezione "In caso di errore" per inviare un messaggio e-mail:

Naturalmente, i campi "Destinatario", "Oggetto", "Corpo del messaggio" e "Allegato" sono completamente configurabili.
Se la fase di mappatura dei dati ha esito positivo, il server FlowForce esegue la sezione "in caso di successo" e prosegue con la fase di rendering del file .html.
Esecuzione del processo
Il processo viene avviato in base a una tempistica predefinita e il registro del server FlowForce registra ogni fase di esecuzione. Nella parte del registro riportata di seguito, è possibile vedere come viene gestito il file di input contenente dati errati. La terza riga della sequenza indica l'errore, dopodiché il file di input e il file .gpx parzialmente generato vengono inviati alla cartella "badData".

L'ultima riga sopra indica che il server ha iniziato a elaborare il file successivo presente nella cartella.
Una volta completata l'elaborazione, possiamo verificare i risultati attesi all'interno delle cartelle di lavoro:

FlowForce Server è disponibile per le piattaforme Windows, Linux e, a breve, anche per Mac OS. Per iniziare, ** clicca qui per scaricare una versione di prova gratuita!**