on 02-20-2013 7:59 PM
Pessoal, boa tarde.
Estamos finalizando a configuração do Cancelamento de NF-e por evento e estamos enfrentando um problema no processo de entrada de Eventos de Cancelamento de NF-e.
O XML é recebido, a assinatura é validada, mas fica parado no passo em que o evento é validado na SEFAZ, conforme print abaixo. Como esta validação é feita pelo mesmo cenário que valida as NF-es de entrada, estou descartando erro no cenário, pois a validação de NF-es de entrada é feita corretamente.
O que pude notar é que no monitor de mensagens xml o processo de validação é chamado várias vezes, parecendo que está entrando em loop.
Só para adiantar minha suspeita da origem do problema: Estou utilizando para testes, uma NF-e que eu mesmo gerei e eu mesmo cancelei. Ou seja, no monitor e nas tabelas de saída, esta nota já existe. Seria esta a causa do Loop? Terei que dar entrada numa nota de um fornecedor qualquer e solicitar que este a cancele para que eu possa realizar este teste? Ou não teria nada haver?
Sendo que já no primeiro retorno da Sefaz, no processo ConsultaNFResponse, a mensagem já retorna com sucesso:
Alguém enxerga algum problema? Alguém possui uma nota e um cancelamento desta nota por evento para que eu possa tirar esta dúvida?
Obrigado!
Pessoal,
Somente para atualizar a questão.
Abrimos o chamado e resolvemos aplicar o SP13 e o problema continua o mesmo. A unica coisa que mudou, como o Da Rós havia dito, é que agora ele informa a mensagem de Erro: O Evento não está Autorizado. Ele não fica mais aguardando indefinidamente.
O problema continua no valor do Digest Value que está diferente entre o que eu gero e o que eu busco da SEFAZ depois para validar.
Alguém já implementou a entrada de Eventos e não se deparou com este problema? Não estou entendendo como a SEFAZ está autorizando meu Evento de Cancelamento com um Digest Value e quando eu consulto este mesmo evento, o valor está diferente.
Pelo que eu entendo, o Digest Value é um valor calculado, de acordo com o conteúdo do XML. Se for seguir esta lógica, o DV não vai bater mesmo, pois o XML do envio do cancelamento é diferente do retorno da SEFAZ, que contém, além do Evento, a tag do Cancelamento também. Se bem que o que ele compara é o DV específico do Evento. Para a tag do Cancelamento existe outro DV.
Estou bem confuso!
Qualquer ajuda será bem vinda!
Att,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia Pessoal,
Só uma atualização. Este não é um caso de erro de código do standard.
A Sefaz Minas (outros casos apareceram iguais) está respondendo com um diggest value na NFESC que não é o mesmo que foi assinado pelo emitente.
Solução: Contactar Sefaz MG para verificar esta issue.
Atenciosamente, Fernando Da Rós
Realmente Fernando.
Testamos com um cancelamento da SEFAZ ES e funcionou perfeitamente!
Estamos entrando em contato com a SEFAZ MG para que solucionem o problema.
Daniel Jesus, por favor relate o problema também à SEFAZ MG. Quanto mais gente relatar, mais rápido é a ação deles.
Muito obrigado a todos!
Somente para finalizar:
A SEFAZ MG informou que havia um problema no sistema deles e disponibilizaram a correção em homologação hoje na hora do almoço. Forcei a atualização das entradas que estavam com erro e retornaram a autorização do evento corretamente.
Ainda segundo a SEFAZ MG, provavelmente na semana que vem estarão disponibilizando a correção em produção.
Obrigado a todos pela ajuda.
Att,
Bruno Ceolin
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Fernando,
Debugando o proxy, descobri que o DigestValue do Evento está diferente do que está sendo retornado pela SEFAZ:
Então, neste trecho de código abaixo, é setado um erro de evento, o que faz com que o processo não funcione corretamente e fique no status de wait indefinidamente.
IF ls_event-digval IS NOT INITIAL AND
ls_event-digval <> ls_event_prot-evento-signature-signed_info-reference-digest_value.
es_status-stepstatus = gc_stepstat_events-error.
set_status_msg gc_msgclass_eventsteps '192' '' '' '' ''.
A tag DigestValue do Envio do Evento de Cancelamento é esta:
<DigestValue>3uz6dUGSsAgM4eoe9EVy4M7SVxs=</DigestValue>
E a do retorno da consulta à SEFAZ é esta:
<DigestValue>M3V6NmRVR1NzQWdNNGVvZTlFVnk0TTdTVnhzPQ==</DigestValue>
Os números de Protocolo, de ID do Evento, todos batem, menos este valor, gerando o erro.
Se precisar de mais algum detalhe, por favor me informe.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ricardo, bom dia.
Já havia colado o payload. Provavelmente enquanto vc respondia...
Após configurar o cenário de Entrada de Eventos, ele disparou automaticamente a chamada para o processo de consulta de NF-e, e não um específico. Existe um processo específico para consulta de status de Evento? Talvez então meu cenário de Entrada esteja errado.
Att,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia Bruno,
Não me recordo se isso é um problema. Está testando isso no SP13?
Cola o payload do request deste NFESC aqui por favor.
Atenciosamente, Fernando Da Rós
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Não, estamos testando no SP12. Estamos com ele em DEV com um cronograma já planejado para QAS e PRD.
Segue payload da consulta:
<?xml version="1.0" encoding="utf-8"?>
<nm:nfeConsultaNF2 xmlns:nm="http://sap.com/xi/NFE/006"
xmlns:prx="urn:sap.com:proxy:GRD:/1SAI/TAS523321853820FE4FB8A5:702">
<n0:cUF xmlns:n0="http://sap.com/xi/NFE/006">31</n0:cUF>
<n0:tpEmis xmlns:n0="http://sap.com/xi/NFE/006"/>
<n0:tpAmb xmlns:n0="http://sap.com/xi/NFE/006">2</n0:tpAmb>
<n0:type xmlns:n0="http://sap.com/xi/NFE/006">1</n0:type>
<n0:versNum xmlns:n0="http://sap.com/xi/NFE/006">001</n0:versNum>
<n0:mode xmlns:n0="http://sap.com/xi/NFE/006">E1512435127F5C0A90E1008000AC1000A6</n0:mode>
<ne:nfeDadosMsg xmlns:ne="http://sap.com/xi/NFE/006">
<ne:consSitNFe versao="2.01" xmlns:ne="http://www.portalfiscal.inf.br/nfe">
<n0:tpAmb xmlns:n0="http://www.portalfiscal.inf.br/nfe">2</n0:tpAmb>
<n0:xServ xmlns:n0="http://www.portalfiscal.inf.br/nfe">CONSULTAR</n0:xServ>
<n0:chNFe xmlns:n0="http://www.portalfiscal.inf.br/nfe"
>31130225331521000152550020000058231395573374</n0:chNFe>
</ne:consSitNFe>
</ne:nfeDadosMsg>
</nm:nfeConsultaNF2>
XML do Evento de Cancelamento:
<?xml version="1.0" encoding="utf-8"?>
<procEventoNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
<infEvento Id="ID1101113113022533152100015255002000005823139557337401">
<cOrgao>31</cOrgao>
<tpAmb>2</tpAmb>
<CNPJ>25331521000152</CNPJ>
<chNFe>31130225331521000152550020000058231395573374</chNFe>
<dhEvento>2013-02-20T14:58:46-03:00</dhEvento>
<tpEvento>110111</tpEvento>
<nSeqEvento>1</nSeqEvento>
<verEvento>1.00</verEvento>
<detEvento versao="1.00">
<descEvento>Cancelamento</descEvento>
<nProt>131130033025639</nProt>
<xJust>ERRO PREENCHIMENTO DADOS</xJust>
</detEvento>
</infEvento>
(Fernando Da Rós: tag signature removida pela moderação (melhorar leitura) )
</evento>
<retEvento versao="1.00">
<infEvento Id="ID131130033025645">
<tpAmb>2</tpAmb>
<verAplic>13_0_61</verAplic>
<cOrgao>31</cOrgao>
<cStat>135</cStat>
<xMotivo>Evento registrado e vinculado a NF-e.</xMotivo>
<chNFe>31130225331521000152550020000058231395573374</chNFe>
<tpEvento>110111</tpEvento>
<xEvento>CANCELAMENTO</xEvento>
<nSeqEvento>1</nSeqEvento>
<CNPJDest>99999999000191</CNPJDest>
<dhRegEvento>2013-02-20T14:58:54-03:00</dhRegEvento>
<nProt>131130033025645</nProt>
</infEvento>
</retEvento>
</procEventoNFe>
Obrigado..
Message was edited by: Fernando Ros
Bom dia Bruno,
O pedido e a resposta me parecem Ok com tudo correto para processar.
Mesmo sendo de sua emissão você pode fazer isso.
O NFESC sofreu evoluções importantes para o retorno de eventos para o SP13, converse com o time aí em 1 dia você sobe para o SP13 e já inicia os testes em QAS com ele.
Quanto à issue, coloque um break-point na função /XNFE/PROCRESP_EV_AUTHEVNT e dispare este segundo payload pela SPROXY interface NFESC_nfeConsultaNFResponse_IB.
Atenciosamente, Fernando Da Rós
User | Count |
---|---|
13 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.