Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Visual FoxPro - Produzindo XML Web Services, Notas de estudo de Informática

Manipulando XML via VFP.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 28/09/2010

francis-barrimbhal-8
francis-barrimbhal-8 🇧🇷

4.6

(16)

26 documentos

1 / 9

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Página 1iMasters - Por uma Internet mais criativa e dinâmica
9/28/2010 8:39:12 AMhttp://imasters.uol.com.br/artigo/1654/xml/produzindo_xml_web_services/imprimir/
Nilton Paulino Segunda-feira, 05 de janeiro de 2004
Produzindo XML Web Services
Oi Pessoal!
Estamos de volta com mais uma edição dessa coluna! Espero que todos estejam gostando. Estivemos afastados neste final de ano por causa das comemorações mas estamos
de volta! Foram muitas festas, confraternização entre os amigos e familiares.
Quero desejar a todos um ótimo 2004. Que seja um ano cheio de realizações em todas as áreas.
Festas à parte, vamos ao que realmente interessa... como prometi na coluna passada, estaremos mostrando como produzir XML Web Services a partir do Visual FoxPro.
Produzindo XML Web Services
Se você trabalha com programação orientada a objetos (OOP) não terá dificuldades em assimilar os conceitos utilizados na criação de classes de componentes para Web
Services. Se você programou componentes para seremexecutados no COM+ ou MTS terá então tudo nas mãos.
Um XML Web Service é um componente de uma classe pública (OLEPUBLIC) do Visual FoxPro rodando sob o SOAP Server (para maiores detalhes consulte http://
msdn.microsoft.com/soap/) e naturalmente também poderá (e até recomenda-se que seja) ser adicionada ao COM+ para melhorgerenciamento das Threads do componente
pelo sistema operacional.
A produção de um XML Web Service se em duas etapas: 1) a construção do componente COM; b) publicação do componente COM como XML Web Service.
Criando o Componente COM
Como a primeira etapa da criação do XML Web Service consiste em criar o componente, é isso que vamos fazer. O componente COM deverá ser compilado como uma
MTDLL (Multi-threaded DLL). Logo mais adiante veremos como compilar o componente comesta opção.
Para início, vamos criar um novo projeto e chamá-lo de consulta_ws. A este novo projeto vamos adicionar um novo PRG e chamá-lo de main. prg (poderia ser qualquer outro
nome). Veja como ficará o projeto na figura 1 logo a seguir.
Figura 1 - Janela do Projetct Manager
O conteúdo do nosso programa main.prg será o exibido na listagem a seguir. Logo abaixo da listagem, estaremos comentando os pontos importantes.
Listagem 1 - Código da Classe CPF, utilizada para consulta à situação cadastral de pessoa física do nosso exemplo.
pf3
pf4
pf5
pf8
pf9

Pré-visualização parcial do texto

Baixe Visual FoxPro - Produzindo XML Web Services e outras Notas de estudo em PDF para Informática, somente na Docsity!

Nilton Paulino Segunda-feira, 05 de janeiro de 2004

Produzindo XML Web Services

Oi Pessoal!

Estamos de volta com mais uma edição dessa coluna! Espero que todos estejam gostando. Estivemos afastados neste final de ano por causa das comemorações mas estamos de volta! Foram muitas festas, confraternização entre os amigos e familiares.

Quero desejar a todos um ótimo 2004. Que seja um ano cheio de realizações em todas as áreas.

Festas à parte, vamos ao que realmente interessa... como prometi na coluna passada, estaremos mostrando como produzir XML Web Services a partir do Visual FoxPro.

Produzindo XML Web Services

Se você já trabalha com programação orientada a objetos (OOP) não terá dificuldades em assimilar os conceitos utilizados na criação de classes de componentes para Web Services. Se você já programou componentes para serem executados no COM+ ou MTS terá então tudo nas mãos.

Um XML Web Service é um componente de uma classe pública (OLEPUBLIC) do Visual FoxPro rodando sob o SOAP Server (para maiores detalhes consulte http:// msdn.microsoft.com/soap/) e naturalmente também poderá (e até recomenda-se que seja) ser adicionada ao COM+ para melhor gerenciamento das Threads do componente pelo sistema operacional.

A produção de um XML Web Service se dá em duas etapas: 1) a construção do componente COM; b) publicação do componente COM como XML Web Service.

Criando o Componente COM

Como a primeira etapa da criação do XML Web Service consiste em criar o componente, é isso que vamos fazer. O componente COM deverá ser compilado como uma MTDLL (Multi-threaded DLL). Logo mais adiante veremos como compilar o componente com esta opção.

Para início, vamos criar um novo projeto e chamá-lo de consulta_ws. A este novo projeto vamos adicionar um novo PRG e chamá-lo de main.prg (poderia ser qualquer outro nome). Veja como ficará o projeto na figura 1 logo a seguir.

Figura 1 - Janela do Projetct Manager

