Ir para conteúdo
  • Cadastre-se

dev botao

Time Out NFSe Provedor Conam Municipio Taboão da Serra


Ver Solução Respondido por Jefferson Alves da Silva,
  • Este tópico foi criado há 507 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Prezados, boa tarde! 

Estou incluíndo o municipio de Taboão da Serra no sistema.

No programa de Exemplo do ACBrNFSeX o botão Emitir Nota (Novo) esta conseguindo fazer o Envio do Lote e sua respectiva consulta. 

Só não validou por que o CEP que esta Hard Code no exemplo não pertence a Nenhum município. 

Método Executado: ConsultarLote
 
Parâmetros de Envio
Numero do Prot: 3F56B31420F009957A4E
Numero do Lote: 
 
Parâmetros de Retorno
Situação Lote : 
Sucesso       : False
 
Erro(s):
Código  : Erro
Mensagem: PROTOCOLO [3F56B31420F009957A4E]  RPS [1]   SERIE [85] STATUS [Rejeitado]
Correção: 
---------

Porém no Sistema ao fazer o teste de envio estou recebendo Time Out ao Enviar o Lote. 

Erro(s):
Código  : X999
Mensagem: Erro de Conexão: Erro Interno: 12002
Erro HTTP: 0
URL: https://nfe.etransparencia.com.br/sp.taboaodaserra/webservice/aws_nfe.aspx
Erro: 12002 - TimeOut de Requisição
Falha Enviando a Requisição. Erro: 12002 - TimeOut de Requisição
Correção: 
--------

Olhando os XML do Lote não identifiquei nenhuma informação tão diferente do que é gerado pelo Exemplo. 

Segue os XML gerado e enviado pelo Sistema e Pelo Exemplo. 

Alguém poderia avalisar e ver se tem algo que não tenha notado entre um e outro para que o Servidor não responda. 

No debug ambos seguem o mesmo caminho e o Timeout se da ao consumir a Dll da Winhttp para fazer a requisição

function WinHttpSendRequest; external Winhttpdll name 'WinHttpSendRequest';

Tendo o Result False no Sistema e True no exemplo. 

image.png.4873dd6ce80926a38b6620ec92ba92db.png

 

 

 

 

 

1-env-lot-soap_erro.xml 1-env-lot_erro.xml 1-env-lot.xml 1-env-lot-soap.xml 1-rec.xml 1-rec-soap.xml

Link para o comentário
Compartilhar em outros sites

Italo bom dia! 

O 5000 esta no projeto de exemplo que esta batendo e sendo suficiente para comunicar.

No meu Código eu já tinha aumentado para 60.000 como pode ver abaixo.

 

image.png.bc14327d699838e7a565b54713c05d97.png

 

E mesmo assim continua a dar o TimeOut; 

No exemplo com 5 segundo vai rapidinho. Retorna o protocolo.

Ai coloquei 15 segundos de espera para consulta do lote e volta a rejeição por questão do CEP.

No sistema que não retorna nada. Só TIMEOUT

Link para o comentário
Compartilhar em outros sites

  • Consultores

Jefferson,

Se no programa exemplo esta funcionando, com certeza é algo errado na sua aplicação.

Primeira coisa, verifica se na pasta que esta o EXE não existe uma copia do arquivo ACBrNFSeXServicos.ini ou em outra pasta que a aplicação tenha acesso.

Caso afirmativo, delete esse arquivo.

Segundo, reveja a configuração da sua aplicação para saber se esta exatamente igual a do programa exemplo.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Complementando o que o Ítalo falou, o teste do programa de exemplo foi no mesmo computador que testou sua aplicação?

Se não foi, para usar o winCrypt todas as atualizações do Windows devem estar em dia, provavelmente o Windows não esteja atualizado e gerando o erro na aplicação.

Link para o comentário
Compartilhar em outros sites

Italo e Renato, boa tarde! 

Eu fiz os testes na mesma máquina. 

Não localizei o ACBrNFSeXServicos.ini duplicado em outra pasta que o Sistema tenha acesso. 

E as configurações pelo que conferi estão as mesmas. 

A diferença mesmo é os dados do RPS que no Exemplo Hard Code é um dado e no sistema é oriundo do banco de dados com dados mais reais. 

Eu enviei o XML da requisição para o Suporte da CONAM para eles validarem e ver se por acaso tem algo que ao bater lá gere uma excessão não tratada de modo que eu fique sem resposta provocando um time out.

