Revista MSDN Magazine Edição 01 - InfoPath Transforme a entrada do usuário em XML com formulários personalizados por meio do Office InfoPath 2003

Artigo Originalmente Publicado na MSDN Magazine Edição 01

Clique aqui para ler todos os artigos desta edição

 

InfoPath

Transforme a entrada do usuário em XML com formulários personalizados por meio do Office InfoPath 2003

por Aaron Skonnard

Este artigo pressupõe a familiarização do usuário com o Microsoft Office e a linguagem XML.

Resumo

O Office InfoPath 2003 é um novo produto do Microsoft Office que permite a criação dos seus próprios formulários de coleta de dados que, quando enviados, transformam em XML os dados fornecidos pelo usuário, a fim de que possam ser usados em qualquer processo XML. Com a solução InfoPath, você pode converter todos aqueles formulários em papel que utiliza com mais freqüência em formulários baseados no Microsoft Office, acabando assim com o ciclo de escrever e reinserir os dados à mão nos sistemas. Hoje em dia, as empresas começam a se dar conta do valor das montanhas de dados que reúnem diariamente e de como é difícil acessá-los e, por isso, estão lutando para extrair esses dados de forma mais eficaz. O InfoPath o ajudará na criação de sistemas eficazes de coleta de dados. Neste artigo, o autor mostra como dar os primeiros passos nesse processo.

As empresas dependem de informações para orientar os processos comerciais e a tomada de decisões. A qualidade e a precisão dessas informações são fundamentais, assim como a capacidade de reuni-las e analisá-las rapidamente.

As informações são registradas em vários formatos, sendo o mais primitivo (e provavelmente o mais comum) o formulário em papel. Pense em todos aqueles relatórios de despesas, avaliações do cliente, relatórios de viagens relacionadas a vendas e cartões de ponto. Os formulários podem ser mais fáceis de preencher, mas, depois, os dados coletados neles devem ser reajustados no sistema do computador (ainda em outro formato de dados) para serem usados por processos comerciais internos, o que pode causar o risco de erros humanos e de redundância, os quais diminuem a produtividade.

Os documentos de processamento de texto como os criados no Microsoft® Word ou no Excel também são comuns. Trabalhar com esses formatos também é um desafio, pois é difícil extrair as informações e os metadados deles por meio de programação.

A flexibilidade do XML permite que as empresas definam seus próprios esquemas XML para lidar com suas necessidades específicas de representação de dados. Estabelecendo definições bem conhecidas do esquema XML, qualquer processo comercial pode ser programado para consumir um documento XML e entender seu significado, graças ao suporte XML em praticamente todas as plataformas e linguagens de programação.

A plataforma Web Services é baseada no XML e o utiliza para a troca de informações por meio de protocolos como TCP, HTTP, SMTP e provavelmente muitos outros. A combinação do XML com esses protocolos de abertura possibilita criar uma infra-estrutura padrão para compartilhamento de informações entre processos comerciais.

Tudo o que é preciso para semear esses benefícios na empresa é uma maneira fácil de obter em XML os dados que eram anteriormente escritos à mão. O InfoPath, anteriormente conhecido como XDocs, é um novo membro dos produtos Microsoft Office System que lhe permite fazer exatamente isso.

O InfoPath proporciona um ambiente para a criação de formulários em torno de definições WSDL (Web Services Description Language) ou XML Schema. Em questão de segundos, você pode usar o InfoPath para criar um novo formulário que seja capaz de imprimir documentos XML de acordo com um XSD (XML Schema Definition) ou se comunicar com um Web Service de acordo com uma definição WSDL. Os Web Services XML e o InfoPath podem ser usados juntos para substituir as técnicas de coleta de informações herdadas.

O InfoPath é repleto de funções, incluindo excelentes recursos off-line e de funcionalidade para o cliente que superam os dos tradicionais Web Forms. E, o que é melhor, ele é muito mais fácil de usar que os tradicionais ambientes de desenvolvimento dos Web Services. Este artigo se concentrará nos principais recursos do InfoPath.

Visão geral do InfoPath

O InfoPath possui duas finalidades principais: a criação de modelos de formulário e o preenchimento de formulários. Para executar essas tarefas, é preciso que você instale o InfoPath na sua máquina. Quando executar o InfoPath pela primeira vez, você verá uma janela como a mostrada na Figura 1. Observe que tanto o menu File como a barra de tarefas (à direita) fornece uma opção para cada uma dessas tarefas principais.

 

