Criando Schema Flat File Posicional
Autor: Ruth Resende | Publicado: 2014-09-17T14:47:00-03:00

Vamos imaginar que precisamos criar schemas para receber um arquivo Flat File do tipo posicional.
Como esse:



Então o arquivo tem um cabeçalho, e o corpo como texto. 

Esse arquivo contem 3 campos:

CODIGO – Posicao 0 a 6
PRODUTO – Posicao 7 a 20
QUANTIDADE – Posicao 21 a 30


Importando o Schema


Crie um projeto do tipo Biztalk.
Esse arquivo vai se dividir em dois schemas, um representando o Header e o outro representando o Body.
1 - Clique com o botão direito em cima do projeto e em Add –&gt;; New Item. 




2 - Escolha a opção Flat File Schema Wizard.

3 - De um nome para o schema, aqui usei o schHeaderProduto.xsd.

4 - Clique em Add.

5 - A tela BizTalk Flat File Schema Wizard vai aparecer. Clique em Next. 

6 - No campo Instance file, procure a instancia do Arquivo que queremos importar.

7 - No campo Record Name, esse vai ser o Root do nosso schema. Nesse caso, coloquei Header.

8 - No campo Target namespace, podemos escolher o Namespace que o schema terá. Como o arquivo do Body deverá ter o mesmo namespace que o arquivo do Header, coloquei o valor http://BizTalk_Server_Project1.schProduto&nbsp;.

9 - No campo Code Page, deixei o UTF-8 que é o padrão. Porém se o arquivo contiver caracteres especiais sugiro escolher o Western-European (1252). Pois podemos ter problemas como descrito aqui.




10 - Clique em Next.
11 - Nessa tela devemos selecionar os dados que devem ser considerados. Útil quando o arquivo tem muitos registros.
12 - Selecione apenas o Header. 



13 - Clique em Next.
14 - Nessa tela ele pergunta como queremos identificar os registros, como o arquivo é baseado em posição, Escolha a opção By relative positions. 



15 - Clique em Next.
16 - Clicando na posição, delimite os campos, como no exemplo a seguir:



17 - Clique em Next.
18 - Nessa tela nomeie os campos com nomes sugestivos. 



19 - Clique em Next.



20 - Clique em Finish. O arquivo schHeaderProduto.xsd foi criado.
21 – Repita os passos de 1 ao 9 para criar o arquivo de schBodyProduto.xsd



22 - Clique em Next.
23 - Selecione somente os registros que representam o corpo do arquivo.



24 - Clique em Next.
25 - Como vamos criar um Record que se repete, escolha a opção By delimiter positions.



26 - Clique em Next.
27 - Nessa tela escolha o simbolo que delimita o registro. Aqui será o ENTER, representado pelo {CR}{LF}




28 - Clique em Next.

29 - No primeiro registro, no campo Element Name, coloque um nome para o Record, no caso Produtos.

30 - No campo Element Type, escolha o tipo Repeating record.

31 - E nos outros registros no campo Element Type, escolha Ignore.



32 - Clique em Next.
33 - Ficará assim:



34 - Clique em Next.
35 - Selecione o primeiro registro.



36 - Clique em Next.
37 - Escolha a opção By relative positions.



38 - Clique em Next.
39 - Clique no posição para delimitar os campos.



40 - Clique em Next.
41 - No campo Element Name, coloque nomes sugestivos.



42 - Clique em Next.




43 - Clique em Finish. E o arquivo schBodyProduto.xsd foi criado no seu projeto.


Ao abrirmos esse arquivo no Visual Studio, podemos notar que o Record Produtos foi criado com a propriedade Max Occurs igual unbounded. Isso quer dizer que esse Node pode se repetir várias vezes.




Hoje vimos como criar um schema de um arquivo Flat File Posicional. 



Mas somente criar o schema que representa o Arquivo não basta, para o BizTalk conseguir traduzir isso tudo para o XML, precisamos criar um Pipeline Customizado, como ensina meu amigo Sandro Pereira neste Post.



Até a próxima.