No portal da nfse dessa prefeitura não gerou nenhuma nota.

Outro fato é que ao ir na consulta de RPS ele tem registro do último RPS recusado.

O último RPS recusado é o enviado pelo exemplo e não pelo Sistema. 

Então tenho ainda dúvidas se o lote esta chegando no destino.

Link para o comentário
Compartilhar em outros sites

Italo , boa tarde!

Estou aguardando o retorno do suporte da CONAM. 

Eles me enviaram um e-mail com um protocolo de atendimento e telefone. 

Pensei até em colocar o mesmo conteúdo hardcode no Sistema e comentar no código o preenchimento dos dados da nota.  

Vou esperar mais um pouco se não sinalizarem algo vou fazer isso. 

Eu reporto aqui o final da história.

Agradeço as dicas até então.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Consultores

Se quiser fazer mais um teste até o retorno do provedor, coloque o programa de exemplo na pasta da sua aplicação e veja se ainda funciona.

Se não funcionar tem algo na pasta a verificar, talvez dll, veja se está com a versão atualizada da LibXml2, que é distribuída com o componente, copie para a pasta da aplicação.

Se for certificado A1, tente com OpenSSL, copiando também as dlls para a pasta da aplicação.

 

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

Renato, eu fiz o teste recomendado de colocar o EXE do programa de exemplo na mesma pasta da aplicação e o programa exemplo continua a funcionar. 

O suporte da CONAM retornou solicitando ajuste no XML. 

O Reg90 esta ficando desconfigurado quando valores menor que 1,00.

No teste que fiz pela minha aplicação a nota de 10,00 dando 0,30 de ISS

Nota que fiz no exemplo de 100,00 com 3,00 de ISS talvez seja esse o problema.

Ainda não tive tempo de parar e testar com uma nota de valor maior. 

Segue abaixo a solicitação de correção do suporte do Provedor CONAM.

image.png.ca33183864ccf8ba3a421dbd87cb6149.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Jefferson,

Substitua a unit pela que esta em anexo.

Reinstale o ACBr e faça novos testes.

Conam.Provider.pas

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

@Renato Rubinho e @Italo Giurizzato Junior bom dia!

Eu coloquei o EXE do Programa de Exemplo na mesma pasta da Aplicação e ele funciona da mesma forma. 

Atualizei as DLL da LibXML2 e da OPENSSL 

Testando no programa exemplo com OPENSSL funciona.

Na minha aplicação ao invés de time out da HTTP 500 

image.png.b5973f7634233ed1ecb2d4c16fe6abb0.png

 

Em suporte com o Provedor Conam eles chegaram a pergunta se estou enviando em produção ou homologação e ao responder pediram para verificar se a URL é 

https://nfe.etransparencia.com.br/sp.taboaodaserra/webservice/aws_nfe.aspx?wsdl

a única diferença é  ?wsdl no final da url. 

 

 

image.png.777bc673054b1bb1b74942dfc36dc1bf.png

 

Cheguei a dar mais uma verificada na configuração do componente e não de diferente.

Teria mais alguma orientação ?

 

 

 

Link para o comentário
Compartilhar em outros sites

@Italo Giurizzato Junior

Boa Tarde!

O Provedor montou um XML ao qual eles dizem que dessa forma validou no sistema deles.

Segue em anexo o XML enviado por eles.

Comparando com o XML que esta sendo gerado notei algumas diferenças.

Gerou algumas tag a mais porém vazias , o Reg30 foi gerado , as tags estão com pré fixo "nfe:" em seus nomes. 

Por gentileza poderia verificar o XML enviado pelo provedor. 

image.png.8284a95fc3471c96d50ef61715e6be7e.png

taboao.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Jefferson,

Deixa eu ver se entendi:

No programa exemplo agora esta funcionando, por outro lado na sua aplicação não esta, correto?

Ambas as aplicações estão sendo executadas na mesma maquina ou em maquinas diferentes?

Se são maquinas diferentes favor copiar para dentro da pasta que tem o seu executável as DLLs que estão na pasta: ...\DLLs\OpenSSL\1.1.1.10\X86

E faça novos testes.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

@Italo Giurizzato Junior bom dia! 

No programa exemplo agora esta funcionando, por outro lado na sua aplicação não esta, correto?

