Ir para conteúdo
  • Cadastre-se

dev botao

Web Service De Distribuição De Documentos Fiscais Eletrônicos


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

Recommended Posts

Será que as consultas realizadas para o antigo serviço (ConsultaNFDest) não estão contando para a "conta" do Consumo excesivo do novo serviço DistribuicaoDFe? Eu acordei agora depois de muita briga durante a noite, e de cara levei um Consumo excesivo de bom dia. Porém,  eu tenho um serviço rodando nos serviço usando o método antigo também em base de produção.

 

Olha, pode ser.

Continuo trabalhando com o ConsultaNDFest em ambiente de produção ao mesmo tempo.

 

Mas não sei...

Acho um absurdo algo assim acontecer. Nem o NSU é o mesmo, recomeçou do 0 nesse WS novo!

 

Será?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Batendo o recorde d perguntas de um membro em um dia só...

 

Chamei:

        ACBrNFe.DistribuicaoDFe(43,
                                dmnfe.tEmitentesCNPJ.Value,
                                '',
                                dmnfe.tmanifestoNSU.Value);
 
Passando então o NSU de uma nota JÁ MANIFESTADA como parâmetro.
 
ISTO deve me retornar o xml dela? Em qual propriedade?
 
Tentei 
   AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.docZip[0].XML
 
Mas me retorna apenas o resumido....... Onde está o completo?  (Estou usando os fontes alterados disponibilizados aqui no forum)
 
Grato!
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Desculpe a ignorancia aqui, mas na propriedade:
 
AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.docZip[0].XML
 
tenho apenas:
 
<resNFe xmlns:xsd="http://www.w3.org/2
 
     <xNome>SABOR DE CEU INDUSTRIA DE ALIMENTOS LTDA</xNome>
     <IE>0860169162</IE>
     <dhEmi>2015-01-28T00:00:00-02:00</dhEmi>
     <tpNF>1</tpNF>
     <vNF>2.48</vNF>
     <digVal>km+0VqpZ3DQzpk7YyNAtqwatYzk=</digVal>
     <dhRecbto>2015-01-28T08:36:51-02:00</dhRecbto>
     <nProt>143150015409726</nProt>
     <cSitNFe>1</cSitNFe><
/resNFe>
 
Ou seja, aí tenho apenas o resumido....
 
OBS: Esta nota fiscal JA FOI MANIFESTADA
Editado por danielpohren
Link para o comentário
Compartilhar em outros sites

AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.docZip[0].XML

 

que tal iterar sobre esse docZip?

 

pq aí vc está pegando o primeiro item do docZip, se fosse:

 

AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.docZip[1].XML

 

vc teria outro resultado...

 

Faça esse teste pegando outros itens do docZip[].

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Infelizmente só tem este item no retorno....

Tenho na minha base aqui apenas uma nota que recebi hoje e manifestei.... Dureza isto...

O Count me dizia 1 mesmo assim "teimei" em pegar o doczip[1] e deu p erro de indice de listagem fora de faixa.... Infelizmente me retornou apenas o item zero mesmo...

Consultando a chave na sefaz vejo que realmente manifestou a nota, tá lá nos eventos.... Meus cabelos que não estão branqueando estão caindo...

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo,

 

As informações dos eventos já estão sendo jogadas nas propriedades docZip.Items[y].resEvento?

 

 

Recebi como resultado de uma consulta 50 retornos.

Quando o tipo de retorno é de um resumo de nota, as propriedades são setadas com os valores corretos em docZip.Items[y].resNFe, pegos nas tags do arquivo em docZip.Items[y].InfZip.

Quando o tipo de retorno é um evento de nota, as propriedades em  docZip.Items[y].resEvento estão zeradas, mesmo estando corretas nas tags do arquivo em  docZip.Items[y].InfZip.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Daniel,

 

Se você informa o NSU do resumo da NF-e que você manifestou ao consultar novamente, é retornado o resumo.

 

Por favor leia a Nota Técnica, lá diz que ao manifestar é gerado um novo NSU para o procNFe, ou seja, a NF-e completa.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Então, Italo, estou entrando em depressão já...

Chamei 

 
ACBrNFe.DistribuicaoDFe(43, CNPJ, '0', '');
 
Deveria retornar TODOS os NSUs deste cnpj, desde o inicio, certo?
 

