Bom dia pessoal,
Estou com problema no retorno do evento cancelamento para o ECC através da função J_1BNFE_EVENT_IN. Nós usamos sistema de mensageria NÃO SAP. O sistema de NFe processa o cancelamento corretamente, e faz a chamada da função J_1BNFE_EVENT_IN com os seguintes parâmetros:
DOCNUM = ' ' (este campo não é informado pois o sistema de mensageria não possui a informação da numeração interna do SAP)
EXT_EVENT = '110111'
SEQNUM = '01'
EXT_SEQNUM = '01'
ACCKEY = '52151103306578001211550010001271441501173880'
AUTHCODE = 152150013083741
REPLY_TMPL = '20151112164623.0000000'
CODE = '135'
MSGTYP = '1'
Então o SAP retorna a mensagem:
TYPE = E
ID = J1B_NFE_ERP_GRC
NUMBER = 103
MESSAGE =
| Nenhuma entrada na tabela NF-e p/nº documento 0000000000/chave de acesso 5215110 | 550010001271451508178256 |
Para verificar melhor o problema, eu executei a chamada da função direto da SE37, informando os mesmos parâmetros acima, e verifiquei que o problema está no trecho abaixo, aonde ele passa apenas um dígito do CNPJ do emitente no momento de montar a chave de acesso:
INCLUDE: LJ_1B_NFE_EVENTF05
*&---------------------------------------------------------------------*
*& Form get_acckey_from_event
*&--------------------------------------------------------------1711095*
FORM get_access_key_from_event
USING is_event TYPE j_1bnfe_event_in
CHANGING cs_acckey TYPE j_1b_nfe_access_key.
MOVE: is_event-acckey(2) TO cs_acckey-regio,
is_event-acckey+2(2) TO cs_acckey-nfyear,
is_event-acckey+4(2) TO cs_acckey-nfmonth,
is_event-acckey+6(1) TO cs_acckey-stcd1,
is_event-acckey+20(2) TO cs_acckey-model,
is_event-acckey+22(3) TO cs_acckey-serie,
is_event-acckey+25(9) TO cs_acckey-nfnum9,
is_event-acckey+34(9) TO cs_acckey-docnum9,
is_event-acckey+43(1) TO cs_acckey-cdv.
ENDFORM. "get_acckey_from_event
Dessa forma quando ele chama a função abaixo, ele retorna o erro, pois está passando a chave de acesso incompleta (faltando a informação do CNPJ).
* Get current status of NF-e
CALL FUNCTION 'J_1B_NFE_XML_RAED_ACTIVE_TAB'
EXPORTING
i_docnum = is_event-docnum
i_acckey = ls_acckey
IMPORTING
e_acttab = cs_active
EXCEPTIONS
no_entry = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e103(j1b_nfe_erp_grc) WITH is_event-docnum ls_acckey
INTO lv_dummy_msg.
PERFORM fill_bapiret2_from_sy CHANGING ct_bapiret2[].
cx_err = 'X'.
RETURN.
ENDIF.
A função foi criada no sistema pela Nota 1711095. Estamos na versão SAP ECC 617 SP 03
Eu procurei alguma nota que fizesse a alteração desse trecho mas não encontrei. Alguém já passou por este problema? o problema é realmente este ou estou fazendo algum procedimento incorreto?
estou anexando um documento com alguns prints.
Obrigada,
Kelly Ferreira