Controlando los datos de entrada incorrectos con el servidor FlowForce

Siempre que se reciben datos de una fuente externa, existe el riesgo de encontrar errores. Hemos hablado de este fenómeno en el pasado en el artículo Prepárese para lo inesperado: Altova MissionKit resuelve un misterio de formatos numéricos y en la serie de publicaciones sobre Procesamiento de la API de Groupon.

Los datos incorrectos en un archivo de entrada pueden provocar que la etapa de transformación de datos de un trabajo de FlowForce Server falle. Cuando un trabajo de FlowForce Server falla, las etapas de ejecución posteriores no se llevarán a cabo. FlowForce Server está diseñado de esta manera para evitar que un error en una etapa del trabajo se propague y genere una serie de resultados inválidos adicionales. Afortunadamente, FlowForce Server también incluye funciones que le ayudarán a recuperarse de los errores y a mantener el flujo de trabajo.

En esta publicación, ampliaremos el trabajo de mapeo de datos y generación de informes descrito en Personalización de un trabajo de FlowForce Server para manejar de manera eficiente datos incorrectos en un archivo de entrada.

Comenzamos creando una versión modificada de uno de los archivos que contenía datos incorrectos, y agregamos una carpeta al flujo de trabajo para que sirviera como destino de los archivos de entrada con datos incorrectos.

Creamos el archivo de entrada incorrecto copiando un archivo de entrada existente y modificándolo con el programa DiffDog.

La primera columna numérica en el archivo .csv de entrada representa una marca de tiempo que incluye horas, minutos, segundos y milésimas de segundo. Simplemente modificamos los valores de las líneas 14 y 15 para que estuvieran fuera del máximo de 24 horas.

Lanzamos MapForce y asignamos el archivo con datos incorrectos como entrada para la transformación de CameraLog a GPX. Cuando hicimos clic en el botón "Salida" para ejecutar la transformación, se produjo el siguiente error:

Pasos del trabajo del servidor FlowForce con manejo de errores

A continuación, definimos una nueva versión del trabajo de FlowForce Server para procesar los datos de entrada dentro de una etapa de manejo de errores/éxito. Si el mapeo de datos falla, moveremos el archivo de entrada problemático y cualquier archivo de salida .gpx que se haya escrito parcialmente a la carpeta "badData". Si el mapeo de datos tiene éxito, pasaremos a realizar la transformación para generar el informe .html, y luego moveremos los archivos de entrada y .gpx a la carpeta de trabajos completados.

Tenga en cuenta el último paso de la sección "En caso de error". Un error de mapeo de datos detendrá la ejecución del bucle "Para cada archivo", por lo que llamamos recursivamente a todo el proceso nuevamente para finalizar cualquier archivo de entrada que no haya sido procesado.

Si un error en el mapeo de datos es crítico para la empresa y requiere una acción inmediata, podríamos incluso añadir un paso dentro de la sección "En caso de error" para enviar un mensaje de correo electrónico:

Por supuesto, los campos de "Destinatario", "Asunto", "Cuerpo del mensaje" y "Adjunto" son totalmente configurables.

Si el paso de mapeo de datos se completa con éxito, el servidor FlowForce ejecuta la sección "En caso de éxito" y continúa con el paso de renderizado de archivos .html.

Ejecutando la tarea

El proceso se activa según un temporizador y el registro del servidor FlowForce guarda cada paso de la ejecución. En la sección del registro que se muestra a continuación, podemos ver cómo se gestiona el archivo de entrada con datos incorrectos. La tercera línea de la secuencia indica el error, y luego el archivo de entrada y el archivo .gpx generado parcialmente se envían a la carpeta "badData".

La última línea anterior muestra que el servidor está comenzando a procesar el siguiente archivo de la carpeta.

Una vez que el proceso se completa, podemos verificar los resultados esperados en el contenido de las carpetas de trabajo:

FlowForce Server está disponible para las plataformas Windows, Linux y, próximamente, para Mac OS Haga clic aquí para descargar una versión de prueba gratuita!