トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/ROLLBACK WORK のバックアップ(No.2)


データベースへの更新をなかったことにする命令。 巻き戻し、ですな。

概要

データベースの更新は、実はSQL命令単体では「確定」せず、DB更新→コミットでニコイチとなる。

ここで更新命令後、ROLLBACK WORK命令を発行することにより処理を「なかったこと」に出来る。

用法

ヘッダと明細のあるアドオンテーブルの更新など、ニコイチの処理の片方が失敗した場合など。

サンプル

IF ( SY-SUBRC <> 0 ).
  ROLLBACK WORK.
ENDIF.

その他

確定したり戻したりしたい場合でも、Dynproの切り替えやMESSAGE命令でもコミットが走ることとなる。

そのため、下記のコードは意味が無かったり意図したとおりに動作しないので注意。

IF ( SY-SUBRC <> 0 ).
  MESSAGE Exxx(ZZxx).
  ROLLBACK WORK.
ENDIF.

ちなみに、一般的にバッチインプットでなくBAPIを使えと言われる理由の一つに、この命令が利用できるか否かがあり、前者は標準の画面で標準の流れに沿っているが故MESSAGE命令が発行されるため、ニコイチの処理ができないことが挙げられる。



【スポンサードリンク】
amazon_book_sap_system_implement is not found or not readable.




コメントはありません。 Comments/ABAP/ROLLBACK WORK

お名前: