Het omgaan met onjuiste invoergegevens met FlowForce Server
Wanneer u gegevens van een externe bron accepteert, loopt u het risico fouten tegen te komen. We hebben in het verleden al over dit fenomeen geschreven in Verwacht het onverwachte – Altova MissionKit lost een probleem met getallenformaten op en in de reeks artikelen over Het verwerken van de Groupon API.
Incorrecte gegevens in een invoerbestand kunnen ervoor zorgen dat de stap van gegevensomzetting in een FlowForce Server-taak mislukt. Wanneer een FlowForce Server-taak mislukt, worden verdere uitvoeringsstappen niet uitgevoerd. FlowForce Server is op deze manier ontworpen om te voorkomen dat een fout in één taakstap zich verspreidt en leidt tot een reeks aanvullende ongeldige resultaten. Gelukkig bevat FlowForce Server ook functies om u te helpen bij het herstellen van fouten en om de productie te laten doorgaan.
In dit artikel zullen we de functionaliteit van de data mapping en rapportgeneratie die in Aanpassen van een FlowForce-taak is beschreven, verder uitbreiden, zodat deze op een correcte manier om kan gaan met incorrecte gegevens in een invoerbestand.
We zijn begonnen met het maken van een variatie van een van de bestanden met incorrecte gegevens, en we hebben een map toegevoegd aan de workflow die als bestemming dient voor bestanden met incorrecte invoer. 
We hebben het bestand met incorrecte invoer gemaakt door een bestaand invoerbestand te kopiëren en dit vervolgens te bewerken met DiffDog.
De eerste numerieke kolom in het invoerbestand (.csv) bevat een tijdstempel met uren, minuten, seconden en duizendsten. We hebben simpelweg de waarden op regel 14 en 15 aangepast, zodat ze buiten de maximale waarde van 24 uur vallen.

We hebben MapForce gestart en het bestand met incorrecte gegevens als invoer toegewezen voor de conversie van CameraLog naar GPX. Toen we op de knop "Uitvoer" klikten om de conversie te starten, kwam de volgende foutmelding:

FlowForce Server: Taakstappen met foutafhandeling
Vervolgens hebben we een nieuwe versie van de FlowForce Server-taak gedefinieerd om invoer te verwerken binnen een stap voor foutafhandeling/succesverwerking. Als de datamapping mislukt, verplaatsen we het bestand met de incorrecte invoer en eventuele gedeeltelijk geschreven .gpx-bestanden naar de map voor incorrecte data. Als de datamapping succesvol is, gaan we verder met de transformatie om het .html-rapport te genereren, waarna we de invoerbestanden en .gpx-bestanden verplaatsen naar de map voor voltooide taken.
Let op de laatste stap van het gedeelte "Bij fout". Een fout bij het toewijzen van gegevens zal de uitvoering van de lus "Voor elk bestand" stoppen. Daarom roepen we de hele taak recursief opnieuw aan om eventuele onbewerkte invoerbestanden te verwerken.

Als een fout in de datamapping ernstig is voor het bedrijf en onmiddellijke actie vereist, kunnen we zelfs een taakstap toevoegen aan het gedeelte "Bij fout" om een e-mailbericht te verzenden:

Natuurlijk zijn de velden voor de ontvanger, het onderwerp, de hoofdtekst en de bijlage volledig configureerbaar.
Als de stap voor het toewijzen van gegevens succesvol is, voert de FlowForce Server het gedeelte "bij succes" uit en gaat vervolgens verder met de stap voor het genereren van de .html-pagina.
Het uitvoeren van de taak
De taak wordt gestart op basis van een tijdstip, en de FlowForce Server Log registreert elke stap van de uitvoering. In het onderstaande fragment van de log kunnen we zien hoe het bestand met onjuiste data wordt verwerkt. De derde regel in de reeks geeft de fout aan, waarna het invoerbestand en het gedeeltelijk gegenereerde .gpx-bestand naar de map "badData" worden verplaatst.

De laatste regel hierboven laat zien dat de server begint met het verwerken van het volgende invoerbestand in de map.
Zodra de taak is voltooid, zien we de verwachte resultaten in de inhoud van de werkmappen:

FlowForce Server is beschikbaar voor Windows, Linux en binnenkort ook voor Mac OS. Om zelf aan de slag te gaan, klik hier om een gratis proefversie te downloaden!