Web Services

Como consumir Web Services no MS-Office

Por Renato Haddad

Web Services No MS-Office

Muitos artigos existentes sobre Web Services já estão disponíveis no MSDN, portanto, aqui não irei abordar o conceito, mercado e como criar Web Services no Visual Studio .NET. Partirei do princípio que você já sabe esta parte, no entanto, saiba que qualquer Web Service disponível que você tenha acesso, é possível aplicar nos exemplos vistos neste artigo.

Instalacao

O primeiro passo é fazer o download do Microsoft Office XP Web Services Toolkit 2.0 em http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/001/979/msdncompositedoc.xml, salve o arquivo offwstk.msi em uma pasta e descompacte-o para gerar o arquivo offwstk.exe. Com isso, você terá:

  • Web Services References Tool 2.0, atualizações para suportar o SOAP 3.0 e tipo de dados complexos;
  • Exemplos de Web Services para o Office;
  • Material de referência.

Em seguida, execute o arquivo offwstk.exe e siga o processo de instalação no esquema Next/Next/ Finish.

Cc564896.Web_services_off_1(pt-br,MSDN.10).gif

Clique em Start / All Programs / Office XP Web Services Toolkit / Office XP Web Services Toolkit Overview para abrir o Microsoft Office XP Smart Tag Enterprise Resource Kit. Selecione o link Web Service Reference Tool para abrir a tela de instalação do SDK. Dê um clique no link Setup.exe para instalar o Web Service Reference Tool. Clique no botão Open, responda as perguntas do Install e aguarde o processo até aparecer o botão Finish.

Pré-requisitos

Verifique os pré-requisitos para o Office XP Web Services Toolkit 2.0.

  • Sistema operacional: Windows 98, Windows 98 Second Edition, Windows Millennium Edition (Windows Me), Windows NT 4.0 com Service Pack 6 (SP6), Windows 2000, Windows XP;

  • Visual Basic for Applications 6.3, incluído no Office XP;

  • Internet Explorer 5.01 ou superior;

  • Instalar Windows Installer 2.0 (se for o Windows XP não é preciso, pois já existe);

  • Desinstalar qualquer outra versão do Office XP Web Services Toolkit.

Você pode fazer download do Windows Installer 2.0 nos seguintes endereços:

Windows Installer 2.0 Redistributable for Windows NT 4.0 and 2000: http://www.microsoft.com/downloads/release.asp?ReleaseID=32832 

Windows Installer 2.0 Redistributable for Windows 98 Second Edition , and ME: http://www.microsoft.com/downloads/release.asp?ReleaseID=32831 

Web Service no Office

Qualquer aplicação que necessite obter informações externas que se encontram em um local na WEB é passível de ser consumida no Office através de um Web Service, mesmo que essa informação precise de parâmetros, por exemplo, agência, conta e senha do banco, identificação do RG, placa do carro, etc.

O exemplo do Web Service a ser consumido neste artigo foi pesquisado no UDDI, cujo objetivo é fornecer diversos dados a respeito das condições de tempo nos aeroportos.

Excel

Crie uma planilha no Excel chamada ExcelComWebService com a seguinte estrutura:

Cc564896.Web_services_off_2(pt-br,MSDN.10).gif

Deixe a planilha aberta e pressione Alt + F11 para invocar o Visual Basic for Applications. Selecione o menu Ferramentas / Web Services Reference. Nesta janela você pode pesquisar um Web Service no UDDI (Web Service Search) através de palavras chaves ou negócios. Digite airport em keywords e pressione o botão Search. Veja que o resultado é mostrado com um checkbox disponível dos Web Services encontrados, portanto, selecione este chekbox. Caso queira testar um método, selecione-o e clique no botão Test.

Cc564896.Web_services_off_3(pt-br,MSDN.10).gif

Clique no botão Add para referenciá-lo no projeto. O próprio VBA inclui e define as classes do respectivo Web Service referenciado. Na janela do Project Explorer são criados três módulos de classe automaticamente contendo todas as descrições necessárias para invocar o Web Service.

Web_services_off_4.gif

Em seguida é preciso criar um módulo com as funções personalizadas a serem consumidas na planilha. Selecione o menu Inserir / Módulo e digite as seguintes funções que recebem o nome do aeroporto como argumento.

