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 funcao
CLEAR 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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.