Como chamar um serviço Web usando a tarefa Serviço da Web (vídeo do SQL Server)
Aplica-se a: SQL Server 2008 Integration Services |
Autores: Douglas Laudenschlager, Microsoft Corporation |
Duração: 00:10:57 Tamanho: 11,3 MB Tipo: arquivo WMV |
|
Resumo do vídeo
Saiba como chamar corretamente um serviço Web, a partir de um pacote do Integration Services, configurando um gerenciador de conexões HTTP e a tarefa Serviço da Web. Em seguida, configure uma tarefa XML para ler as informações recuperadas, e use essas informações no pacote.
Transcrição do vídeo
Olá. Meu nome é Douglas Laudenschlager, e trabalho na equipe de documentação do Microsoft SQL Server Integration Services.
Hoje, você aprenderá a chamar um serviço Web usando a tarefa Serviço da Web.
Você também aprenderá a:
- Configurar um gerenciador de conexões HTTP.
- Configurar a própria tarefa Serviço da Web.
- Baixar o arquivo WSDL que descreve o serviço Web.
- Chamar um método Web e fornecer os valores de entrada esperados.
- Ler o valor de retorno usando uma tarefa XML.
- E usar os resultados do serviço Web no pacote.
Estamos aqui no Business Intelligence Development Studio, onde já criei um projeto do Integration Services, abri o pacote e adicionei alguns dos componentes que precisamos para nossa demonstração.
Antes de trabalharmos no pacote, vamos dar uma olhada no serviço Web que usaremos. Este é um serviço Web público gratuito que faz conversões de moedas. Enquanto estamos aqui, vamos copiar a URL na área de transferência para usá-la em nosso pacote. Este serviço Web expõe um único método Web chamado ConversionRate
, que retorna taxas de conversão para a maioria das moedas internacionais. Quando testamos o serviço pedindo a taxa de conversão de dólares americanos para euros, a resposta XML que recebemos é a mesma que o nosso pacote receberá.
Vamos voltar ao nosso pacote. Primeiro, precisamos criar algumas variáveis de pacote. Precisamos de uma variável que contenha a resposta XML do serviço Web, que chamaremos de ConversionRateResponse
, e uma segunda variável para conter a taxa de conversão propriamente dita, que chamaremos de ConversionRate
. Ambos os valores são String.
O próximo pré-requisito para a tarefa Serviço da Web é um gerenciador de conexões HTTP que contenha a URL do serviço Web. Vamos adicionar uma nova conexão HTTP aqui, e colar a URL do serviço Web. Como precisaremos baixar o arquivo WSDL para o serviço Web, vamos adicionar ?wsdl ao final da URL. Agora vamos salvar o gerenciador de conexões...
...e estamos prontos para adicionar a tarefa Serviço da Web. Quando abrimos o Editor da Tarefa Serviço da Web, a prioridade é atribuir o gerenciador de conexões HTTP que acabamos de criar. Agora precisamos baixar o arquivo WSDL que descreve o que o serviço Web pode fazer... mas uma característica da tarefa Serviço da Web é que o botão Baixar WSDL (Download WSDL) não seja habilitado até você selecionar um arquivo local no computador. Portanto, vamos atender a essa exigência criando um documento de texto vazio com o nome CurrencyConvertor.wsdl. Em seguida, selecionamos o arquivo fictício que acabamos de criar, alteramos o valor de OverwriteWSDLFile de False para True, e agora podemos baixar o arquivo WSDL.
Vamos agora para a página Entrada (Input) do editor. Graças ao arquivo WSDL, a tarefa sabe tudo sobre o serviço Web. Podemos selecionar o serviço Web, selecionar seu método Web ConversionRate
e configurar a chamada ao método Web para solicitar a taxa de conversão de dólares americanos para euros.
Vamos à página Saída (Output) do editor. Queremos salvar a saída em uma variável (não em um arquivo), a variável que denominamos ConversionRateResponse
. Agora vamos salvar nossa tarefa Serviço da Web.
A resposta que nossa tarefa receberá é o documento XML que vimos quando testamos o serviço Web online. A partir disso, precisamos extrair a própria taxa de conversão. Para isso, usaremos uma tarefa XML.
A tarefa XML pode usar os documentos XML de diversas formas; portanto, ela tem muitas propriedades para configurar. O primeiro item que precisamos selecionar, embora não seja o primeiro da página, é a operação que queremos realizar: uma consulta XPATH no XML. Nossa origem XML na variável que denominamos ConversionRateResponse
. Queremos salvar o resultado da nossa consulta em uma variável, naquela que denominamos ConversionRate
, e substituir qualquer valor existente pelo valor atual. Vamos digitar nossa consulta XPATH diretamente, e consultar o nó "/double" que contém a taxa de conversão. Esta é uma operação XPATH para extrair Values
. Agora é só salvar nossa tarefa XML.
Quero mostrar a você uma técnica útil para verificar os valores de variáveis à medida que o pacote é executado. Vamos então definir um ponto de interrupção no evento OnPostExecute
da tarefa XML, e executar nosso pacote.
[pausa]
Agora o pacote entrou em pausa no ponto de interrupção que definimos, e podemos ir até a janela de Locais (Locals) e verificar o valor atual de qualquer variável do pacote. Se rolarmos a lista, encontraremos ConversionRateResponse
com a cadeia XML longa, e ConversionRate
apenas com a taxa. Se quisermos ver os dois em uma lista mais organizada, podemos usar o comando Add Watch
para adicioná-los à janela de Observação (Watch) separada.
Vamos agora executar nossa tarefa até o fim, parar a depuração e remover o ponto de interrupção que definimos.
Estamos prontos para estabelecer conexão e reabilitar a tarefa Fluxo de Dados que já comecei a configurar.
Primeiro usaremos uma origem OLE DB para extrair dados de uma exibição no banco de dados de exemplo AdventureWorks. Obteremos o sobrenome de cada pessoa e suas vendas até a data atual em dólares americanos.
Em seguida, usaremos a taxa de conversão obtida do serviço Web para adicionar uma coluna NEW, que converte as vendas até a data atual em euros. Para adicionar uma nova coluna, usamos a transformação Coluna Derivada. Vamos chamar nossa nova coluna de SalesYTDEuro, e defini-la com os valores da coluna SalesYTD multiplicados pela taxa de conversão que obtivemos do serviço Web. Inicialmente, precisamos converter a taxa de conversão, que é uma cadeia de caracteres, no tipo de dados numérico apropriado. Em seguida, vamos arredondar o resultado em duas casas decimais, e salvar nossa transformação Coluna Derivada.
Não queremos nos preocupar em salvar nossos dados de exemplo, então vou usar uma transformação Contagem de Linhas para encerrar o fluxo de dados. Esse é um atalho prático, e o único requisito é atribuir o valor da contagem de linhas a uma variável do pacote, o que pode ser ignorado.
Agora, adicionamos um Visualizador de Dados ao nosso fluxo de dados, para que possamos ver os resultados do nosso trabalho enquanto o pacote é executado. Vamos aceitar o formato de Grade padrão, e executar nosso pacote concluído.
[pausa]
Depois de alguns momentos, veremos que tudo funcionou conforme o esperado, e nossos dados agora contêm uma nova coluna com as vendas até a data atual convertidas de dólares para euros, graças à taxa de conversão que obtivemos do serviço Web usando as tarefas Serviço da Web e XML.
Neste vídeo, você aprendeu a chamar um Serviço Web usando a tarefa Serviço da Web.
Você também aprendeu a:
- Configurar um gerenciador de conexões HTTP.
- Configurar a própria tarefa Serviço da Web.
- Baixar o arquivo WSDL que descreve o serviço Web.
- Chamar um método Web e fornecer os valores de entrada esperados.
- Ler o valor de retorno usando uma tarefa XML.
- E usar os resultados do serviço Web no pacote.
Esperamos que você tenha aprendido funções novas e úteis neste vídeo. Depois de fechar este vídeo e retornar à página da Web, você encontrará outros vídeos do Integration Services disponíveis. Obrigado.