SAP Knowledge Wiki
ABAP/COMMIT WORK
の編集
Top
/
ABAP
/
COMMIT WORK
-- 雛形とするページ --
(no template pages)
データベースへのコミットを発行する命令。 対になる命令の[[ROLLBACK WORK>ABAP/ROLLBACK WORK]]もあわせてどうぞ。 * 概要 [#f80afbd6] データベースの更新は、実は[[SQL>ABAP/SQL]]命令単体では「確定」せず、DB更新→コミットでニコイチとなる。 ここでいうコミットとは、「DBにふわっと乗せたデータを定着させるような行為」とイメージしてもらえたらよいかもしれない。 しかし、意識して実施していない場合も多いだろう。 何故それでokかというと、[[Dynpro>ABAP/Dynpro]]の切り替えや[[MESSAGE>ABAP/MESSAGE]]命令でもコミットが走るからである。 逆とも言える[[SQL>ABAP/SQL]]の戻しは、[[ROLLBACK WORK>ABAP/ROLLBACK WORK]]となる。 ** 用法 [#xb0eb77d] ヘッダと明細のある[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]の更新など、ニコイチの処理の両方が成功した場合など。 ** サンプル [#d231a9ed] IF ( SY-SUBRC = 0 ). COMMIT WORK. ENDIF. * その他 [#k2db22b5] ** MESSAGE命令に注意 [#r2652cdc] 確定したり戻したりしたい場合でも、上述の通り[[Dynpro>ABAP/Dynpro]]の切り替えや[[MESSAGE>ABAP/MESSAGE]]命令でもコミットが走ることとなる。 そのため、下記の様なコードは意味が無かったり意図したとおりに動作しないので注意。 IF ( SY-SUBRC = 0 ). MESSAGE Sxxx(ZZxx). COMMIT WORK. ENDIF. ちなみに、一般的に[[バッチインプット>SAPの拡張手段/バッチインプット]]でなく[[BAPI>SAPのオブジェクト/BAPI]]を使えと言われる理由の一つに、この命令が利用できるか否かがあり、前者は標準の画面で標準の流れに沿っているが故[[MESSAGE>ABAP/MESSAGE]]命令が発行されるため、ニコイチの処理ができないことが挙げられる。 ** 関連ページ [#c2636ce2] [[データベース変更のコミット>http://help.sap.com/saphelp_470/helpdata/ja/fc/eb3b64358411d1829f0000e829fbfe/content.htm]] [[データベース作業論理単位 (LUW)>https://help.sap.com/saphelp_nw70/helpdata/ja/41/7af4bca79e11d1950f0000e82de14a/content.htm]] [[データベース更新のプログラミング>http://help.sap.com/saphelp_470/helpdata/ja/41/7af4b6a79e11d1950f0000e82de14a/content.htm]] [[SAP LUW>http://help.sap.com/saphelp_470/helpdata/ja/41/7af4bfa79e11d1950f0000e82de14a/content.htm]] ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
タイムスタンプを変更しない
データベースへのコミットを発行する命令。 対になる命令の[[ROLLBACK WORK>ABAP/ROLLBACK WORK]]もあわせてどうぞ。 * 概要 [#f80afbd6] データベースの更新は、実は[[SQL>ABAP/SQL]]命令単体では「確定」せず、DB更新→コミットでニコイチとなる。 ここでいうコミットとは、「DBにふわっと乗せたデータを定着させるような行為」とイメージしてもらえたらよいかもしれない。 しかし、意識して実施していない場合も多いだろう。 何故それでokかというと、[[Dynpro>ABAP/Dynpro]]の切り替えや[[MESSAGE>ABAP/MESSAGE]]命令でもコミットが走るからである。 逆とも言える[[SQL>ABAP/SQL]]の戻しは、[[ROLLBACK WORK>ABAP/ROLLBACK WORK]]となる。 ** 用法 [#xb0eb77d] ヘッダと明細のある[[アドオンテーブル>SAPのオブジェクト/アドオンテーブル]]の更新など、ニコイチの処理の両方が成功した場合など。 ** サンプル [#d231a9ed] IF ( SY-SUBRC = 0 ). COMMIT WORK. ENDIF. * その他 [#k2db22b5] ** MESSAGE命令に注意 [#r2652cdc] 確定したり戻したりしたい場合でも、上述の通り[[Dynpro>ABAP/Dynpro]]の切り替えや[[MESSAGE>ABAP/MESSAGE]]命令でもコミットが走ることとなる。 そのため、下記の様なコードは意味が無かったり意図したとおりに動作しないので注意。 IF ( SY-SUBRC = 0 ). MESSAGE Sxxx(ZZxx). COMMIT WORK. ENDIF. ちなみに、一般的に[[バッチインプット>SAPの拡張手段/バッチインプット]]でなく[[BAPI>SAPのオブジェクト/BAPI]]を使えと言われる理由の一つに、この命令が利用できるか否かがあり、前者は標準の画面で標準の流れに沿っているが故[[MESSAGE>ABAP/MESSAGE]]命令が発行されるため、ニコイチの処理ができないことが挙げられる。 ** 関連ページ [#c2636ce2] [[データベース変更のコミット>http://help.sap.com/saphelp_470/helpdata/ja/fc/eb3b64358411d1829f0000e829fbfe/content.htm]] [[データベース作業論理単位 (LUW)>https://help.sap.com/saphelp_nw70/helpdata/ja/41/7af4bca79e11d1950f0000e82de14a/content.htm]] [[データベース更新のプログラミング>http://help.sap.com/saphelp_470/helpdata/ja/41/7af4b6a79e11d1950f0000e82de14a/content.htm]] [[SAP LUW>http://help.sap.com/saphelp_470/helpdata/ja/41/7af4bfa79e11d1950f0000e82de14a/content.htm]] ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)
テキスト整形のルールを表示する