Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde.

A modificação realizada pelo @Italo Jurisato Junior na revisão 12405 do SVN causou um efeito inesperado em nossos sistemas, fazendo com que o XML dos eventos rejeitados fiquem em branco, não gravando as informações corretamente no banco de dados.
O problema ocorre porque independente do retorno eu envio o XML para o banco de dados, e a partir dele eu extraio as informações para os respectivos campos da tabela.

Citar

[*] A função TratarResposta do método EnvEvento não estava levando em consideração
    o status dos eventos e sim somente o status do processamento do lote.
    Foi realizado ajustes visando checar o status do evento e desta forma o arquivo
    *-procEventoNFe.xml só será gerado caso os status sejam: 135, 136 ou 155.

Não considero esta modificação um erro, pois deve ter sido prevista pelo Italo, portanto gostaria de saber o que motivou esse ajuste, visto que o XML deve sempre ser retornado para à aplicação, mesmo em casos de rejeição.

Att.
Allan

  • Consultores
Postado

Boa noite Allan,

Se tratando de evento o componente gera 3 XML que se forem salvos em disco temos:

*-ped-eve.xml (Pedido de Evento, trata-se do XML de envio para a SEFAZ)

*-eve.xml (Evento, trata-se do XML de retorno da SEFAZ)

*-procEventoNFe.xml (Processamento do Evento da NF-e, trata-se de um XML que contem o conteúdo do XML de envio e do retorno)

Este último devemos guardar e disponibilizar ao Destinatário.

A alteração que fiz foi baseado no seguinte argumento: Se o evento não foi processado significa que ele foi rejeitado, sendo assim não faz sentido gerar o XML (*-procEventoNFe.xml).

Para pegar o XML retorno da SEFAZ tente da seguinte forma:

xRetorno := ACBrNFe1.WebServices.EnvEvento.RetWS;

Para ler diretamente os dados do retorno, tente da seguinte forma:

aStatus := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[ x ].RetInfEvento.cStat;
aProtocolo := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[ x ].RetInfEvento.nProt;

Espero ter ajudado.
 

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

Bom dia, Italo.

É exatamente desta forma que resgato o XML do evento (*-procEventoNFe.xml), acessando a propriedade XML. 

ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[x].RetInfEvento.XML;

O Problema com a propriedade RetWS é que a mesma não pode ser acessada individualmente.

Não poderia manter o comportamento do componente como era antes, deixando que a aplicação resolva como deve tratar as situações de rejeição?
Estaria seguindo o mesmo princípio do WebService da Sefaz, onde mesmo o evento sendo rejeitado, temos o XML com o motivo da rejeição.

Obrigado.
Att.

  • Consultores
Postado

Boa noite Allan,

Por favor lei com mais atenção a minha postagem anterior.

Da forma que estava antes esta errado.

A alteração ou melhor a correção foi feita com base no exposto do item 10.4 - Leiaute de Distribuição: Evento de NF-e - página 169 da versão 6.0 do Manual da NF-e.

Onde deixa bem claro que o XML (*-procEventoNFe.xml) deve conter os dados do evento enviado a SEFAZ mais os dados da homologação deste evento.

Sendo assim, se o evento foi rejeitado ele não foi homologado, logo não devemos gerar o XML acima mencionado.

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á 2958 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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