BizTalk Server - Transformar arquivos de texto (Flat Files) em XML (Parte III)
Criação da Pipeline para recepção do ficheiro de texto
Para criarmos A pipeline de recepção devemos aceder à solução criada no Visual Studio e efetuar os seguintes passos:
- Pressione o botão direito em cima do projeto no Solution Explorer, selecione a opção “AddàNew Item...”.
- Na janela “Add New Item”, selecionar o menu “Pipeline Files” nos templates, escolha a opção “Receive Pipeline” e, em seguida, forneça o nome que quer dar à pipeline, neste exemplo: “ReceivePipelineCustomPessoas.btp”
- Ao selecionar a opção “Add” irá aparecer o editor de pipelines, BizTalk Pipeline Designer, que irá permitir visualizar todas as etapas associadas à pipeline de recepção: Decode, Disassemble, Validate e ResolveParty. Neste caso, a Pipeline de que iremos criar, será responsável por receber um ficheiro de texto através de uma porta e convertê-lo para XML. Para isso, iremos utilizar o componente “Flat File Disassembler” que está disponível na Toobox à esquerda do Visual Studio. Arraste-o para dentro da Pipeline na etapa “Disassemble”.
- Para terminar, selecione o componente "Flat file disassembler", aceda às suas propriedades e na opção “Document Schema” selecione o schema criado anteriormente, no caso o “TXT_to_XML”.
Nota: Caso pretenda criar uma pipeline de envio por forma a transformando um documento XML em Flat File, teríamos de seguir os mesmo passos, a diferença é que teríamos de arrastar o componente “Flat File Assembler” na etapa “Assemble”
Publicar a solução para o servidor BizTalk
Todos os artefactos criados até o momento devem ser instalados no BizTalk Server 2010. No entanto antes de efetuarmos a publicação da solução existem algumas configurações que necessitamos de fazer/garantir:
- Antes de publicarmos a solução do Visual Studio para uma aplicação BizTalk é necessário que todas as assemblies do projeto estejam assinadas com uma strong name key, uma vez que as mesmas terão de ser instaladas na global assembly cache (GAC). Para isso necessitamos:
- No Visual Studio Solution Explorer, right-click sobre o nome do projecto e seleccione a opção “Properties”
- Selecione a tab Signing e escolha a opção “New” na drop down box “Choose a strong name key file”
- Atribua um nome, por exemplo “TXTtoXML.snk”
- Da mesma forma, antes de publicarmos a solução do Visual Studio para uma aplicação BizTalk, necessitamos primeiro definir as propriedades associadas com a publicação para o BizTalk, especialmente as propriedades do “BizTalk Group”. Se a solução no Visual Studio contiver vários projetos, teremos de configurar as propriedades separadamente para cada projecto.
- No Visual Studio Solution Explorer, right-click sobre o nome do projeto e selecione a opção “Properties”
- Selecione a tab Deployment e configure o nome que queremos atribuir à aplicação BizTalk na propriedade “Application Name”: “TransfFlatFilesEmXML Demo”. As restantes propriedades poderão ficar com os valores default.
- Para saber mais sobre estas propriedades aceda a http://msdn.microsoft.com/en-us/library/aa577824.aspx
Por fim podemos efetuar o Build e o Deploy do projeto por forma a este ser publicado numa aplicação BizTalk:
No entanto para podermos publicar uma solução no BizTalk, o utilizador terá de ser membro do grupo “BizTalk Server Administrators”. Se, nas propriedades de “Deployment”, a opção “Install to Global Assembly Cache“ estiver ativa, então também necessitará de permissões de leitura/escrita na GAC.
Configurar a aplicação BizTalk
Este é a última etapa deste processo. Por forma a podermos testar a solução que tivemos a desenvolver no servidor BizTalk, necessitamos de configurar a aplicação que foi criada na publicação.
Para isso teremos aceder à consola “BizTalk Server Administration” para criar e configurar:
- Uma porta de entrada para os ficheiros Flat File;
- Uma porta de saída para guardar os ficheiros transformados no formato XML.
Abra o “BizTalk Server Administration” através do menu Iniciar, Programas, Microsoft BizTalk Server 2010 e procure no menu “Applications” a aplicação chamada “TransfFlatFilesEmXML Demo”.
- Pressione com botão direito em cima de “Receive Port” e selecione a opção “New” e “One-Way Receive Port...”;
- Aparecerá uma nova janela para definição das propriedades da porta:
- Na tab “General” defina o nome da porta de recepção: “ReceiveTXT”.
- Na tab “Receive Locations”, seleccione “New” e defina o nome como “ReceiveTXT_to_XML”, seleccione a opção “Type” como FILE e selecione na drop down box da opção “Receive pipeline” a pipeline que criamos anteriormente: “ReceivePipelineCustomPessoas”;
- Na mesma tab selecione o botão “Configure”. Na janela “FILE Transport Properties” configure a opção “Receive Folder”, associando a pasta criada anteriormente “<solução>\PORTS\IN”. No campo “File Mask” coloque “*.txt” para definirmos que só será lido pelo BizTalk arquivos com a extensão “.txt”. Por fim selecione o botão “Ok”.
- Para terminar o processo de criação da porta de recepção pressione em “Ok”.
Os passos em cima referidos, foram necessários para criarmos uma Receive Port e uma Receive Location. Agora iremos criar uma Send Port para enviar os dados uma vez transformados pelo BizTalk:
- Pressione com o botão direito em “Send Ports”, selecione “New”, e em “Static One-way Send Port...”
- De seguida será apresentada uma nova janela:
- Na tab “General” defina o nome da “Send Port” como “SaveXMLFile”.
- Na opção “Type” seleccione a opção FILE;
- Na opção “Send Pipeline” defina a pipeline XMLTransmit. Esta é uma pipeline nativa que é usada para o processamento de uma mensagens XML.
- Na mesma tab seleccione o botão “Configure”. Na janela “FILE Transport Properties” configure a opção “Destination Folder”, associando a pasta criada anteriormente “<solução>\PORTS\OUT”. No campo “File name” coloque a seguinte informação: “%MessageID%.xml”, esta tag especial irá definir que o nome de cada arquivo escrito será um identificador único da mensagem dado pelo BizTalk. Por fim selecione o botão “Ok” para voltar à janela anterior
- Para o destino (Send Port) subscrever todos os ficheiros, vamos colocar um filtro na tab “Filters” com a seguinte expressão: “BTS.ReceivePortName == ReceiveTXT”.
- Nota: Esta configuração irá forçar que cada mensagem que aparecer na MessageBox que tenha entrado pela Receive Port com o nome ReceiveTXT será encaminhada para a Send Port que estamos a acabar de criar.
- Pressione em “Ok” para terminar a configuração da Send Port.
Por fim, apenas nos falta iniciar a nossa aplicação. Para isso pressione com o botão direito no nome da aplicação “TransfFlatFilesEmXML Demo” e selecione a opção “Start…”.
Testar a solução
Para testarmos a aplicação do BizTalk apenas temos de copiar um ficheiro Flat File para a diretoria que se encontra configurado na porta de recepção: “<solução>\PORTS\IN”. O resultado deverá aparecer na forma de um documento XML na pasta configurada na porta de saída: “<solução>\PORTS\OUT”.
Nota: O ficheiro desaparece automaticamente, pelo que deve evitar fazer drag&drop (move) com os ficheiros de teste sob o risco de não o voltar a poder usar.
Seja o primeiro a comentar ;)
Postar um comentário