Ir para conteúdo
  • Cadastre-se

dev botao

DistribuicaoDFe não retorna registro - AcbrLib + VB6


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

Recommended Posts

  • Membros Pro
Postado

Boa noite, na primeira chamada enviei com o NSU=0 o retorno foi o seguinte:
[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=10/12/2022 21:25:36
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000050
 

Depois de 1h eu executei passando como ultNSU = 50, tambem retornou CStat=137 e mulog.txtdou o ultNSU para 100.  O que pode estar errado?

  • Consultores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
Em 10/12/2022 at 22:58, sebastiao.freitas disse:

Boa noite, na primeira chamada enviei com o NSU=0 o retorno foi o seguinte:
[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=10/12/2022 21:25:36
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000050
 

Depois de 1h eu executei passando como ultNSU = 50, tambem retornou CStat=137 e mulog.txtdou o ultNSU para 100.  O que pode estar errado?

Bom dia!
A meu ver é uma situação estranha ele lhe retornar que não tem documentos disponíveis, mas lhe dar um maxNSU e um ultNSU que avança conforme você consulta que é o comportamento esperado quando se tem documentos disponíveis.
Meu palpite é que os documentos relacionados ao menos a estes 100 primeiros NSUs(precisa consultar do 100 até o 355 para ver se não vai retornar nada também) já passaram o prazo de 90 dias que eles ficam disponíveis na Sefaz.
Vale dizer que apesar disso é importante seguir o processo. Então você deve continuar consultando até que ultNSU = maxNSU, respeitando o intervalo de 1 hora caso recebe cStat 137, para não cair em consumo indevido.

  • Curtir 1
  • Obrigado 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado
2 horas atrás, Diego Foliene disse:

Bom dia!
A meu ver é uma situação estranha ele lhe retornar que não tem documentos disponíveis, mas lhe dar um maxNSU e um ultNSU que avança conforme você consulta que é o comportamento esperado quando se tem documentos disponíveis.
Meu palpite é que os documentos relacionados ao menos a estes 100 primeiros NSUs(precisa consultar do 100 até o 355 para ver se não vai retornar nada também) já passaram o prazo de 90 dias que eles ficam disponíveis na Sefaz.
Vale dizer que apesar disso é importante seguir o processo. Então você deve continuar consultando até que ultNSU = maxNSU, respeitando o intervalo de 1 hora caso recebe cStat 137, para não cair em consumo indevido.

Olá, Continuei as o maxNSU e não trouxe nenhum documento.

  • Consultores
  • Solution
Postado

Boa tarde,

2 horas atrás, Diego Foliene disse:

Meu palpite é que os documentos relacionados ao menos a estes 100 primeiros NSUs(precisa consultar do 100 até o 355 para ver se não vai retornar nada também) já passaram o prazo de 90 dias que eles ficam disponíveis na Sefaz.

Aparentemente essa suspeita do Diego deve ser o que está ocorrendo, junto com um bug da Sefaz, pois não deveriam enviar um maxNSU de um registro que não está mais disponível.

Outro indício de bug é retornarem cStat 137 quando o ultNSU ainda é menor que o maxNSU.

Este CNPJ ficou sem usar o serviço de distribuição por mais de 90 dias? Se ficou, os NSUs pararam de ser gerados para ele e só foram retomados após a nova consulta, não gerando registros retroativos.

Para ter certeza, acompanhe quando for emitida uma nova NFe contra este CNPJ e continue fazendo as consultas pelo ultNSU 355.

Se o problema persistir com novas NFes, provavelmente precisará abrir um fale conosco com a sefaz para averiguarem a situação.

  • Curtir 1
  • Obrigado 1
  • Membros Pro
Postado
1 hora atrás, Renato Rubinho disse:

Boa tarde,

Aparentemente essa suspeita do Diego deve ser o que está ocorrendo, junto com um bug da Sefaz, pois não deveriam enviar um maxNSU de um registro que não está mais disponível.

Outro indício de bug é retornarem cStat 137 quando o ultNSU ainda é menor que o maxNSU.

Este CNPJ ficou sem usar o serviço de distribuição por mais de 90 dias? Se ficou, os NSUs pararam de ser gerados para ele e só foram retomados após a nova consulta, não gerando registros retroativos.

Para ter certeza, acompanhe quando for emitida uma nova NFe contra este CNPJ e continue fazendo as consultas pelo ultNSU 355.

Se o problema persistir com novas NFes, provavelmente precisará abrir um fale conosco com a sefaz para averiguarem a situação.

Olá, vou monitorar esse cnpj e em paralelo vou consultar outro cnpj. Obrigado!

  • Curtir 2
  • Membros Pro
Postado (editado)

Boa tarde, testei com outro cnpj que tem bastante notas nos ultimos 90 dias. 

Na primeira chamada passando o ultNSU=0,teve o seguinte retorno:

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=12/12/2022 16:02:34
indCont=1
maxNSU=000000000011253
tpAmb=1
ultNSU=000000000000050
 

Na segunda chamada passei o ultNSU = 1150, teve o seguinte retorno:

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=12/12/2022 17:04:54
indCont=1
maxNSU=000000000011253
tpAmb=1
ultNSU=000000000011200
 
Nesse retorno a linha CUF=0 ta correta? Na chamada já olhei e ta passando corretamente o codigo correto da uf. 
Estou testando no ambiente producao, a linha tpAmb=1 está correta mesmo?

Grato,

 


 

Editado por sebastiao.freitas
  • Consultores
Postado

Boa noite,

Analisando o log do primeiro tópico, parece correto, mas por via das dúvidas pode informar como está chamando o método NFe_DistribuicaoDFePorUltNSU?

Este seu cenário está parecendo a chamada NFe_DistribuicaoDFePorNSU

Pode anexar os XMLs de distribuição recebidos *-dist-dfe.xml, ou passar por mensagem privada ou para [email protected] ?

4 horas atrás, sebastiao.freitas disse:

Nesse retorno a linha CUF=0 ta correta? Na chamada já olhei e ta passando corretamente o codigo correto da uf. 

A DistribuicaoDFe é feita pelo ambiente nacional, essa TAG não faz parte do xml de retorno, provavelmente é um resquício da antiga NFe Destinada, desconsidere.

4 horas atrás, sebastiao.freitas disse:

Estou testando no ambiente producao, a linha tpAmb=1 está correta mesmo?

Está correta.

  • Membros Pro
Postado
5 minutos atrás, Renato Rubinho disse:

Boa noite,

Analisando o log do primeiro tópico, parece correto, mas por via das dúvidas pode informar como está chamando o método NFe_DistribuicaoDFePorUltNSU?

Este seu cenário está parecendo a chamada NFe_DistribuicaoDFePorNSU

Pode anexar os XMLs de distribuição recebidos *-dist-dfe.xml, ou passar por mensagem privada ou para [email protected] ?

A DistribuicaoDFe é feita pelo ambiente nacional, essa TAG não faz parte do xml de retorno, provavelmente é um resquício da antiga NFe Destinada, desconsidere.

Está correta.

Olá, estou chamando conforme a DEMO em vb6:

Ret = nfe.DistribuicaoDFePorUltNSU(intUF_Emissor, strCNPJ_Emissor, intultNSU)

Não estou recebendo nenhum XML, simplesmente o retorno é que não foram encontrado documentos.

  • Membros Pro
Postado
54 minutos atrás, Renato Rubinho disse:

A DistribuicaoDFe gera xmls para a consulta e recebe xmls de retorno.

Veja alguns parâmetros da documentação, inclusive este com o caminho onde salvar os xmls e os que determinam se deverão ser salvos.

Download.PathDownload 

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

Mas se não retorna registro, vai gerar o xml mesmo assim? 

  • Consultores
Postado
9 horas atrás, sebastiao.freitas disse:

Mas se não retorna registro, vai gerar o xml mesmo assim? 

Bom dia!
Sim! Note no link indicado pelo Renato Rubinho as propriedades SalvarGer e SalvarWS.
A SalvarGer define se vai salvar o XML que enviado para a Sefaz na consulta e o XML que recebe da Sefaz na consulta.(Aqui é o arquivo tratado que geralmente é utilizado nos processos pela SW house e visto pelo usuário final)
Enquanto que a SalvarWS define se será salvo o Soap enviado na consulta e o Soap recebido.(Aqui é o arquivo que é enviado ao web service da Sefaz e o que é recebido dele, mas sem nenhum tratamento por parte do ACBr).
No seu caso, mesmo que não recebe os arquivos dos documentos fiscais, ainda é para gerar o arquivo que é enviado para a Sefaz e um arquivo com a resposta que você está recebendo de que não tem documentos disponíveis.
 

  • Obrigado 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado
31 minutos atrás, Diego Foliene disse:

Bom dia!
Sim! Note no link indicado pelo Renato Rubinho as propriedades SalvarGer e SalvarWS.
A SalvarGer define se vai salvar o XML que enviado para a Sefaz na consulta e o XML que recebe da Sefaz na consulta.(Aqui é o arquivo tratado que geralmente é utilizado nos processos pela SW house e visto pelo usuário final)
Enquanto que a SalvarWS define se será salvo o Soap enviado na consulta e o Soap recebido.(Aqui é o arquivo que é enviado ao web service da Sefaz e o que é recebido dele, mas sem nenhum tratamento por parte do ACBr).
No seu caso, mesmo que não recebe os arquivos dos documentos fiscais, ainda é para gerar o arquivo que é enviado para a Sefaz e um arquivo com a resposta que você está recebendo de que não tem documentos disponíveis.
 

Bom dia, o SalvarGer tá definido como 1. O SalvarWS tava =0 coloquei pra 1 pra ver o que vai mudar. A situação que testei foi a seguinte:

1. Chequei no e-fisco e vi q o CNPJ tinha notas em novembro e dezembro contra ele. Baixei os XML pra conferir
2. Solicitei a primeira consulta com NSU=0

Ret = nfe.DistribuicaoDFePorUltNSU(intUF_Emissor, strCNPJ_Emissor, intultNSU)

Não retornou nada. So o arquivo de mensagem informando q nao tinha documentos

3. Em seguida segui o ultNSU e enviei uma nova chamada(depois de 1h) passando o ultNSU=50

O retorno foi:

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=11/12/2022 20:15:11
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000100
 
4. Ai fiz a seguinte tentativa, Manifestei uma das CHAVES do mes de novembro que sabia que existia na sefaz e que estaria dentro do prazo de 90 dias

5. Em seguida fiz uma nova solicitacao passando novamente o ultNSU=0

Dessa vez veio a resposta informando que tinha documentos encontrados, nesse caso, apenas o da CHAVE que tinha manifestado.

DÚVIDA: No caso primeiro eu não devo receber os RESUMOS pra entao tratar e conforme o que vir eu fazer as MANIFESTAÇÕES? Como só ta vindo o RESUMO das notas que eu manifestei e como eu vou manifestar se nao sei as notas que chegaram?

Grato,

  • Consultores
Postado

Boa tarde Sebastião.

Acredito que você não entendeu como funciona o serviço de Distribuição de Documentos Fiscais Eletrônicos o DistribuicaoDFe.

Note que quando você informa o valor zero para ultNSU você tem a seguinte resposta:

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=11/12/2022 20:15:11
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000100

A partir do momento que no retorno consta o valor 100 em ultNSU é este que você tem que utilizar na próxima execução do DistribuicaoDFe.

Vamos lá,

Sempre, sempre utilizar o valor retornado em ultNSU na próxima execução.

Observe também o valor de maxNSU (355).

Ao executar o DistribuicaoDFe informando 100 para o ultNSU o webservice vai retornar os documentos de NSU igual a 101 até 150, uma vez que ele retorna um lote de até 50 documentos, no retorno desta consulta o valor de ultNSU vai ser 150.

O próprio passo é executar novamente o DistribuicaoDFe informando o valor 150 para o ultNSU, teremos como resposta os documentos de NSU igual a 151 até 200.

A próxima execução informamos 200 e teremos como retorno os documentos de 201 até 250.

A próxima execução informamos 250 e teremos como retorno os documentos de 251 até 300.

A próxima execução informamos 300 e teremos como retorno os documentos de 301 até 350.

A próxima execução informamos 350 e teremos como retorno os documentos de 351 até 355 (supondo que nenhum outro documento tenha entrado na fila).

Nesta ultima execução vamos ter o valor de ultNSU e maxNSU, ambos iguais a 355, neste caso devemos aguardar 65 minutos e fazer uma nova consulta informando o valor 355 para o ultNSU.

Por fim, a principio o DistribuicaoDFe só retorna o resumo da nota, para obter o XML completo devemos enviar um dos 4 eventos de Manifestação do Destinatário.

Em que momento devo enviar os eventos?

A dica é assim que você obtém o primeiro lote de resumos e devemos aguardas de 3 a 5 minutos para a próxima consulta, você pode usar esse intervalo de tempo para manifestar essas notas referente aos resumos retornados.

Dependendo da boa vontade do Ambiente Nacional, após a manifestação das notas ao executar pelo segunda vez o DistribuicaoDFe o maxNSU poderá aumentar em relação a primeira consulta, isso significa que o Ambiente Nacional liberou o XML completo das notas manifestadas ou entrou mais documentos na fila.

Detalhe importante:

Tenha em mente que o DistribuicaoDFe por retornar 4 tipos de documentos: resumo de uma nota, XML completo da nota, resumo de um evento ou XML completo de um evento.

Espero ter ajudado.

  • Curtir 2
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

  • Membros Pro
Postado (editado)
17 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Sebastião.

Acredito que você não entendeu como funciona o serviço de Distribuição de Documentos Fiscais Eletrônicos o DistribuicaoDFe.

Note que quando você informa o valor zero para ultNSU você tem a seguinte resposta:

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=11/12/2022 20:15:11
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000100

A partir do momento que no retorno consta o valor 100 em ultNSU é este que você tem que utilizar na próxima execução do DistribuicaoDFe.

Vamos lá,

Sempre, sempre utilizar o valor retornado em ultNSU na próxima execução.

Observe também o valor de maxNSU (355).

Ao executar o DistribuicaoDFe informando 100 para o ultNSU o webservice vai retornar os documentos de NSU igual a 101 até 150, uma vez que ele retorna um lote de até 50 documentos, no retorno desta consulta o valor de ultNSU vai ser 150.

O próprio passo é executar novamente o DistribuicaoDFe informando o valor 150 para o ultNSU, teremos como resposta os documentos de NSU igual a 151 até 200.

A próxima execução informamos 200 e teremos como retorno os documentos de 201 até 250.

A próxima execução informamos 250 e teremos como retorno os documentos de 251 até 300.

A próxima execução informamos 300 e teremos como retorno os documentos de 301 até 350.

A próxima execução informamos 350 e teremos como retorno os documentos de 351 até 355 (supondo que nenhum outro documento tenha entrado na fila).

Nesta ultima execução vamos ter o valor de ultNSU e maxNSU, ambos iguais a 355, neste caso devemos aguardar 65 minutos e fazer uma nova consulta informando o valor 355 para o ultNSU.

Por fim, a principio o DistribuicaoDFe só retorna o resumo da nota, para obter o XML completo devemos enviar um dos 4 eventos de Manifestação do Destinatário.

Em que momento devo enviar os eventos?

A dica é assim que você obtém o primeiro lote de resumos e devemos aguardas de 3 a 5 minutos para a próxima consulta, você pode usar esse intervalo de tempo para manifestar essas notas referente aos resumos retornados.

Dependendo da boa vontade do Ambiente Nacional, após a manifestação das notas ao executar pelo segunda vez o DistribuicaoDFe o maxNSU poderá aumentar em relação a primeira consulta, isso significa que o Ambiente Nacional liberou o XML completo das notas manifestadas ou entrou mais documentos na fila.

Detalhe importante:

Tenha em mente que o DistribuicaoDFe por retornar 4 tipos de documentos: resumo de uma nota, XML completo da nota, resumo de um evento ou XML completo de um evento.

Espero ter ajudado.

Bom dia, já agradeço sua atenção.

Eu realmente pensei que quando eu passasse uma chamada tipo:

Ret = nfe.DistribuicaoDFePorUltNSU(intUF_Emissor, strCNPJ_Emissor, "100") 

Ao receber a resposta :

[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=11/12/2022 21:46:40
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000150
 

O CStat viria "138" com o lote de NSU (101 ao 150) para que eu tratasse e gravasse no banco. 
No caso se eu recebo um CStat = 137 eu deveria aguardar 1h para próxima consulta.

Sendo assim, como eu vou pegar os documentos (resumos) desse lote de 101 a 150 e saber quais notas vou ter q manifestar?

 

 

Editado por sebastiao.freitas
  • Consultores
Postado

Bom dia Sebastião,

Se no retorno temos o valor 150 para ultNSU isso significa que outra maquina da empresa ou do contador já baixou esses documentos.

Isso precisa ser verificado, pois somente uma maquina pode fazer essas consultas.

  • Curtir 1
  • Obrigado 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

×
×
  • 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.