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

Assistir a este vídeo

Tópicos da Ajuda relacionados:

Tarefa Serviço da Web

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.