"
Supported by

Best practices
Thou shalt not COMMIT in user-exits

Never do COMMITs inside user-exits. Also, make sure any external routine you call from there doesn’t do any COMMIT either.

6 comentários a “Thou shalt not COMMIT in user-exits”

  1. Lucas Tadeu Diz:

    Na pior das hipóteses, se realmente precisar fazer o commit, a melhor forma é criar uma nova função (ex: Z_COMMIT) e chamá-la com “DESTINATION ‘NONE'”. Exemplo: CALL FUNCTION ‘Z_COMMIT’ DESTINATION ‘NONE’.

  2. Lucas Tadeu Diz:

    Complementado: tudo que você for precisar efetivar com o commit deve estar feito na destination ‘NONE’ também.

  3. José Vília Diz:

    Nem utilizes um “wait up to N seconds” que também faz um commit implícito! :)

  4. Raphael Maia Diz:

    Quando preciso rodar uma Bapi ou atualizar uma tabela dentro de uma Exit ou Badi, e esse processo demanda por um commit.
    O que faço é criar uma função remota, ou mudulo de atualização e chamar isso IN UPDATE TASK ou IN BACKGROUND TASK AS SEPARATE UNIT.

    Sempre funcionou para mim, será que esta errado?

  5. Nuno Godinho Diz:

    Lucas, podes explicar melhor qual a vantagem de fazeres isso numa função que chamas com DESTINATION ‘NONE’?

  6. Nuno Godinho Diz:

    Raphael, diria que está certo. Assim adias o que tens de fazer para o momento correcto para o COMMIT acontecer.

Deixe um comentário


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).