Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1365 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Prezados, eu sempre usei esta propriedade setada como true.
Mas de umas semanas para cá, começou a apresentar um erro no processo. A Nota era gerada, mas não retornava o xml e as informações da emissão.
Achei que fosse problema de timeout.
Hoje fiz um teste deixando esta propriedade como false e gerou rapidamente, sem erro.
Só que não retorna o numero da nfse. Ela vem em branco, e consequentemente no link para acessar a nota posteriormente vem  sem esta informação.

Reduzi o numero de tentativas da emissão para 1, pois fazendo o debug, percebi que na primeira vez já tinha o protocolo gerado, e quando entrava no loop abaixo da linha 6072 até 6135.

 with TACBrNFSe(FACBrNFSe) do
  begin
    if (Configuracoes.Geral.ConsultaLoteAposEnvio) and (Result) then
    begin
 

na quinta vez, que era o numero de tentativas setadas, retornava false, embora nas 4 primeiras retornasse true, na linha 6139 da unit ACBrNFSeWebServices e daí dá o erro no retorno, mas a nota e gerada.

      if not (Result) then
        FConsLote.GerarException( FConsLote.Msg );
 

Alguma luz ? Todos os componentes atualizados.

Meu cliente já está me olhando torto.

Grato.

Daniel.

 

Postado

Amigos, ainda sobre o meu post anterior.
Li algumas mensagens anteriores e entendi que o consulta lote, é exatamente para finalizar o processo.
Alterei minha rotina para fazer a consulta ao lote, acionada somente depois do retorno do envio, informando o rps, lote e o tipo.
Daí recupero as informações do numero e codigo de verificação para montar o link.
Funciona em alguns momentos, em outros recebo a mensagem que o lote não foi enviado para o servidor, embora a nota já esteja gerada, lá.
Alguém faz diferente disso ? Poderia compartilhar a experiência ?
Voltei o flag para consulta o lote após o envio e fiz um debug mais minucioso.
O enviadados, sempre retorna 200;
O problema é na consulta ao lote.
Depois de algums repetições, ele entra nesta rotina, com erro em branco. Não consegui identifcar, o que faz entrar nestar exception.

image.png.5b20d2e4d93ab7773841db71830b84d3.png
  

Pra mim não importa se a consulta é automatica ou comandada por mim, só preciso recuperar o numero da nota e codigo de verificação.
Aguardo sugestões.

Grato, mais uma vez.

 

  • Consultores
Postado

Bom dia Daniel,

A cidade de Curitiba possui um webservice próprio que chamamos de provedor ISSCuritiba.

O layout utilizado é a versão 1 da ABRASF.

Sendo assim devemos utilizar o método Enviar para poder enviar um lote contendo de 1 até 50 Rps.

Depois o método ConsultarSituacao para saber a situação do lote enviado.

Por fim o método ConsultarLoteRps caso a situação seja 3 ou 4.

Se a situação for 3 teremos como retorno a lista de rejeições, por outro lado se for 4 teremos como retorno o XML da(s) NFSe.

A propriedade de configuração: ConsultaLoteAposEnvio permite automatizar todo o processo acima, para isso o seu valor tem que ser True.

Como eu não tenho nenhum certificado digital de contribuinte de Curitiba não tenho condições de realizar testes.

Alias os testes que realizei com o novo componente só obtive erros ao tentar enviar, consultar e cancelar, pois estou usando um certificado cuja empresa não é de Curitiba.

Peço que faça testes usando o programa exemplo e não esqueça de atribuir o valor LT_TLSv1_2 ao campo SSLType, pois vários provedores estão exigindo essa configuração.

Marque também a opção para salvar os arquivos soap.

No programa exemplo execute os métodos de forma individual, temos um botão para cada um deles.

Anexe os arquivos gerados aqui no fórum para que possamos analisar.

Mas antes de realizar esses testes, por favor atualize todos os fontes de todas as pastas.

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

  • Consultores
Postado

Daniel,

Vamos tentar fazer o seguinte:

Primeiro você testa cada método separadamente conforme lhe orientei e anexa os XML aqui no fórum para que eu possa analisar.

Se eu conseguir descobrir o problema, ótimo, caso contrario vejamos essa questão do certificado.

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

Postado

Ítalo, boa tarde.

