CODIGO FONTE NF ELETRONICA ATUALIZADA 22-02-10
LOOZE, qual é seu msn?
Alguém já conseguiu converter a dll do Looze pra Vb6??
Esqueci o link, salvei no word. AÃ vai para usar em Vb6
Chamando Web Services de fora da plataforma .NET
Por Mauro Sant’Anna (santanna@mas.com.br). Mauro é um “MSDN Regional Director†(www.microsoft.com/rd), consultor e instrutor da MAS Informática (www.mas.com.br), tendo ministrado treinamentos na arquitetura .NET desde outubro de 2000.
Neste artigo veremos como chamar WebServices com o SOAP Toolkit para Windows 32 usando VBScript, Visual Basic 6.0 e Delphi.
A plataforma Microsoft .NET torna tanto a criação como a chamada de WebServices coisas muito simples. Eu sinceramente não recomendaria a utilização de nenhuma outra plataforma para criar WebServices. No entanto, podemos chamar os WebServices de maneira relativamente simples a partir de diversas plataformas e sistemas operacionais. Isto é particularmente importante, pois muitas vezes temos o controle do servidor mas não dos clientes.
Uma plataforma bastante importante é o Windows sem o .NET Framework instalado, a partir de alguma ferramenta de desenvolvimento “antiga†como por exemplo o Visual Basic 6 ou Delphi. Para estes casos, a Microsoft criou o SOAP Toolkit.
SOAP Toolkit
O SOAP Toolkit pode ser baixado gratuitamente do site http://msdn.microsoft.com/soap. Ele roda sob Windows 32 (Windows 98/98/ME/2000/XP e NT4) e NÃO exige que o .NET Framework esteja instalado no computador. O SOAP Toolkit traz diversos componentes COM para facilitar tanto a criação como a chamada de WebServices. Embora o SOAP Toolkit permita a criação de WebServices, estamos interessados apenas na chamada de WebServices.
Sugiro que você efetue o download e instale o software, usando as opções padrão.
A tÃtulo de exemplo, acessarei um site que contém diversos WebServices para testes, o http://www.xmethods.com. Observe na parte inferior da página o link “Delayed Stock Quoteâ€:
Clique no link e veja a descrição do serviço:
Observe alguns detalhes interessantes:
Embora boa parte dos WebServices listados em XMethods (em http://www.xmethods.com/ve2/Directory.po) seja implementado na plataforma Microsoft .NET, este que eu escolhi não é, o que é uma boa demonstração da capacidade dos WebServices em conectar diferentes plataformas;
A descrição do serviço dá o endereço do arquivo “WSDL†que descreve o WebService. Iremos precisar desta informação para chamar o serviço.
VBScript
A maneira mais simples de chamar o WebService é usando o objeto “MSSOAP.SoapClientâ€, instalado pelo SOAP Toolkit. Veja um exemplo em VBScript que pega o valor da ação da Microsoft (“MSFTâ€):
Dim Cotacao
Set Cotacao = CreateObject([Ô]MSSOAP.SoapClient[Ô])
Call Cotacao.MSSoapInit([Ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[Ô])
Valor = Cotacao.getQuote([Ô]MSFT[Ô])
MsgBox Valor
Veja a saÃda:
O programa acima faz o seguinte:
Cria uma instância do objeto COM “MSSOAPClientâ€;
Chama o método MSSoapInit passando para ele a URL com o documento XML que descreve o serviço em linguagem WDSL.
Visual Basic
Em Visual Basic podemos chamar o serviço com código muito semelhante ao anterior com “late bidingâ€, mas normalmente é preferÃvel carregar a “type library†e chamar o objeto COM com “early bidingâ€.
Crie um projeto novo em Visual Basic 6 e adicione componentes ao formulário de forma a ficar semelhante ao projeto a seguir:
Peça “Project | References†para adicionar a type library do SOAP Toolkit:
Selecione “Microsoft SOAP Type Library†e peça Ok. Dê um clique duplo no botão e entre o código a seguir:
Private Sub Command1_Click()
Dim S As New MSSOAPLib30.SoapClient30
Command1.Enabled = False
S.MSSoapInit ([Ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[Ô])
List1.AddItem (S.getQuote(Text1.Text))
Command1.Enabled = True
End Sub
Observe que o “early biding†funciona apenas para o próprio componente que chama o WebService (“MSSOAP.SoapClientâ€). O WebService em si será sempre chamado através de “late bidingâ€. Até onde eu sei, não é possÃvel criar uma “type library COM†automaticamente a partir de um documento WSDL, embora a conversão contrária, de “type library COM†para WSDL, seja suportada por um utilitário da própria Microsoft (wsdlgen.exe, incluÃdo no SOAP Toolkit).
Delphi
Assim como no Visual Basic, podemos chamar componentes COM no Delphi através de “late biding†desde o Delphi 2.0. Veja o código para chamar o WebService do nosso exemplo.
// Chamada de WebService com Early Biding
// Não se esqueça de colocar [Ô]uses ComObj[Ô]
procedure TForm1.Button1Click(Sender: TObject);
var
Cotacao: Variant;
Valor: single;
begin
Cotacao := CreateOleObject([ô]MSSOAP.SoapClient[ô]);
Cotacao.MSSoapInit([ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[ô]);
Valor := Cotacao.getQuote(Edit1.Text);
MessageDlg(FloatToStr(Valor), mtInformation, [mbOk], 0);
end;
Conclusão
O SOAP Toolkit permite chamar WebServices de maneira bem simples a partir de qualquer ambiente de programação que suporte componentes COM/ActiveX como VBScript, Visual Basic e Delphi.
Chamando Web Services de fora da plataforma .NET
Por Mauro Sant’Anna (santanna@mas.com.br). Mauro é um “MSDN Regional Director†(www.microsoft.com/rd), consultor e instrutor da MAS Informática (www.mas.com.br), tendo ministrado treinamentos na arquitetura .NET desde outubro de 2000.
Neste artigo veremos como chamar WebServices com o SOAP Toolkit para Windows 32 usando VBScript, Visual Basic 6.0 e Delphi.
A plataforma Microsoft .NET torna tanto a criação como a chamada de WebServices coisas muito simples. Eu sinceramente não recomendaria a utilização de nenhuma outra plataforma para criar WebServices. No entanto, podemos chamar os WebServices de maneira relativamente simples a partir de diversas plataformas e sistemas operacionais. Isto é particularmente importante, pois muitas vezes temos o controle do servidor mas não dos clientes.
Uma plataforma bastante importante é o Windows sem o .NET Framework instalado, a partir de alguma ferramenta de desenvolvimento “antiga†como por exemplo o Visual Basic 6 ou Delphi. Para estes casos, a Microsoft criou o SOAP Toolkit.
SOAP Toolkit
O SOAP Toolkit pode ser baixado gratuitamente do site http://msdn.microsoft.com/soap. Ele roda sob Windows 32 (Windows 98/98/ME/2000/XP e NT4) e NÃO exige que o .NET Framework esteja instalado no computador. O SOAP Toolkit traz diversos componentes COM para facilitar tanto a criação como a chamada de WebServices. Embora o SOAP Toolkit permita a criação de WebServices, estamos interessados apenas na chamada de WebServices.
Sugiro que você efetue o download e instale o software, usando as opções padrão.
A tÃtulo de exemplo, acessarei um site que contém diversos WebServices para testes, o http://www.xmethods.com. Observe na parte inferior da página o link “Delayed Stock Quoteâ€:
Clique no link e veja a descrição do serviço:
Observe alguns detalhes interessantes:
Embora boa parte dos WebServices listados em XMethods (em http://www.xmethods.com/ve2/Directory.po) seja implementado na plataforma Microsoft .NET, este que eu escolhi não é, o que é uma boa demonstração da capacidade dos WebServices em conectar diferentes plataformas;
A descrição do serviço dá o endereço do arquivo “WSDL†que descreve o WebService. Iremos precisar desta informação para chamar o serviço.
VBScript
A maneira mais simples de chamar o WebService é usando o objeto “MSSOAP.SoapClientâ€, instalado pelo SOAP Toolkit. Veja um exemplo em VBScript que pega o valor da ação da Microsoft (“MSFTâ€):
Dim Cotacao
Set Cotacao = CreateObject([Ô]MSSOAP.SoapClient[Ô])
Call Cotacao.MSSoapInit([Ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[Ô])
Valor = Cotacao.getQuote([Ô]MSFT[Ô])
MsgBox Valor
Veja a saÃda:
O programa acima faz o seguinte:
Cria uma instância do objeto COM “MSSOAPClientâ€;
Chama o método MSSoapInit passando para ele a URL com o documento XML que descreve o serviço em linguagem WDSL.
Visual Basic
Em Visual Basic podemos chamar o serviço com código muito semelhante ao anterior com “late bidingâ€, mas normalmente é preferÃvel carregar a “type library†e chamar o objeto COM com “early bidingâ€.
Crie um projeto novo em Visual Basic 6 e adicione componentes ao formulário de forma a ficar semelhante ao projeto a seguir:
Peça “Project | References†para adicionar a type library do SOAP Toolkit:
Selecione “Microsoft SOAP Type Library†e peça Ok. Dê um clique duplo no botão e entre o código a seguir:
Private Sub Command1_Click()
Dim S As New MSSOAPLib30.SoapClient30
Command1.Enabled = False
S.MSSoapInit ([Ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[Ô])
List1.AddItem (S.getQuote(Text1.Text))
Command1.Enabled = True
End Sub
Observe que o “early biding†funciona apenas para o próprio componente que chama o WebService (“MSSOAP.SoapClientâ€). O WebService em si será sempre chamado através de “late bidingâ€. Até onde eu sei, não é possÃvel criar uma “type library COM†automaticamente a partir de um documento WSDL, embora a conversão contrária, de “type library COM†para WSDL, seja suportada por um utilitário da própria Microsoft (wsdlgen.exe, incluÃdo no SOAP Toolkit).
Delphi
Assim como no Visual Basic, podemos chamar componentes COM no Delphi através de “late biding†desde o Delphi 2.0. Veja o código para chamar o WebService do nosso exemplo.
// Chamada de WebService com Early Biding
// Não se esqueça de colocar [Ô]uses ComObj[Ô]
procedure TForm1.Button1Click(Sender: TObject);
var
Cotacao: Variant;
Valor: single;
begin
Cotacao := CreateOleObject([ô]MSSOAP.SoapClient[ô]);
Cotacao.MSSoapInit([ô]http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl[ô]);
Valor := Cotacao.getQuote(Edit1.Text);
MessageDlg(FloatToStr(Valor), mtInformation, [mbOk], 0);
end;
Conclusão
O SOAP Toolkit permite chamar WebServices de maneira bem simples a partir de qualquer ambiente de programação que suporte componentes COM/ActiveX como VBScript, Visual Basic e Delphi.
Olá amigos ! primeiramente bom dia ...
A alguns dias somente que me surgiu um cliente que necessite da NFe, até agora estava tranquilo..pela correria estou gerando o arquivo TXT e o restante vocês já sabem..minha idéia é contriuir e poder ajudar no que for preciso para montar uma DLL, imagino o conceito que trabalho em equipe é bom para todos, vi várias DLLs e todas pagas e a maioria pagas por CNPJ, então neste carro estou enrolado a cada cliente que pegar. DESCULPEM-ME estar chegando um pouco tarde pois realmente só agora surgiu a necessidade. Se alguém precisar de algo estou a disposição e se alguém tiver alguma coisa para me auxiliar em VB6 (sem ser o arquivo TXT) que gero atualmente.fico grato. e no que depender de mim vou colocar em prática uma DLL agora que estou mais tranquilo assim que tiver algo.
A alguns dias somente que me surgiu um cliente que necessite da NFe, até agora estava tranquilo..pela correria estou gerando o arquivo TXT e o restante vocês já sabem..minha idéia é contriuir e poder ajudar no que for preciso para montar uma DLL, imagino o conceito que trabalho em equipe é bom para todos, vi várias DLLs e todas pagas e a maioria pagas por CNPJ, então neste carro estou enrolado a cada cliente que pegar. DESCULPEM-ME estar chegando um pouco tarde pois realmente só agora surgiu a necessidade. Se alguém precisar de algo estou a disposição e se alguém tiver alguma coisa para me auxiliar em VB6 (sem ser o arquivo TXT) que gero atualmente.fico grato. e no que depender de mim vou colocar em prática uma DLL agora que estou mais tranquilo assim que tiver algo.
LOOZE, Me passa seu msn. se puder lógico.
pedrosousa49@hotmail.com
pedrosousa49@hotmail.com
[txt-size=1]CAROS COLEGAS... USANDO SOAP Toolkit NÃO é POSSIVEL FAZER TODOS OS PROCEDIMENTOS REFERENTES A NOTA FISCAL ELETRONICA, VIA VB6?[/txt-size]
Olá a todos. Estou começando a procurar soluções para NF-E e achei este tópico hoje. Me parece que está tudo muito misturado, por isso acaba por não ajudar muito. Acho que seria interessante abrir um tópico ou montar um grupo para cada necessidade especÃfica. No meu caso, eu pretendo montar a solução exclusivamente em VB6. Trabalho há quase 10 anos neste ambiente, e tenho certeza que consigo fazer 100% dos recursos nele. Por isso, caso alguém compartilhe comigo especificamente deste interesse, pode me contatar diretamente por e-mail: nfe@tri.com.br. Lembrando que os objetivos são:
1 - Desenvolver as rotinas necessárias para a Nota Fiscal Eletrônica;
2 - Trabalhar exclusivamente com o VB6 (independente do banco de dados);
3 - Beneficiar aqueles que tiverem interesse em trabalhar no projeto, e não apenas [Ô]sugar[Ô] o conhecimento dos colegas;
4 - Compartilhar sugestões aqui no fórum do VBMania sobre o assunto.
Aguardo o contato dos interessados, para definirmos conjuntamente as metas do projeto.
Saudações!
Marinho
1 - Desenvolver as rotinas necessárias para a Nota Fiscal Eletrônica;
2 - Trabalhar exclusivamente com o VB6 (independente do banco de dados);
3 - Beneficiar aqueles que tiverem interesse em trabalhar no projeto, e não apenas [Ô]sugar[Ô] o conhecimento dos colegas;
4 - Compartilhar sugestões aqui no fórum do VBMania sobre o assunto.
Aguardo o contato dos interessados, para definirmos conjuntamente as metas do projeto.
Saudações!
Marinho
Marco Lacera: o problema maior é comunicar com o certificado digital pelo vb6.
Looze: adicionei os webservices de Minas para testar, ainda nao finalizei os testes, mas até onde já fui está tudo muito bom. PARABéNS PELO TRABALHO.
Fiz uma modificação (e ainda estou fazendo) para simplificar o uso da DLL. Assim que estiver funcional eu te envio para ver se vc resolve colocar no projeto final. Só está me faltando tempo para dedicar. O bicho tá pegando na empresa, então tá sobrando só o fim de semana mesmo.
Até mais.
Looze: adicionei os webservices de Minas para testar, ainda nao finalizei os testes, mas até onde já fui está tudo muito bom. PARABéNS PELO TRABALHO.
Fiz uma modificação (e ainda estou fazendo) para simplificar o uso da DLL. Assim que estiver funcional eu te envio para ver se vc resolve colocar no projeto final. Só está me faltando tempo para dedicar. O bicho tá pegando na empresa, então tá sobrando só o fim de semana mesmo.
Até mais.
Boa noite!
Conforme colega Tecla e Levii destacou, estou postando uma dica referente NFE. Apesar de ser básico,é apenas para conhecer seu funcionamento, acredito ser de grande valia para alguns.
Link: http://www.intra-ead.com.br/
Conteúdo Programatico:
- Conceito, uso e obrigatoriedade da NF-e
- Obrigações acessórias
- Modelo Operacional
- Emissão e autorização da NF-e
- Correção, cancelamento e inutilização de NF-e
- Envio da NF-e e da mercadoria ao destinatário
- Consulta de uma NF-e na Internet
- Escrituração das NF-e
- Contingência com a NF-e
- Pessoas FÃsicas
- Programa Emissor de NF-e
- DANFE (Documento Auxiliar da NF-e)
- Certificação Digital
- Nota Fiscal de Serviços e Nota Fiscal Conjugada
Obs: Segundo o site é imprenscindivel para: contadores, administradores, advogados, etc,
E por que não também para profissionais da informática!
abs
Conforme colega Tecla e Levii destacou, estou postando uma dica referente NFE. Apesar de ser básico,é apenas para conhecer seu funcionamento, acredito ser de grande valia para alguns.
Link: http://www.intra-ead.com.br/
Conteúdo Programatico:
- Conceito, uso e obrigatoriedade da NF-e
- Obrigações acessórias
- Modelo Operacional
- Emissão e autorização da NF-e
- Correção, cancelamento e inutilização de NF-e
- Envio da NF-e e da mercadoria ao destinatário
- Consulta de uma NF-e na Internet
- Escrituração das NF-e
- Contingência com a NF-e
- Pessoas FÃsicas
- Programa Emissor de NF-e
- DANFE (Documento Auxiliar da NF-e)
- Certificação Digital
- Nota Fiscal de Serviços e Nota Fiscal Conjugada
Obs: Segundo o site é imprenscindivel para: contadores, administradores, advogados, etc,
E por que não também para profissionais da informática!
abs
FGSANTOS. me passar seu msn. Estou tentanvo fazer o mesmo q vc fez só que de goiás. e não estou conseguindo. o LOOZE não quer me responder.
Obrigado.
Obrigado.
Tópico encerrado , respostas não são mais permitidas