Figura 1 O ambiente do InfoPath

 

O InfoPath oferece uma interface WYSIWYG fácil de usar para a criação de novos formulários, baseada em XSD ou em WSDL. Uma vez criado um novo modelo de formulário, o InfoPath permite que você o publique em um local centralizado, para que outras pessoas possam acessá-lo. Depois que o usuário navega até um modelo de formulário, o InfoPath abre o formulário e permite que o usuário o preencha. Quando o usuário termina, o formulário pode ser salvo ou enviado para processamento. A funcionalidade de salvamento do InfoPath permite que você trabalhe com formulários sem que esteja conectado à rede, fornecendo, de forma eficaz, um modo off-line. O envio do formulário pode incluir a postagem do arquivo XML para um diretório de site da Web ou para um ponto final do Web Service, por meio de SOAP.

 

Criando modelos de formulário

Ao criar um novo modelo de formulário, você pode começar do zero selecionando New Blank Form ou baseá-lo em uma fonte de dados existente, selecionando New em Data Source (veja a Figura 1). A lista de tarefas no painel da direita de um formulário em branco fornece links para as várias tarefas que você poderá executar quando estiver criando um novo formulário. Especificamente, você poderá controlar o layout do formulário, posicionar controles nele para capturar diferentes tipos de informações, definir como esses controles serão mapeados para a fonte de dados subjacente, talvez definir diferentes exibições de dados do formulário e, por fim, publicá-lo. Após selecionar New Blank Form, o InfoPath fornecerá uma superfície em branco, para a qual você poderá arrastar controles e a qual pode organizar de várias maneiras, conforme a necessidade.

Como alternativa, você poderá escolher dentre várias opções de layout, incluindo diversas tabelas e seções. O designer também permite que você altere facilmente esquemas de cores, fontes e outras características estéticas enquanto estiver criando o seu próprio formulário, e fornece uma paleta de controles internos que satisfaz a uma ampla faixa de necessidades de representação de dados. À medida que estiver criando o formulário, você poderá selecionar Preview Form para ver como ficará a aparência dele no momento em que for preenchido pelo usuário.

Como o formulário é criado a partir do zero, o InfoPath construirá automaticamente uma definição XML Schema nos bastidores para representar as informações que serão capturadas pelo seu formulário. Você pode definir explicitamente como cada controle mapeará para um tipo de dados XML Schema correspondente, manipulando o layout e as propriedades de cada controle posicionado no formulário. Por exemplo, veja o formulário da Figura 2, que captura informações de funcionários.

 

Figura 2 Novo formulário de funcionário

 

Quando criei esse formulário, defini a caixa de texto Name como do tipo xsd:string, a caixa de texto Salary como do tipo xsd:double e a caixa de texto Date of birth como do tipo xsd:date. O esquema produzido pelo InfoPath para representar essas informações é mostrado na Listagem 1. Infelizmente, você não tem muito controle sobre o esquema quando usa essa abordagem. A ordem em que você posiciona os controles determina a hierarquia do esquema. Seus únicos mecanismos para influenciar o esquema são as várias propriedades de layout e controle disponíveis por meio do designer WYSIWYG.

 

Se você preencher esse formulário de funcionário e salvá-lo em disco, o InfoPath produzirá um documento XML adequado ao esquema, como o mostrado em Listagem 2. Embora essa abordagem de “começar do zero” limite seu uso como um designer de XLM Schema, essa função nunca foi considerada prioritária. O objetivo fundamental do InfoPath é poder criar dinamicamente formulários a partir de definições XML Schemas ou WSDL existentes.

 

 

Começando pela definição XML Schema ou WSDL

Ao criar um formulário a partir de uma fonte de dados existente, você está essencialmente definindo um mapeamento entre a fonte de dados existente e o modelo de formulário. O InfoPath aceita as seguintes fontes de dados: documentos XML, XSD, bancos de dados (SQL Server™ ou Microsoft Access) e Web Services. Quando você seleciona New no menu Data Source, é exibido o Data Source Setup Wizard e você é solicitado a selecionar o tipo de fonte de dados que deseja utilizar.

Independentemente do tipo de fonte de dados que você decida usar no seu projeto, o InfoPath lerá os metadados disponíveis na fonte de dados e os exibirá em Data Source. Você poderá então arrastar e soltar os campos de fonte de dados para o formulário quando o estiver criando. Essa abordagem permite que a fonte de dados oriente a criação de formulários de uma maneira bem dinâmica.

