Trabalhando com Functoid “Cumulative Concatenate”
quarta-feira, 18 de agosto de 2010
|
|
Passando pelo fórum de Biztalk do MSDN, me deparei com esse post, onde alguém precisava concatenar vários registros e mapeá-los para apenas um.
Meu primeiro pensamento foi: Não dá pra fazer isso com o mapeamento e functoid.
É uma coisa boa estarmos sempre aprendendo, e descobri que é possível resolver esse problema com mapeamento sim, usando o functoid “Cumulative Concatenate”.
Então a mensagem de entrada seria assim:
A mensagem de saida depois do mapeamento:
Criando o Projeto
Criar uma mensagem de entrada.
Nunca tive essa necessidade, mas é sempre bom saber o que o Biztalk é capaz de fazer, certo?
O projeto com o exemplo pode ser baixado nesse link.
Até.
Meu primeiro pensamento foi: Não dá pra fazer isso com o mapeamento e functoid.
É uma coisa boa estarmos sempre aprendendo, e descobri que é possível resolver esse problema com mapeamento sim, usando o functoid “Cumulative Concatenate”.
Então a mensagem de entrada seria assim:
<ns0:Informacao xmlns:ns0="http://SampleCummulativeFunctoid.schDados"> <Dados> <Nome>A</Nome> <NumeroDoc>123</NumeroDoc> </Dados> <Dados> <Nome>B</Nome> <NumeroDoc>456</NumeroDoc> </Dados> <Dados> <Nome>C</Nome> <NumeroDoc>789</NumeroDoc> </Dados> </ns0:Informacao>
A mensagem de saida depois do mapeamento:
<ns0:Informacao xmlns:ns0="http://SampleCummulativeFunctoid.schDados"> <Dados> <Nome>A|B|C</Nome> <NumeroDoc>123|456|789</NumeroDoc> </Dados> </ns0:Informacao>
Criando o Projeto
- Crie um novo projeto de Biztalk em branco.
- Adicione um schema conforme o exemplo acima.
- Adicione um novo mapeamento, e em Source Schema e Destination Schema escolha o schema que acabamos de criar no passo 2.
- Adicione o functoid “String Concatenate”. O primeiro parâmetro deste functoid será o node “Nome” e o segundo parâmetro o caractere “|”.
- Adicione o functoid “Cumulative Concatenate”, que fica na aba “Cumulative Functoid”.
- Ligue o resultado do “String Concatenate” ao functoid “Cumulative Concatenate”. E ligue este functoid ao Node “Nome”.
- Repita os passos 4, 5 e 6 para o Campo NumeroDoc.
Criar uma mensagem de entrada.
- Salvar em um arquivo XML.
- Setar a propriedade “Test Map Input Instance” apontando para o caminho físico da mensagem de entrada.
- Clicar com botão direito em cima do mapeamento e escolher “Test Map”.
Nunca tive essa necessidade, mas é sempre bom saber o que o Biztalk é capaz de fazer, certo?
O projeto com o exemplo pode ser baixado nesse link.
Até.
Seja o primeiro a comentar ;)
Postar um comentário