JUDSON ROSA Posted August 2, 2018 Report Share Posted August 2, 2018 Pessoal a titulo de informação: nosso cliente tem windows 10 home , ao usar o method PegaNomeCertificado , o nosso sistema , nao chama a tea para seleção do certificado e sai do sistema.o que podemos fazer ??? resposta da flexdocs: ************************** Data: 02-08-2018 10:50:17 Nome: Equipe Suporte Mensagem: Prezado Sr. judson rosa, Pelos relatos que tivemos de outros usuários, o erro reportado está relacionado com o plugin warsaw da GAS Tecnologia, a remoção do plugin seria uma solução, mas vai causar problemas com o cliente, pois vai impedir o uso do equipamento para acessar os bancos. ================================================================== POSSÍVEL SOLUÇÃO: DESINSTALAR O WARSAW E REINSTALAR NOVAMENTE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Apenas para passar um feedback para vocês: Hoje pela manhã meu colega foi até o cliente que possui certificado A3, removeu o Warsaw, reiniciou o computador, selecionou o certificado e emitiu uma NF-e sem problemas, porém o cliente insistiu em instalar o Warsaw novamente. Então meu colega re-instalou o Warsaw, reiniciou o computador e retirou o nome do certificado da nossa aplicação para testar se iria abrir a janela para seleção do certificado na hora de emitir a NF-e e segundo ele, a aplicação continuou funcionando sem problemas, tanto na seleção do certificado quanto na digitação do PIN. ================================================================== Como o problema ocorre somente quando usamos o pegaNomeCertificado passando "" no nomeCertificado para selecionar um novo certificado digital, o melhor seria não utilizar a funcionalidade para selecionar o certificado digital. O pegaNomeCertificado só é necessário utilizar uma única vez na aplicação para ter o nomeCertificado, ocasião que deverá ser informado com "" para abrir a caixa de diálogo de escolha de certificado digita, após obter o campo assunto do certificado digital no nomeCertificado, a aplicação deve armazenar o nomeCertificado junto com a licena de uso da DLL e não será mais necessário usar o pegaNomeCertificado. No equipamento que ocorre o problema relatado, utilize o certflex para ter o campo assunto, copie e cole na sua aplicação para contornar o problema. Se o utiliza o pegaNomeCertificado antes da chamada das demais funcionalidades, não é necessário alterar a aplicação, basta deixar o parâmetro nomeCertificado com a informação quando carregar a sua aplicação, assim, mesmo que a funcionalidade pegaNomeCertificado seja chamada, não vai dar problema, pois não haverá tentativa de abrir a caixa de diálogo para seleção do certificado digital. Estamos estudando uma forma alternativa para obter o nomeCertificado para evitar o problema reportado. Atenciosamente, Equipe de Suporte »Importante: A versão 3.10 do leiaute da NF-e vai ser desativada em 02/08/18.www.facebook.com/flexdocs Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 2, 2018 Report Share Posted August 2, 2018 Judson, sinceramente, não entendi a resposta da Flexdocs, ela recomenda não usar a funcionalidade? Não é melhor você dizer ao uçuário para instalar os lixos dos plugins de bancos em outra máquina que não seja a do faturamento? E que eu saiba, destruindos os plugins e instaladno a última versão do Warsaw, funciona de boa. Explique melhor qual foi a solução que você fez. Tá confuso pra karamba... Obg. Abs. Method PegaCertificado( Nome ) Class TVoNFeUtil2G local nRet, Mensagem:="", lRet := .t. Default Nome := If( !Empty( ::cCertificado), ::cCertificado, "" ) Try nRet:=::oNFEUtil:PegaNomeCertificado(@Nome,@Mensagem) CATCH MsgStop( "Atenção Usuário: " +CRLF+; "Instale um Certfificado Digital Válido Para Poder " +CRLF+; "Usar a Nota Fiscal Eletrônica. Se Você Não Tem um " +CRLF+; "Certificado Digital Válido, Consulte o Seu Contador " +CRLF+; "ou a Sua Certificadora de Certificados Digitais Tipo:" +CRLF+; "Serasa Experian, Certisign, Ar São Paulo, Boa Vista. " +CRLF+; "Pronova, Digital Sign, Etc. Você Que Escolhe... " +CRLF+; "Depois de Adquirir o Seu Certificado Digital, " +CRLF+; "Instale-o, e Entre no Programa da Nota Fiscal e: " +CRLF+; "<Click> no Botão: <Manutenção> Depois no: " +CRLF+; "Botão: <Trocar Certificado Digital da NF-e>. " +CRLF+; "Tecle <Enter> Para Continuar... ", ; "Instale um Certfificado Digital Válido da NF-e. " ) Return(.f.) End Try If nRet != 5402 // Erro ao Selecionar o certificado ::GeraLog(Mensagem) lRet:=.f. if ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem(Mensagem+"-"+ProcName()) ) #ELSE MsgStop( Mensagem+CRLF+ProcName(),CAPTION_MSG ) #ENDIF Endif Else ::cCertificado:=Nome Endif Return(lRet) Quote Link to comment Share on other sites More sharing options...
JUDSON ROSA Posted August 2, 2018 Author Report Share Posted August 2, 2018 no meu caso o cliente tinha esse plugin , e nosso sistema tava saindo ao selecionar o certificado ( igual ao seu method ) , so resolveu depois q fizemos o q a flexdoc recomendou , coloquei aqui pq pode ser q alguem precise . Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 Bom dia Judson, no meu caso o cliente tinha esse plugin , e nosso sistema tava saindo ao selecionar o certificado ( igual ao seu method ) , so resolveu depois q fizemos o q a flexdoc recomendou , coloquei aqui pq pode ser q alguem precise . Você poderia explicar melhor como fez isso? Como pega o nome do certificado? Eu tinha resolvido o problema desinstalando o warsaw mas o cliente insiste em usar o banco na mesma máquina (só tem uma) . Sds. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 9, 2018 Report Share Posted October 9, 2018 Salve os dados do certificado em um banco de dados de parâmetros por exemplo e pegue-o ao entrar no programa. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 9, 2018 Report Share Posted October 9, 2018 Por exemplo, campo com 250 caracateres: //-> venceu o Certificado IF CADPARAM->CERTIF=SPACE(250) .AND. ; LEN(ALLTRIM(oNFEUtil:cCertificado))>0 .AND. ; LEN(ALLTRIM(oNFEUtil:cCertificado))<=250 SELECT CADPARAM RLOCK() REPL CERTIF WITH ALLTRIM(oNFEUtil:cCertificado) REPL DTCERTIF WITH DTOC( oNFEUtil:dInicioValidade ) + ; DTOC( oNFEUtil:dFimValidade ) COMMIT UNLOCK cCertificado := ALLTRIM(CADPARAM->CERTIF) ELSE //-> Certificado nao venceu ainda e data Certif esta em branco SELECT CADPARAM RLOCK() REPL DTCERTIF WITH DTOC( oNFEUtil:dInicioValidade ) + ; DTOC( oNFEUtil:dFimValidade ) COMMIT UNLOCK cCertificado := ALLTRIM(CADPARAM->CERTIF) ENDIF Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 Ok, João tks. Vou fazer isso agora. Eu havia sugerido ele instalar uma máquina virtual só para os bancos, mas essa solução fica mais rápida. Sds. Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 João Help! Não funcionou. Qual e como deve ser informado o número do certificado? É somente o número de série mostrado na tela do certflex? Fornecendo somente o número, não funfa. Sds. Quote Link to comment Share on other sites More sharing options...
Valdir Posted October 9, 2018 Report Share Posted October 9, 2018 Rogério... Se não me engano, você usa a Classe do Gilmer. Utilize a função "SelecionarCertificado()" assim que acessar o Módulo da NFe. Depois que passei a fazer isso, não tive mais problemas para transmitir as NFe. Abrs. Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 Valdir, sim uso a Classe do Gilmer. Não encontrei essa função na classe :: SelecionarCertificado() Sds. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 9, 2018 Report Share Posted October 9, 2018 VONFEUTIL2G.PRG: Method PegaCertificado(Nome,Mensagem) Valdir 1 Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 João, voltando à minha pergunta acima: Qual e como deve ser informado o número do certificado? É somente o número de série mostrado na tela do certflex? Fornecendo somente o número, não funfa. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 9, 2018 Report Share Posted October 9, 2018 Method CertificadoSelecionado() Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 9, 2018 Report Share Posted October 9, 2018 Pegue todos os dados do certificado. Depois de gravar no banco invoque a classe: oNFEUtil:=tVoNFeUtil2G():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.t.,lNfeScan) {/code] Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted October 9, 2018 Report Share Posted October 9, 2018 Ok, descobri. Tenho que salvar o conteúdo completo CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS isso tudo é que forma o cCertificado. Testei no cliente e funcionou com o warsaw na memória. Tks 4 all. kapiaba and Valdir 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.