ABAP/COMMIT WORK のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- ABAP/COMMIT WORK へ行く。
- 1 (2014-06-26 (木) 11:02:34)
- 2 (2015-11-27 (金) 12:46:23)
- 3 (2016-02-15 (月) 12:42:23)
データベースへのコミットを発行する命令。
概要 †
データベースの更新は、実はSQL命令単体では「確定」せず、DB更新→コミットでニコイチとなる。
しかし、意識して実施していない場合も多いだろう。 何故それでokかというと、Dynproの切り替えやMESSAGE命令でもコミットが走るからである。
逆とも言えるSQLの戻しは、ROLLBACK WORKとなる。
用法 †
ヘッダと明細のあるアドオンテーブルの更新など、ニコイチの処理の両方が成功した場合など。
サンプル †
# IF ( SY-SUBRC = 0 ).
# COMMIT WORK.
# ENDIF.
その他 †
確定したり戻したりしたい場合でも、上述の通りDynproの切り替えやMESSAGE命令でもコミットが走ることとなる。
そのため、下記の様なコードは意味が無かったり意図したとおりに動作しないので注意。
# IF ( SY-SUBRC = 0 ).
# MESSAGE Sxxx(ZZxx).
# COMMIT WORK.
# ENDIF.
ちなみに、一般的にバッチインプットでなくBAPIを使えと言われる理由の一つに、この命令が利用できるか否かがあり、前者は標準の画面で標準の流れに沿っているが故MESSAGE命令が発行されるため、ニコイチの処理ができないことが挙げられる。
コメントはありません。 Comments/ABAP/COMMIT WORK