R: Correto, no programa exemplo esta funcionando. O que estava impedindo a validação em 100% da NFSe era que no hardcode tinha um CEP inconsistente com o munícipio do tomador. Eles fazem a validação do CEP. 

Ambas as aplicações estão sendo executadas na mesma maquina ou em maquinas diferentes?

R: Sim mesma máquina, incluse coloquei na mesma pasta para testes. 

Eu atualizei as DLL da pasta e continuo com problema na minha aplicação. 

Quando uso wincrypt da Time Out e quando OPENSSL da HTTP 500 Host Not Found.

Ontém eu alterei os dados da NFSe que estavam em HardCode no programa exemplo e consegui validar a nota pelo programa de exemplo.

Mas continuo com problema quando tento emitir pela minha aplicação. 

Eu ja comparei as propriedades dos compomentes uma a uma. 

Abri dois delphi, coloquei monitor lado a lado e comparei e não identifiquei nada de diferente no que tange configuração do componente.

Fiz isso tanto no design do componente no object inspector como no código  na procedure ConfigurarComponente;

Desse modo a orientação do provedor CONAM de altera o XML não se sustenta. 

O real problema é que na minha aplicação não funciona.

O que me deixa encucaco é que tenho outros provedores funcinando na minha aplicação.

Eu atendo aqui , São Paulo, Diadema, Ourinhos, Campinas, Guarulhos e etc. São ai 3 provedores ISSSaoPaulo, GINFES , SMARAPD e ISSDF.

Normalmente quando tento incluir um provedor novo não tenho trabalho. preciso colocar somente alguns if  ACBrNFSeX1.Configuracoes.Geral.Provedor = novoprovedor  e tratar o preenhimento de coisas em particular. 

E Para ser sincero acredito que nem esta chegando a bater no provedor quando a requisição é feita pelo meu aplicativo.

Algo esta barrando e não sei o que.

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Jefferson,

Se no programa exemplo esta funcionando o que podemos descartar?

1. Não existe bug no componente;

2. Não se faz necessário a alteração que o provedor sugeriu;

3. O problema não é com a Internet;

4. O problema não é com o Windows (atualização);

A sua aplicação esta rodando na mesma maquina do programa exemplo e ela não funciona.

O que devemos checar?

1. Configuração do componente;

Foi feita e esta exatamente igual

2. Preenchimento das informações do serviço prestado.

Chegou a verificar se no nome do emitente ou destinatário ou na descrição do serviço contem caracteres especiais?

3. Verificar se não existe nenhuma linha de código referente a configuração do componente fora da procedure responsável pela configuração do mesmo.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo bom dia! 

Eu revisei novamente os itens apontados e continuo com o problema.

Segue abaixo

 

1. Configuração do componente;

Foi feita e esta exatamente igual

R: Não encontrei nenhuma diferença da configuração do componente.

2. Preenchimento das informações do serviço prestado.

Chegou a verificar se no nome do emitente ou destinatário ou na descrição do serviço contem caracteres especiais?

R: Nome do Emitente não vai no XML vai uma Hash de identificação para a empresa e outra para o usuário. Ambos estão indenticos ao utilizado no programa de exemplo

3. Verificar se não existe nenhuma linha de código referente a configuração do componente fora da procedure responsável pela configuração do mesmo.

R: Não tem nenhuma linha que altere as configurações fora da procedure que é responsável pelo mesmo. 

Indo na pasta de Schema desse provedor eu verifiquei um TXT com o Seguinte texto

O provedor não disponibilizou os schemas.
Logo o componente não tem como validar o envio do RPS, consulta ou cancelamento antes de enviar para o WebService.

Para que a conexão com o webservice do provedor Conam ocorra é preciso 
configurar a propriedade HttpLib com o valor httpWinINet.

Porém sem sucesso também usando o WinInet.

Configurações igual não estão funcionando estou testando as diferente agora.

Se tiver alguma nova orientação ficaria muito grato!

Link para o comentário
Compartilhar em outros sites

  • Solution

Italo, boa Tarde! 

Descobri o motivo de não funcionar na minha aplicação. 

A Configuração de proxy. 

É preenchido com dados persistido do banco de dados. 

E meu cliente tinha preenchido essa informação no banco dele.

Tirando isso passou a funcionar igualmente no programa de exemplo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Este tópico foi criado há 507 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...