Public Function Temperatura(AirportName As String) 
Dim wsAirport As New clsws_AirportWeather 
Temperatura = wsAirport.wsm_getTemperature(AirportName) 
End Function 
Public Function Lugar(AirportName As String) 
Dim wsAirport As New clsws_AirportWeather 
Lugar = wsAirport.wsm_getLocation(AirportName) 
End Function 
Public Function CondicoesCeu(AirportName As String) 
Dim wsAirport As New clsws_AirportWeather 
CondicoesCeu = wsAirport.wsm_getSkyConditions(AirportName) End Function 
Public Function Visibilidade(AirportName As String) Dim wsAirport As New clsws_AirportWeather 
Visibilidade = wsAirport.wsm_getVisibility(AirportName) 
End Function 

Note a forma de instanciar o Web Service: Dim variável as New classe. A partir deste momento, todos os métodos desta classe podem ser consumidos. Retorne a planilha e insira as devidas funções nas respectivas células.

Web_services_off_5.gif

Veja o resultado com os dados processados.

Cc564896.Web_services_off_6(pt-br,MSDN.10).gif

DICA: Como o acesso a um Web Service é mais lento em relação a uma aplicação local, desative o cálculo automático e deixe no manual. Após todas as fórmulas criadas, pressione F9 para recalcular.

Access

Crie uma aplicação que tenha um formulário chamado frmCondicoesTempo com os seguintes controles:

Cc564896.Web_services_off_7(pt-br,MSDN.10).gif

Pressione Alt +F11 e repita o mesmo processo do Excel para referenciar o mesmo Web Service. Em seguida, insira o seguinte código no evento Ao Clicar do botão de comando Dados do Aeroporto:

Private Sub Comando11_Click() 
If Not IsNull(Me.aeroporto.Value) Then 
Dim area As String 
'instancia o web service 
Dim wsAirport As New clsws_AirportWeather 
area = Me.aeroporto.Value 
'invoca os métodos do web service 
Me.temp = wsAirport.wsm_getTemperature(area) 
Me.lugar = wsAirport.wsm_getLocation(area) 
Me.visibilidade = wsAirport.wsm_getVisibility(area) 
Me.condCeu = wsAirport.wsm_getSkyConditions(area) Else 
MsgBox "Digite o nome do aeroporto", vbInformation, "Alerts" 
End If 
End Sub 

Salve o formulário e execute com o nome do aeroporto igual a KMIA ou KLAS.

Cc564896.Web_services_off_8(pt-br,MSDN.10).gif

Agora que você já sabe como consumir um Web Service no Office, suas aplicações feitas em VB.NET, ASP.NET, C#, Mobile .NET ou em qualquer outra plataforma que suporte Web Services, já pode ser aplicada no MS-Office. Isso tudo graças ao XML, SOAP e WSDL, conceitos esses que vocês encontram em outros artigos disponíveis no MSDN.

Instalação do Web Service no Cliente

Quando uma aplicação MS-Office solicita um Web Service é preciso ter alguns arquivos instalados na máquina. Isso ocorre porque ninguém ficará instalando o Microsoft Office XP Web Service Toolkit nos clientes. A sugestão é que você crie um pacote de instalação através de algum aplicativo Windows Instaler ou Visual Studio .NET incluindo os seguintes arquivos:

  • Microsoft SOAP 3.0 MSM, cujo local padrão é C:\Program Files\Common Files\Microsoft Shared\Web Service Reference\Redist\soap_core.msm.

  • MSXML4.MSM, cujo local padrão é C:\Program Files\Common Files\Microsoft Shared\Web Service Reference\Redist\1033\MSXML4.MSM.

Desta forma você já tem disponíveis as bibliotecas do SOAP e XML. Caso tenha gerado o projeto de instalação pelo Visual Studio .NET, foi criada uma pasta chamada Debug abaixo da pasta original, neste caso, C:\MSDN\Debug. Estes são exatamente os arquivos a serem copiados em um CD para distribuição.

Use e abuse destes recursos para tornar as aplicações do MS-Office mais flexíveis, robustas e principalmente integradas na globalização.

Renato Haddad

rehaddad@msn.com 

Most Valuable Professional

Autor dos livros: "Access XP & VBA - Soluções Rápidas e Inteligentes" e "ASP.NET para Desenvolvedores ASP", entre outros - Editora Érica.

Faça o download deste documento:

Como consumir Web Services no MS-Office


downl.gif formato Word, 394 Kb    

Mostrar: