Gestionar los errores HTTP durante la integración automatizada de datos
Los analistas de datos y otros profesionales a menudo necesitan generar datos en tiempo real mediante la ejecución automatizada de procesos de mapeo de datos que solicitan servicios web y guardan los resultados. Durante la ejecución automatizada, es importante manejar de manera adecuada cualquier error HTTP inesperado, en lugar de interrumpir la tarea de integración.
En una publicación anterior, analizamos el procesamiento condicional de una respuesta de un servicio web REST para gestionar errores HTTP, donde se generaban archivos de salida separados para una respuesta normal y para un error. Ahora, veamos una solución de mapeo revisada para el ejemplo del estado del aeropuerto, con el objetivo de generar un único archivo de resultados que contenga ya sea el estado del aeropuerto solicitado o una descripción del error.

Una estrategia para generar un único resultado sería tratar cada archivo de salida creado en nuestro mapeo anterior de MapForce como un componente intermedio, y luego mapearlos hacia un resultado final que contemple ambos posibles resultados.
Sin embargo, una solución más sencilla es mapear directamente una respuesta normal y un resultado de error en un único componente de salida.
Después de publicar nuestra publicación anterior, descubrimos que el servicio web de estado de aeropuertos de la FAA devuelve un error si la solicitud contiene un campo vacío para el código del aeropuerto. Esto genera un error HTTP 404. Lamentablemente, el resultado del servicio web en caso de error se entrega en formato HTML en lugar de JSON, a pesar de lo especificado en la cabecera de la solicitud

Podemos evitar el análisis de un error de HTML mapeando directamente a partir del código de estado que se devuelve en la respuesta:

Primero, necesitamos añadir un elemento al esquema JSON del componente de destino para almacenar un mensaje en caso de que se produzca algún error. Esto se puede lograr fácilmente utilizando XMLSpy Editor gráfico de esquemas JSON:

En la ventana de ayuda "Detalles", la opción "Ocurrencia" está configurada como "Opcional" porque solo generaremos este elemento en caso de un error HTTP.
Ahora podemos crear un mensaje de error personalizado basado en cualquier código de estado HTTP superior a 200:

La función "concat" mencionada anteriormente incluye el código de estado y el código del aeropuerto para proporcionar una explicación completa de cualquier error.
Aquí se presenta una visión completa del esquema revisado que muestra el recorrido del código de estado hasta el componente de salida:

Podemos editar el código de aeropuerto constante que se encuentra en la parte superior izquierda del mapa, y luego hacer clic en el botón "Salida" que se encuentra debajo de la ventana principal del mapa para probar diferentes valores de entrada. Cuando se incluye un código de aeropuerto válido en la solicitud GET enviada al servicio web, el resultado es el archivo JSON que esperamos:

Podemos generar un error HTTP enviando una cadena de texto vacía en el campo correspondiente al código del aeropuerto. Esto genera un archivo de respuesta de error en formato JSON:

Tenga en cuenta que nuestro sistema de mapeo sigue incluyendo cuerpos de respuesta separados para los códigos de estado HTTP 200-299 y para los códigos 300-599. Esto garantiza que solo los resultados JSON válidos se mapeen para la salida. Los resultados de error recibidos en formato HTML no se mapean; simplemente se descartan.

Automatice el mapeo de datos y gestione los errores HTTP
En nuestra publicación anterior, describimos un escenario de automatización en el que queremos verificar y registrar el estado de 50 aeropuertos de forma regular. Para lograr esto, necesitaremos llamar al servicio web y analizar los resultados para cada código de aeropuerto individual.
El esquema de mapeo original ya está diseñado teniendo en cuenta la automatización. MapForce Server es una herramienta de servidor multiplataforma que automatiza la ejecución de los mapeos de datos diseñados en MapForce. El componente ubicado en la esquina superior izquierda del mapeo, después de la cadena de texto constante, es un parámetro de entrada que puede proporcionarse en tiempo de ejecución para que lo procese MapForce Server.

La cadena de caracteres "PHX" que se muestra en la captura de pantalla solo se utiliza durante la ejecución directa en MapForce.
FlowForce Server es un sistema altamente personalizable Motor de flujo de trabajo para la automatización eficiente de tareas de integración de datos a nivel empresarial. Una tarea de FlowForce Server puede ejecutar la transformación de datos utilizando MapForce Server una vez para cada código de aeropuerto requerido, y repetirse según un programa regular. La tarea automatizada gestionará los errores HTTP generando archivos de resultados que contendrán, para cada código de aeropuerto, ya sea el estado más reciente o una descripción del error.
Si es nuevo en MapForce, consulte este vídeo introductorio para conocer sus funciones de conversión e integración de datos, que permiten transformar cualquier tipo de dato a cualquier otro. Puede probar MapForce, MapForce Server y FlowForce Server con una prueba gratuita de 30 días.