Inquiridor
Consumir WCF através de Aplicação Access 2010/2013

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.
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
-
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? -
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/"
-
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
-
-
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.