none
Consumir WCF através de Aplicação Access 2010/2013 RRS feed

  • Pergunta

  • Olá Pessoal,

    Estamos com um probleminha. Não encontramos nenhuma maneira de consumir um serviço WCF usando Código VBA no Access 2010, alguem tem uma idéia, ou ja passou por algo parecido??

    Para ficar claro gostariamos de fazer algo assim no código:

    Dim variavel As New ServiceProcess.ServiceProcessClient()
    variavel.metodoWCF
    Desde já agradeço.

    terça-feira, 27 de agosto de 2013 20:02

Todas as Respostas

  • Verifique este link: http://prasas.wordpress.com/2012/03/28/access-wcf-services-through-excel-vba/

    Não testei o código, mas parece útil.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 27 de agosto de 2013 23:34
    Moderador
  • Ola benzadeus,

    O exemplo não funcionou, sempre retorna o erro sintaxe inválida, ja mudei o endpoint para wsHttpBinding voltei para basicHttpBinding, mas o problema persiste. Alguma idéia?

    E sobre certificado e segurança, você acha que essa documentação(msdn) é completa o suficiente?

    quarta-feira, 28 de agosto de 2013 12:54
  • O parametro do GetObject esta assim:
    Dim connectionString As String
    connectionString = "service:mexAddress='http://localhost:8080/Servico/mex'" & _
    ", address='http://localhost:8080/Servico/'" & _
    ", contract=IServico, Servico=http://tempuri.org/" & _
    ", binding=BasicHttpBinding_IServico, bindingNamespace=http://tempuri.org/"
    
    quarta-feira, 28 de agosto de 2013 12:59
  • Olá, estou conseguindo acessar o meu serviço agora o problema é outro: não consigo executar um método do meu serviço:

    Estou debugando usando as dicas desse link e desse link, e o o erro é "Referencia de um objeto não definida para uma instância de objeto", parece obvio mas não encontrei o motivo do erro.

    Dim WebService As Object
    
    Set WebService = GetObject(addr) 'Aqui esta funcionando
    
    Dim ResultObject As String
    
    MsgBox (WebService.EstadoAtual) 'O Erro esta aqui
    
    AccessWCFService = ResultObject
    

    quarta-feira, 28 de agosto de 2013 20:31
  • No momento, não estou com um computador que consiga fazer testes. Assim que eu puder testar, volto a postar.

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 28 de agosto de 2013 22:28
    Moderador
  • Olá, Resolvi o problema mas ainda não atendeu por completo nossas necessidades.

    O contrato estava expondo métodos com retorno do tipo DataSet e isso parece interferir na maneira como o VBA access acessa o serviço.
    Com um contrato possuindo métodos com retornos de tipo primitivo somente, o serviço é acessado e consumido, mas isso gera uma limitação enorme, pois iria mudar toda a arquitetura do que já temos. Nem mesmo retornando com um ADODB.Recordset obtivemos sucesso. Pois segundo a propria exceção: um objeto do System._COMObjetct não pode ser serializado. Caso tenha alguma sugestão fico no aguardo.

    sexta-feira, 30 de agosto de 2013 11:08