Tanto AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.ultNSU   quanto AcbrNFe.WebServices.DistribuicaoDFE.RetDistDFeInt.MaxNsu  me retornam "000000000001"

 

Isto não quer dizer que tem apenas 1 NSU disponível para este cnpj? Se passo "1" no parametro UltNsu me retorna só ele mesmo, de novo (o resumo). Se passo 2 me retorna "0", e cstat = 137...  Então, só tenho 1 NSU gerado? Onde foi parar minha manifestação?  É neste ponto que estou empacado....

 

Por eu ter manifestado usando o método antigo (não sei se tem um novo acho que manifestar continua do mesmo jeito) ele pode não ter gerado um NSU para a manifestação?

 

 

Obrigado mais uma vez.

Link para o comentário
Compartilhar em outros sites

Bom dia!

 

Estou realizando o processo de implementação da distribuição de documentos fiscais.

Faturei notas em homologação com o meu CNPJ para o mesmo CNPJ ou seja para eu mesmo.

 

Porém recebo a seguinte mensagem: "Nenhum documento localizado". cStat = 137.

Mas quando eu consulto no webService antigo elas aparecem. 

 

Alguém teve este tipo de problema?

Link para o comentário
Compartilhar em outros sites

Bruno,

 

eu não consegui retorno nenhum em modo de homologação. Não sei se alguem por aqui conseguiu.

Todos os testes estão sendo feitos em modo de produção.

Ao manifestar, estou fazendo somente ciencia da operação que não é conclusivo.

 

Darlana

 

Oi Darlana,

 

Estou usando o ambiente de homologação normalmente, inclusive estou manifestando as notas com o webservice antigo, e está funcionando normalmente.

Somente os eventos é que não estão sendo armazenados nas propriedades ainda.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Então, Italo, estou entrando em depressão já...

Chamei 

 
ACBrNFe.DistribuicaoDFe(43, CNPJ, '0', '');
 
Deveria retornar TODOS os NSUs deste cnpj, desde o inicio, certo?
 

Tanto AcbrNFe.WebServices.DistribuicaoDFE.retDistDFeInt.ultNSU   quanto AcbrNFe.WebServices.DistribuicaoDFE.RetDistDFeInt.MaxNsu  me retornam "000000000001"

 

Isto não quer dizer que tem apenas 1 NSU disponível para este cnpj? Se passo "1" no parametro UltNsu me retorna só ele mesmo, de novo (o resumo). Se passo 2 me retorna "0", e cstat = 137...  Então, só tenho 1 NSU gerado? Onde foi parar minha manifestação?  É neste ponto que estou empacado....

 

Por eu ter manifestado usando o método antigo (não sei se tem um novo acho que manifestar continua do mesmo jeito) ele pode não ter gerado um NSU para a manifestação?

 

 

Obrigado mais uma vez.

 

Confirmado... Recebi outra nota agora de outro cliente, e o NSU dela veio como 0000000000000002

Ou seja, a minha manifestação não gerou outro NSU.....

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia!

Depois de parar o serviço antigo (ConsultaNFeDestinadas), não tive mais problema com o Consumo indevido. Acho muito louco, mas parece mesmo que o controle de uso abusivo do SEFAZ está misturando as consultas dos 2 serviços (talves ele controle pela consulta às chaves e não aos NSUs).

 

Aproveitando o post, algúem já teve essa exception no DistribuicaoDFe?

"WebService Distribuição de DFe:- Inativo ou Inoperante tente novamente.- Erro: Requisição não enviada.12029 - A OLE DB error occurred. Code 80040E14h"

Editado por douglaswf
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Oi Douglas,

 

Resolvi esse problema alterando as configurações de segurança no Internet Explorer conforme arquivo anexo.

Otávio, bom dia!

 

vou fazer alguns testes conforme tua sugestão. Notei que só acontece no Win2008 R2 64 bits. Me parece mesmo relacionado ao CAPICOM. estou pensando em trocar por OpenSSL.

 

Obrigado!

Editado por douglaswf
Link para o comentário
Compartilhar em outros sites

Bom dia,

 

Percebi que muita gente está tendo problema com uso indevido, também notei que todos com o mesmo problema estão utilizando o ultNSU retornado pela consulta anterior, ou sejá, estão utilizando de forma errada as orientações da NT que diz:
 