O conteúdo do nosso programa main.prg será o exibido na listagem a seguir. Logo abaixo da listagem, estaremos comentando os pontos importantes.

Listagem 1 - Código da Classe CPF, utilizada para consulta à situação cadastral de pessoa física do nosso exemplo.

O código acima é todo o código necessário para o funcionamento do nosso Web Service conforme visto na coluna anterior.

Para o funcionamento do código acima precisamos criar um banco de dados com duas tabelas, conforme figura a seguir.

Figura 2 - Estrutura de dados do projeto

O banco de dados deve se chamar db.dbc.

As tabelas são cliente e ocorrência e suas estruturas são exibidas a seguir.

Tabela: Cliente

Campo Tipo Tamanho

id_cliente Character 4

nome Character 40

cpf Character 14

Tabela: Ocorrencias

Campo Tipo Tamanho

id_ocorrencia Character 6

id_cliente Character 4

fornecedor Character 40

tipodoc Character (^10)

dataocorrencia Date 8

valor Numeric 7,

numdoc Character 10

Conforme pôde ser visto na figura 2, há também uma Stored Procedure no banco de dados. Para não nos prolongarmos muito quanto ao banco de dados e nos centrarmos nos procedimentos da produção e publicação do Web Service, o código do projeto estará disponível no final da coluna para download.

Detalhes da Classe COM

O código da Listagem 1 inicia-se com o comando

Pronto! DLL criada e fase de codificação da classe COM terminada. Como a DLL criada é um servidor COM, ela já está registrada na máquina do desenvolvedor com o ProdID Consulta_ws.cpf (o nome do ProgID é sempre formado pelo nome do projeto mais o nome da classe OLEPUBLIC principal do projeto) e já pode ser instanciada com este nome. Caso você deseje testar a funcionalidade da classe antes de publicá-la como XML Web Service faça como na figura 5 para instanciar o objeto.

Testando o Componente COM antes de publicá-lo

Figura 5 - Instanciando a classe gerada para testá-la

É sempre bom fazer o maior número de testes possíveis antes da publicação do Web Service, sendo assim, caso seja necessário recompilar a DLL não haverá problema algum. Quando você publica o Componente (DLL) como Web Service e faz qualquer alteração na estrutura da classe como por exemplo a inclusão, remoção ou alteração de um método ou de seus parâmetros, você precisa fazer uma nova publicação do componente. Não há nada de errado em publicá-lo novamente, mas você poupará um bocado de trabalho de fizer os testes antes de publicá-lo.

Publicando o Componente COM como WSDL

Após finalizados os testes e tudo estiver OK, então é hora de partirmos para a publicação do nosso componente COM como XML Web Service gerando então o WSDL que descreverá sua estrutura e tipo de dados.

A geração do WSDL pode ser realizada por no mínimo duas formas diferentes, no entanto, vamos fazê-la através do WSDL Generator que vem junto com o SOAP Toolkit

  1. Por que não fazer com o XML Web Service Builder do VFP? Poderíamos fazê-lo sem problemas, mas temos que lembrar que na máquina do cliente onde o nosso Web Service irá executar na prática não existirá o VFP instalado.

Nota: Se você ainda não possui o SOAP Toolkit 3 instalado, deverá fazê-lo antes de prosseguir. Você poderá baixá-lo a partir de http://msdn.microsoft.com/soap/.

Vamos então à publicação do nosso componente como Web Service nas seguintes etapas:

Procure o grupo de programas Microsoft SOAP Toolkit Version 3 e clique no icone do WSDL Generator. Aparecerá a janela exibida na figura 6:

Figura 6

Clique no botão Next e na etapa seguinte você também poderá clicar em Next, uma vez que você não publicou seu componente nenhuma vez e ainda não possui nenhum arquivo de configuração gravado. Caso contrário, poderia especificar o arquivo de configuração e os dados das etapas seguintes já estariam preenchidos automaticamente. Passadas essas etapas, virá a etapa que você deverá informar o nome do XML Web Service e qual o componente COM será utilizado conforme figura 7:

Figura 7

Nota: Em se tratando da máquina do cliente, não se esqueça de registrar o componente primeiramente com regsvr32 ou no COM+, caso contrário uma mensagem de erro será retornada informando que o componente não possui métodos.

Após preenchidas as informações, clique em Next. Na etapa seguinte você deve selecionar quais são os métodos do Web Service estarão disponíveis para acesso. Em nosso caso, todos estarão. Confira:

Figura 8

Clique em Next. A próxima etapa é muito importante e você deve tomar o cuidado de preencher corretamente o endereço do Listener URI. Caso este endereço fique errado o funcionamento remoto do Web Service estará comprometido. É importante também que uma pasta virtual seja criada no IIS (no meu caso criei uma chamada CPF, dentro do site http://foxweb.foxtotal.com.br/) apontando para o local onde os arquivos .wsdl/wsml serão criados. Essa pasta necessariamente não precisa ser a pasta onde o componente COM está, mas nada o impede que seja também.

Figura 9