Por exemplo, veja o esquema na Listagem 3, que representa as informações do autor em um sistema de publicação. Se você tiver criado um novo formulário baseado nesse esquema, o InfoPath exibirá todos os campos do esquema do autor no modo de exibição de fonte de dados à direita no painel de tarefa. Você poderá, então, arrastar e soltar os campos do esquema no formulário e organizá-los como desejar (veja a Figura 3).

 

 

Figura 3 Novo formulário de autor

 

Quando você preenche o formulário e o salva, o InfoPath cria um documento XML de acordo com a definição de esquema existente a partir da qual você começou a trabalhar. Nesse caso, seria criado um documento XML que se parecesse com o documento mostrado na Listagem 4.

 

 

Para criar um formulário para um Web Service, você deve seguir o mesmo processo, mas deve também especificar a localização do Web Service e fornecer a definição WSDL. O InfoPath extrai as definições de esquema da definição WSDL para criar o modo de exibição de fonte de dados com o qual você trabalhará. É preciso também mostrar como o formulário interagirá com o Web Service e indicar opções (como, por exemplo, se ele receberá e enviará dados para o serviço). Você pode criar um formulário que envie somente dados, um que receba somente dados e outro que envie e receba dados.

Se você escolher "Receive and submit data", o InfoPath criará dois modos de exibição para o formulário: um para enviar dados ao serviço e outro para os dados retornados do serviço. Nesse caso, o modo de exibição de fonte de dados também possui dois grupos de campos. O campo queryFields contém os dados que precisam ser fornecidos ao se chamar o serviço. O campo dataFields contém os dados retornados do Web Service. Você arrasta o queryFields para o modo de exibição Query e o dataFields para o modo de exibição Data. Quando o usuário preenche o modo de exibição Query e pressiona Calculate, o InfoPath chama o Web Service com as informações fornecidas e exibe o resultado no modo de exibição Data.

 

Salvando e publicando formulários

Depois que você criar um modelo de formulário, precisará salvá-lo e/ou publicá-lo. Observe que clicar no botão Save simplesmente salva o modelo de formulário em um arquivo. Você pode retornar ao modelo de formulário a qualquer momento e continuar trabalhando nele. O modelo de formulário é um arquivo independente que contém todas as informações necessárias para que outro usuário o preencha. Você pode extrair os vários arquivos que constituem um formulário, selecionando File | Extract Form Files. Esse procedimento gravará os vários arquivos no disco rígido, inclusive os arquivos XML Schema e XSLT usados internamente.

Selecionar Publish exibe o Publishing Wizard, que lhe permite distribuir o formulário preenchido para um local centralizado, acessível a outros usuários. Você pode publicar o formulário preenchido em vários locais: um compartilhamento de rede, uma biblioteca de formulários do SharePoint ou um diretório virtual em um servidor da Web, que podem ser facilmente percorridos pelos usuários com seu navegador da Web.

 

Preenchendo formulários

O objetivo da criação de um formulário é fazer com que os usuários o preencham. Depois que um formulário é publicado, os usuários podem acessá-lo diretamente do InfoPath, selecionando Fill Out a Form ou simplesmente navegando até o arquivo no Windows® Explorer ou no Microsoft Internet Explorer. Quando você navega até um formulário, o InfoPath abre o formulário no modo de “preenchimento” e permite que o usuário inclua dados nele (veja a Figura 4). Conforme mencionado, os usuários podem salvar os formulários no disco rígido local e, posteriormente, retornar para trabalhar neles (mesmo estando desconectados da rede). Em seguida, quando se reconectarem, eles os enviam normalmente.

 

Figura 4 Preenchendo um formulário

 

Um formulário salvo é simplesmente um documento XML de acordo com o esquema ou com o Web Service a partir do qual foi projetado. Por exemplo, o documento XML mostrado na Listagem 4 é o formulário salvo mostrado na Figura 4. Como você pode ver, o InfoPath injeta algumas instruções de processamento (PIs) nos documentos XML, o que permite ao carregador compreender que esse documento deve ser carregado de volta no InfoPath, e não no aplicativo padrão para documentos XML (normalmente o Internet Explorer). Quando você clica duas vezes em um arquivo XML que contém essas PIs, o Windows inicia automaticamente o InfoPath e permite que o usuário continue preenchendo o formulário salvo.