Item 2.2

 

Para este  Web Service serão mantidos controles para identificar as situações de uso indevido de
sucessivas tentativas de busca de registros já disponibilizados anteriormente.

As novas tentativas serão rejeitadas com o erro “656–Rejeição: Consumo Indevido”

 

 

 

Item 2.5

 

A empresa deverá aguardar um tempo mínimo de uma hora para efetuar uma nova solicitação de
distribuição caso receba a indicação que não existem mais documentos a serem pesquisados na
base de dados do Ambiente Nacional. Se o NSU informado (tag:ultNSU) for igual ao maior NSU do
Ambiente Nacional (tag:maxNSU), então não existem mais documentos a serem pesquisados no
momento.

 

Notem que, quando ocorre o retorno de um lote consultado o valor retornado na tag ultNSU é equivalente ao ultimo documento retornado, ou seja, se utilizaro ultNSU pra iniciar a consutla seguinte irá gera consumo indevido. ver item 2.2 (sucessivas tentativas de busca de registros já disponibilizados anteriormente).

Portanto, nas consultas subsequentes utilizar o ultNSU+1, é a forma que eu faço aqui e não gera erro. Leio todos os registros diponiveis no loop (cerca de 200), só vai ocorrer novamente se não seguir a orientação do item 2.5 do manual.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde.

Estou conseguindo agora tratar o retorno do ACBrNFe.DownloadNFe 

Está gerando pra mim o XML compactado, mas copiei a função do Italo :) e consigo tratar os pedaços dele individualmente.  Compartilho aqui a solução, para ajudar um pouco também, aqui onde sempre sou ajudado. Como é um fonte pequeno, colo aqui.

 

Colocar no USES:  ZLibExGZ, synacode

 

Function DescompactaStr(vsInput: String): String;

var
   vsAux: String;
   StrStream: TStringStream;
begin
     vsAux := DecodeBase64(vsInput);
 
     StrStream := TStringStream.Create('');
     StrStream.WriteString(vsAux);
     Result := GZDecompressStr(StrStream.DataString);
     FreeAndNil(StrStream);
 
end;
 
 
Na rotina onde baixo o xml:
...
           ACBRNfe.Download;
           vsXMLRetorno := ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.retNFe.Items[0].procNFe;
 
           vsXmlCliente     := DescompactaStr(GetPedacoXml(vsXMLRetorno, 'NFeZip'));
           vsXmlProtocolo := DescompactaStr(GetPedacoXml(vsXMLRetorno, 'protNFeZip'));
 
....
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia,

 

Percebi que muita gente está tendo problema com uso indevido, também notei que todos com o mesmo problema estão utilizando o ultNSU retornado pela consulta anterior, ou sejá, estão utilizando de forma errada as orientações da NT que diz:

 

 

 

Notem que, quando ocorre o retorno de um lote consultado o valor retornado na tag ultNSU é equivalente ao ultimo documento retornado, ou seja, se utilizaro ultNSU pra iniciar a consutla seguinte irá gera consumo indevido. ver item 2.2 (sucessivas tentativas de busca de registros já disponibilizados anteriormente).

Portanto, nas consultas subsequentes utilizar o ultNSU+1, é a forma que eu faço aqui e não gera erro. Leio todos os registros diponiveis no loop (cerca de 200), só vai ocorrer novamente se não seguir a orientação do item 2.5 do manual.

 

Roberto, eu fiz este teste, e não concordo com a sua afirmação do NSU +1. Note que quando se solicita um NSU ao DistribuicaoDFE, são retornados lotes em que o NSU é MAIOR ao que foi solicitado. Por exemplo: Se eu envio NSU "0", recebo do 1 ao 50. Se eu envio 50, recebo do "51" ao "100". Eu inclusive fiz este teste e se for aumentar o ultimo NSU, a sequencia pula 1 (vai ficar faltando a informação de uma linha), e mesmo assim, eu recebia consumo indevido.

 

Como falei no post anterior, resolvi meu problema parando o serviço que consumia o WebService antigo (Consulta Nfs Destinadas).

 

Note insluve que na nota técnica, o item 2.4, seção a.1 diz :  "A aplicação cliente do WS deve informar o último número sequencial único (ultNSU) que possui."

Editado por douglaswf
Link para o comentário
Compartilhar em outros sites

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