Usando o XML Position Forwarding no Magic xpi

Em um projeto de integração é muito comum precisarmos ler um source (database, arquivo texto, XML e etc.) com vários registros e tratá-los individualmente. Para fazer isso usamos um DataMapper e configuramos o seu destino como um Call Flow:


Imagem_001

Configuração de um processo de leitura de um source (XML) percorrendo seus registros individualmente

Você pode relembrar sobre esta técnica de processamento de DataSets, neste outro post.

No destino (Call Flow) apontamos o fluxo que deve ser chamado para cada registro encontrado no Source.

Na tela de mapeamento passamos os valores do Source como parâmetros para variáveis deste fluxo que esta sendo chamado:

Imagem_002

 Temos que criar todas as variáveis correspondentes aos valores do Source.

Imagine que nosso Source tenha muitos campos para serem mapeados. Quantas variáveis teríamos que criar e quantos nós teríamos de mapear?

 

Uma maneira mais fácil

 

Para tornar este trabalho mais simples e ágil vamos usar a propriedade XML Positon Forwarding. Esta propriedade permite que possamos ler a mesma estrutura do XML iterado dentro fluxo chamado com a garantia de estar lendo apenas um único registro por execução.

Desta forma utilizaremos os valores do Source (XML) sem precisar enviá-los como parâmetro.

No fluxo chamado pelo Call Flow, arraste um DataMapper, configure seu Source para XML e na tela de propriedades clique no botão XML Positon Forwarding:

Imagem_003

 

*Nota – A propriedade XML Positon Forwarding é disponível apenas para Sources do tipo XML.

 

O XPI vai abrir uma tela onde você devemos procurar o DataMapper que está fazendo o Call Flow para este fluxo:

Imagem_004

 

Quando selecionarmos a linha que indica o DataMapper  “chamador” então o botão “Select” ficará habilitado.

Após esta configuração a tela de propriedade do XML é preenchida automaticamente com os dados do XML “de origem”:

Imagem_005

 

Lembre-se que precisamos apenas garantir a iteração do XML no DataMapperchamador”. Volte neste DataMapper e mapeie apenas a linha de iteração (a linha verde que mapeia os nós pais):

Imagem_006

Mapeamento dos nós pais que garantem a iteração do Source

Pronto, agora você pode voltar ao DataMapper onde configurou a propriedade XML Positon Forwarding, criar o seu Destination e mapear os valores do XML sem precisar usar variáveis:

Imagem_007

 

Douglas - Analista Programador Magic Software Brasil
Douglas – Analista Programador Magic Software Brasil

 

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *