on 06-16-2012 12:30 AM
Olá a todos,
Estamos implementando o SAP NF-e (sem GRC, utilizaremos uma mensageria externa) e nos deparamos com o seguinte problema:
Como é feita a inutilização de uma NFe Rejeitada?
Entendo que após recebermos a rejeição de autorização de uma NF-e, podemos:
- OU consertar a NF-e e reenviá-la;
- OU inutilizá-la (usando o schema XML leiauteInutNFe_v2.00.xsd).
A "chave de acesso" do XML de inutilização possui somente 41 dígitos. Não tenho problemas no envio, só duplico o NFNUM9 nas tags NFini e NFFin; não informo o NFMONTH e o CDV. Porém como executo o retorno deste xml?
Irei receber um XML da SEFAZ com os mesmos 41 dígitos:
- Se eu processar a RFC J_1B_NFE_XML_IN sem os campos I_ACCKEY-NFMONTH, I_ACCKEY-DOCNUM9 e I_ACCKEY-CDV ela não encontrará nenhum registro na tabela J_1BNFE_ACTIVE.
- Se eu processar a RFC J_1BNFENUMGAP_STATUS_RFC com o ID de 41 dígitos ela não encontrará nenhum registro na tabela J_1BNFENUMGAP.
Existe alguma RFC standard do SAP R/3 (não usamos GRC) que verifica se o xml é de uma inutilização de nota rejeitada ou de pulo de numeração? E de acordo com o resultado processa a RFC correta?
Caso não tenham entendido posso dar mais detalhes.
Obrigado!
O retorno de inutilizacao para gaps pro ERP deve ser feito pela RFC J_1BNFENUMGAP_STATUS_RFC ao invés da J_1B_NFE_XML_IN_TAB.
E quanto à chave de acesso, no caso da IN_TAB, vc poderia fazer o retorno com o DOCNUM da nota original, que daí vc garante a amarração. A chave de acesso dessa RFC que ele considera é apenas a da nota, nao de inutilizacao.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Obrigado pelo rápido retorno Henrique, mas minha mensageria não acessará o SAP para verificar se a nota se trata de uma inutilização de gap ou de rejeição. Como a mensageria poderá tomar a decisão de qual RFC usar?
Outro ponto que ainda não ficou claro pra mim: Irei receber um XML com o mesmo layout - tanto para inutilização de gap quanto de rejeição - com uma chave de 41 dígitos. Essa chave não possui o DOCNUM, como irei processar a IN_TAB?
De fato precisarei desenvolver uma RFC no SAP R/3 para isso? O SAP standard não atende?
Obrigado!
Bom dia Felipe,
Na parte ERP tá tudo desenvolvido e sim, como a sua mensageria não é SAP você precisará fazer adaptações de forma a ela saber corretamente interfacear com o ERP. Não apenas que função deve ser chamada mas também que parâmetros utilizar.
Exemplo: Ao enviar para autorização o ERP irá esperar pela função IN_TAB com os dados conforme a resposta da Sefaz (protocolos, status, o msgtyp não vem da Sefaz você que determina baseado na resposta da Sefaz)... Outra informação é o DOCNUM que é interna ao ERP e seria bom a mensageria guardar para utilizar na resposta...
Quanto a inutilização, o ERP tem duas formas de solicitar inutilização. basicamente se ele pedir com a inutilização com a chave de 44 posições ele está pedindo para inutilizar uma NF-e que foi rejeitada, observe que a chave de 44 posições não é o que será efetivamente enviado à Sefaz, neste caso na mensageria você tem que "criar" esta chave de 41 posições. Já para gap o ERP solicita já com a chave de 41 posições que você envia pra Sefaz e neste caso não tem DOCNUM. A mensageria também terá que ter esta "memória" do que se trata para poder chamar a função correta no retorno (além de preencher os parâmetros adequadamente).
Atenciosamente, Fernando Da Ros
Obrigado Fernando e Henrique,
Como nossa mensageria não possui funcionalidades como "guardar o DOCNUM" de envio, verificar informações dentro de tabelas do SAP, etc. Vou criar uma nova RFC no SAP R/3 para que seja chamada pela mensageria, assim poderemos decidir dentro do SAP (verificando ambas tabelas) qual RFC standard deverá ser executada e com quais parâmetros.
Dúvida respondida. Obrigado!
User | Count |
---|---|
16 | |
3 | |
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.