Acabei fazendo meio a meio o que vc orientou, e cheguei no seguinte ponto.
Usei minha rotina padrão, com o consultaloteaposenvio = true,  e com a ajuda do suporte da prefeitura, fui monitorando quando o xml chegava no servidor.
Tui debugando as ações como sempre dava erro  logoa pos o envio, coloquei um break na linha 6176  do acbrnfsewebservices, e linha 6193, tem o metodo Result := FEnviarLoteRPS.Executar, vi que o resultado foi true, isso é o xml foi enviado para o servidor.

Imeditamente chequei a lista de lotes no servidor, este ainda não estava lá, segui com o debug até a linha 6233, Result := FConsSitLoteRPS.Executar;

e antes de executar, chequei novamente a lista do servidor, e o lote estava lá, daí deixei correr a rotina, e finalizou a nota tranquilamente.
Creio que se passaram de 8 a 10 segundos até que eu checasse novamente e executasse.
Então, como recebia mensagem de erro que o xml não estava no servidor, imagino que a consulta deva ter um delay, não acha ?? Até porque estes que me retornavam a mensagem, quando eu consultava o servidor da prefeitura estavam emitidas regularmente.

Consegui me explicar ?
Decidi fazer isso, pois atualizei a rotina no cliente para um teste, para capturar os erros de processamento no servidor da prefeitura, e daí a primeira nota processou certinho, a segunda tb, já ia soltar foguete, quando a terceira deu o erro, mas estavam todas geradas na prefeitura. Então me veio a imaginação que talves fosse a consulta do lote, antes da liberação pelo servidor da prefeitura.

É a unica explicação que posso ter..

Bem, qual a sua sugestão para alterar o comando da consulta, para atrasar alguns segundos e eu conseguir testar se é isso mesmo ?

Muito obrigado pela paciência.

Daniel.

 

  • Consultores
Postado

Boa tarde Daniel,

Vamos as configurações;

Configuracoes.WebServices.

       AguardarConsultaRet por padrão esta com o valor zero se colocar 1000 ele vai aguardar 1 segundo para consultar o retorno

       Tentativas por padrão esta com o valor 5, isso indica que ele vai fazer até 5 tentativas de consulta a situação do lote.

       IntervaloTentativas por padrão esta com o valor 1000 se colocar 2000 ele vai aguardar 2 segundos entre uma tentativa e outra.

      TimeOut por padrão esta com o valor 5000 se colocar 30000 o componente vai aguardar até 30 segundos para levantar um erro.

Detalhe importante é que o TimeOut não congela a aplicação, pois se a resposta chegar em 1 segundo ele segue em frente.

Já o AguardarConsultaRet e IntervaloTentativas congela a aplicação.

Aconselho colocar no máximo uns 2 segundos para o AguardarConsultaRet e para o IntervaloTentativas e aumentar também a quantidade de tentativas para umas 10 ou 15.

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

Postado

Boa tarde Ítalo e demais membros do forum.

Estou retornando para informar que depois que ajustei as configurações da consulta do lote após o envio, conforme orientação do Ítalo, não recebi mais nenhum erro no retorno dos xmls.

Agradeço imensamente ao Ítalo, pela disposição em me esclarecer alguns fundamentos do componente como um todo e pela paciência com minha insistência na busca da solução.  Na segunda vai pra produção e daí retorno o resultado.

Bom fim de semana.

Daniel.

Postado

Aproveito o momento e faço mais um questionamento relacionado.
Eventualmente acontece uma mensagem igual à abaixo:
image.png.339a88f735c69f9e00d2537ec249cf5b.png
A unidade m:\ é unidade mapeada da rede onde os xmls são armazenados por cnpj.
Será influência do erro da consulta, que alterei os valores de tentativas e tempo de aguardo ? Vou aguardar o pessoal da empresa cliente executar em massa na segunda feira.

Grato.,

Daniel.


 

  • Consultores
Postado

Bom dia Daniel,

Como a Consulta a Situação do Lote é realizada varias vezes até que tenhamos a Situação igual a 3 ou 4, acredito que o tempo entre uma consulta e outra esta sendo curto em relação ao tempo que o servidor esta levando para liberar o arquivo para uma nova escrita.

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

  • Este tópico foi criado há 1365 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.