Um dos principais benefícios de se usar um formulário do InfoPath - em vez de um formulário tradicional da Web - é a excelente funcionalidade oferecida pelo ambiente de run-time. Por exemplo, o InfoPath fornece verificação ortográfica automática durante o preenchimento de um formulário, de forma muito parecida com o que ocorre no Word. Se o InfoPath detectar um erro de grafia quando você estiver inserindo dados, ele destacará a palavra com um sublinhado em curvas vermelhas e oferecerá sugestões para possíveis alterações.

O InfoPath oferece uma gama de recursos de validação que ajudam a garantir a qualidade dos dados. Ele fornece validação em tempo real em relação à definição XML Schema subjacente ao formulário, incluindo definições de tipo simples personalizadas, como as usadas na Listagem 3. Se o usuário inserir um valor que não esteja de acordo com o tipo do XML Schema subjacente ao controle, ele também será destacado com um sublinhado em curvas vermelhas, e uma útil mensagem de erro será fornecida na dica de ferramenta (tooltip) do controle. A validação em relação ao esquema também ocorre no momento do envio.

O InfoPath também oferece outros recursos avançados, como completar automaticamente a palavra, localizar e substituir, arrastar e soltar e suporte completo para impressão. Em termos gerais, trabalhar no InfoPath é como trabalhar em qualquer outro produto do Microsoft Office.

 

Enviando formulários

A etapa final é enviar o formulário preenchido. Essa etapa depende de certa forma do modo como o formulário foi projetado. Em alguns casos, o projetista pode desejar somente que o formulário seja salvo e posicionado em um diretório compartilhado em algum local. No entanto, o formulário geralmente precisará conter algum tipo de botão de envio. Para criar seu próprio botão de envio (Submit), arraste um controle de botão para o formulário, clique duas vezes nele e defina sua ação como Submit na sua janela Properties. Ao fazer isso, aparecerá uma caixa de diálogo. Nela, você pode especificar o que deverá ocorrer quando o usuário pressionar o botão.

 

Figura 5 Enviando um formulário por e-mail

 

O formulário pode ser enviado a um Web Service, a um diretório virtual em um servidor da Web ou por meio de um código de script. Também é possível enviar o formulário preenchido por e-mail, selecionando File | Send to Mail Recipient. Quando você faz isso, o InfoPath anexa o documento XML ao e-mail e inclui no corpo do e-mail o HTML da exibição que você enviou (veja a Figura 5).

 

Recursos avançados

O InfoPath possui muitos outros recursos avançados, dos quais falarei brevemente neste artigo. Um desses recursos é o rich text control que pode ser usado para inserir texto formatado (como texto anotado com diferentes fontes, em negrito ou itálico). Os rich text controls são mapeados para XHTML no documento XML subjacente. O rich text control possibilita incluir textos de forma livre, como você faria no Word, sem sacrificar as vantagens de trabalhar com XML nem perder as informações de formatação fornecidas pelo usuário.

Outro recurso avançado permite seções opcionais e repetidas. As seções opcionais podem ser ocultadas e exibidas a pedido, possibilitando a simplificação de formulários e a redução de lixo. As seções repetidas (ou listas/tabelas repetidas) permitem que você repita blocos de informações que ocorrem várias vezes em um esquema. O InfoPath também permite que você vincule controles repetidos a fontes de dados externas para preenchimento automático do controle.

Figura 6 Criando uma regra de validação

 

Por fim, o InfoPath oferece recursos de validação mais avançados que os oferecidos pelo XML Schema. Pressionar o botão Data Validation na página Properties de qualquer controle do formulário oferece duas opções para validação adicional. Uma opção é escrever o código de validação personalizado, usando um script para responder a um destes três eventos: OnBeforeChange, OnValidate e OnAfterChange. A outra opção é criar uma nova regra de validação, usando um conjunto de expressões e restrições predefinidas, como ilustrado na Figura 6.

 

Conclusões

O InfoPath é um novo produto do Microsoft Office que facilita o processo de coleta de informações de fontes heterogêneas por meio de formulários dinâmicos baseados em XML. No todo, o InfoPath facilita a criação, a publicação e o preenchimento de formulários eletrônicos baseados em XML e na tecnologia Web Services, que oferece muitas vantagens em relação às técnicas tradicionais usadas atualmente. Com o InfoPath, as empresas terão muito mais facilidade para compartilhar dados anteriormente inacessíveis com qualquer aplicativo que ofereça suporte a XML.

 

Para obter informações detalhadas, consulte:
The XML Files: A Quick Guide to XML Schema
The XML Files: A Quick Guide to XML Schema-Part 2
Understanding XML Namespaces
Understanding XML Schem

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados