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

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


データベースへのコミットを発行する命令。

概要

データベースの更新は、実は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

お名前: