Gerir erros HTTP durante a integração automatizada de dados
Analistas de dados e outros profissionais frequentemente precisam gerar dados em tempo real através da execução automatizada de mapeamentos de dados que solicitam serviços web e guardam os resultados. Durante a execução automatizada, é importante tratar de forma adequada qualquer erro HTTP inesperado, em vez de interromper a tarefa de integração.
Numa publicação anterior, discutimos.. Processamento condicional de uma resposta de um serviço web REST para tratar erros HTTP, onde eram gerados ficheiros de saída separados para uma resposta normal e para um erro. Agora, vamos analisar uma solução de mapeamento revista para o exemplo do estado do aeroporto, de forma a gerar um único ficheiro de resultados que contenha ou o estado do aeroporto solicitado ou uma descrição do erro.

Uma estratégia para gerar um único resultado seria tratar cada ficheiro de saída criado na nossa etapa anterior de mapeamento do MapForce como um componente intermédio, e, em seguida, mapear esses componentes num resultado final que considere ambos os resultados possíveis.
No entanto, uma solução mais simples é mapear diretamente uma resposta normal e um resultado de erro para um único componente de saída.
Após a publicação do nosso artigo anterior, descobrimos que o serviço web de estado dos aeroportos da FAA retorna um erro caso a solicitação contenha um campo vazio para o código do aeroporto. Isso gera um erro HTTP 404. Infelizmente, o resultado do serviço web em caso de erro é fornecido em formato HTML, em vez de JSON, apesar da especificação no cabeçalho da solicitação

Podemos evitar a análise de um erro HTML ao mapear diretamente o código de estado que é devolvido na resposta:

Primeiramente, precisamos adicionar um elemento ao esquema JSON do componente alvo para armazenar uma mensagem em caso de qualquer erro. Isso pode ser feito facilmente utilizando o XMLSpy Editor de Esquemas JSON Gráfico:

Na janela de ajuda "Detalhes", a opção "Ocorrência" está definida como "Opcional", porque este item só será gerado em caso de erro HTTP.
Agora podemos criar uma mensagem de erro personalizada com base em qualquer código de estado HTTP superior a 200:

A função "concat" mencionada acima inclui o código de estado e o código do aeroporto para fornecer uma explicação completa de qualquer erro.
Aqui está uma visão geral completa do esquema atualizado que traça o caminho do código de estado até o componente de saída:

Podemos editar o código do aeroporto constante no canto superior esquerdo do mapa e, em seguida, clicar no botão "Saída" abaixo da janela principal do mapa para testar vários valores de entrada. Quando um código de aeroporto válido é incluído na requisição GET para o serviço web, o resultado é o ficheiro JSON que esperamos:

Podemos gerar um erro HTTP enviando uma string vazia no campo correspondente ao código do aeroporto. Isto gera um ficheiro de resposta de erro em formato JSON:

Note que o nosso sistema de mapeamento continua a incluir corpos de resposta separados para os códigos de estado HTTP entre 200 e 299, e para os códigos entre 300 e 599. Isto garante que apenas os resultados JSON válidos são mapeados para a saída. Os resultados de erro recebidos em formato HTML não são mapeados; são simplesmente descartados.

Automatize o mapeamento de dados e gerencie os erros HTTP
No nosso artigo anterior, descrevemos um cenário de automação em que queremos verificar e registar o estado de 50 aeroportos de forma regular. Para isso, será necessário aceder ao serviço web e processar os resultados para cada código de aeroporto individualmente.
O esquema de mapeamento original já foi concebido tendo em mente a automatização. O MapForce Server é uma ferramenta de servidor multiplataforma que automatiza a execução de mapeamentos de dados criados no MapForce. O componente no canto superior esquerdo do mapeamento, que segue a cadeia de caracteres constante, é um parâmetro de entrada que pode ser fornecido em tempo de execução para que o MapForce Server o processe.

A sequência de caracteres "PHX" que aparece na captura de ecrã é utilizada apenas durante a execução direta no MapForce.
O FlowForce Server é um sistema altamente personalizável Motor de fluxo de trabalho para a automatização eficiente de tarefas de integração de dados em nível empresarial. Uma tarefa do FlowForce Server pode executar a transformação de dados utilizando o MapForce Server uma vez para cada código de aeroporto necessário, e repetir essa operação de acordo com um cronograma regular. A tarefa automatizada tratará os erros HTTP, gerando ficheiros de resultados que conterão, para cada código de aeroporto, o estado mais recente ou uma descrição do erro.
Se é novo no MapForce, veja este vídeo de apresentação para uma introdução às suas funcionalidades de conversão e integração de dados, que permitem a conversão entre qualquer formato. Pode experimentar o MapForce, o MapForce Server e o FlowForce Server através de um período de teste gratuito de 30 dias.