Skip to Content

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 likpverur,                   ” 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 xmkpfusnam EQ c_user AND
     xmkpfxblnr IS NOT INITIAL.

* Busca o documento original da tabela LIKP.
    SELECT SINGLE verur
      INTO l_verur
      FROM likp
      WHERE vbeln = xmkpfxblnr.
    IF sysubrc EQ 0.

* Define o flag para chamar a funcao no final
      l_update = ‘X’.

* Atualiza  o valor da NFe em XBLNR.
      xmkpfxblnr = 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.

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply