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

ABAP/COMMIT WORK のバックアップ(No.3)


データベースへのコミットを発行する命令。 対になる命令のROLLBACK WORKもあわせてどうぞ。

概要

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

ここでいうコミットとは、「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命令が発行されるため、ニコイチの処理ができないことが挙げられる。



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




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

お名前: