O SAP NF-e automação faz o lançamento de entrada de mercadoria através da VL32N (em background). A consequência disso é que o número da nota de remessa informada no documento de material é o número da remessa (inbound delivery) e não da NF-e. Esse é um comportamento standard do SAP.
Uma solução que você pode adotar é a user exit EXIT_SAPLMBMB_001 – (INCLUDE ZXMBCU01) para atualizar a informação no documento do material no momento do lançamento.
Abaixo um exemplo de código para atualizar o número da NF-e no documento de material lançado pela automação:
DATA: l_verur TYPE likp–verur, ” Numero da NFe na LIKP
l_update. ” Flag pra chamar a funcaoCLEAR l_update.
* Essa constante armazena o nome do usuario da interface do sap nfein.
* Nao se espera que haja alteracao do usuario.
CONSTANTS: c_user(11) TYPE c VALUE ‘NFAGFI0_NFE’.
LOOP AT xmkpf.
* Somente proceder se o documento se refere ao usuario da interface
* e nao esta vazio
IF xmkpf–usnam EQ c_user AND
xmkpf–xblnr IS NOT INITIAL.* Busca o documento original da tabela LIKP.
SELECT SINGLE verur
INTO l_verur
FROM likp
WHERE vbeln = xmkpf–xblnr.
IF sy–subrc EQ 0.* Define o flag para chamar a funcao no final
l_update = ‘X’.* Atualiza o valor da NFe em XBLNR.
xmkpf–xblnr = l_verur.
MODIFY xmkpf TRANSPORTING xblnr.ENDIF.
ENDIF.
ENDLOOP.
* Verifica se o flag esta ativo para evitar chamar a fucao
* para todos documentos.
IF l_update EQ ‘X’.* A seguinte funcao eh necessaria para atualizar o dado no documento.
* Isso porque a exit somente eh executada apos o commit.
CALL FUNCTION ‘MB_CHANGE_DOCUMENT’
TABLES
zmkpf = xmkpf
zmseg = xmseg.ENDIF.