Trabalhando com “Looping” Functoid

Eu sempre usei esse functoid de forma errada, que tem a finalidade de combinar múltiplos registros do schema de origem para um único registro no schema de destino.
Então vamos utilizar de forma correta..
Considere a seguinte mensagem. :)

<ns0:Reservas xmlns:ns0="http://SampleLoopingFunctoid.Schema1"> <Numero_Voo>550</Numero_Voo> <Reservas_Online> <NomePassageiro>Maria</NomePassageiro> <NumeroAssento>3</NumeroAssento> </Reservas_Online> <Reservas_Online> <NomePassageiro>Andre</NomePassageiro> <NumeroAssento>6</NumeroAssento> </Reservas_Online> <Reservas_Online> <NomePassageiro>Renato</NomePassageiro> <NumeroAssento>7</NumeroAssento> </Reservas_Online> <Reservas_AgenteViagem> <Nome>Ricardo</Nome> <Assento>4</Assento> </Reservas_AgenteViagem> <Reservas_Telefone> <Passageiro>Gabriela</Passageiro> <Assento>5</Assento> </Reservas_Telefone> </ns0:Reservas>


Percebam que tem vários nodes contendo a mesma informação: Reserva de Cliente. Então seria interessante normalizar essas informações. Alguma coisa do tipo:

<ns0:Reservas xmlns:ns0="http://SampleLoopingFunctoid.schSaida"> <Voo>550</Voo> <Companhia>GOL</Companhia> <Passageiro> <Nome>Maria</Nome> <Assento>3</Assento> </Passageiro> <Passageiro> <Nome>Andre</Nome> <Assento>6</Assento> </Passageiro> <Passageiro> <Nome>Renato</Nome> <Assento>7</Assento> </Passageiro> <Passageiro> <Nome>Ricardo</Nome> <Assento>4</Assento> </Passageiro> <Passageiro> <Nome>Gabriela</Nome> <Assento>5</Assento> </Passageiro> </ns0:Reservas>

Pra isso, basta criar um novo projeto, criar os schemas e o mapper deve ficar parecido com isso.

image

 O exemplo pode ser encontrado em: http://loopingfunctoid.codeplex.com/

Até mais.

Seja o primeiro a comentar ;)

Postar um comentário

BizTalk 360

Visitas

Arquivo do blog