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

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


データベースへの更新を亡きものにする命令。

概要

データベースの更新は、実は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命令が発行されるため、ニコイチの処理ができないことが挙げられる。


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

お名前: