日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sap commit rollback

發布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sap commit rollback 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. COMMIT WORK 語句執行許多與任務的同步執行有關的功能。
ROLLBACK WORK語句“取消”任務同步執行的所有請求。
COMMIT WORK 語句進行下列處理:
? 執行所有由PERFORM ON COMMIT 請求的FORM 例程。
按優先級的升序執行這些例程,順序由 PERFORM 語句的LEVEL 參數指定。
? 如果請求,觸發所有更新任務功能模塊。
? 如果請求,觸發所有后臺任務功能模塊。
? 觸發數據庫提交(依次釋放數據庫鎖定)。
? 清空反轉日志。
反轉日志包含應用更改前的表格快照。執行反轉時,該快照用來將表格復位到原值。
? 關閉所有打開的數據庫光標。
? 將所有TEMSE 對象寫入永久性文件或數據庫。
TEMSE文件是由于性能原因在執行事務期間緩存的臨時序列文件。TEMSE文件的示例有假脫機對象或作業日志。
? 將時間片計數器(用于訪問工作進程)復位到0。
系統中的時間片計數器限制工作進程中程序運行的時間量。如果程序常常超過時間片限制,則可以使用COMMIT WORK為程序獲得更多時間。
但是,要達此目的,必須很容易將處理分為更小單元(全部或沒有操作)。然后可以在每個單元之后插入COMMIT WORK 語句。當然處理單元邏輯上必須獨立,因為在發生錯誤時,不能取消前面的單元中所提交的更新。
ROLLBACK WORK“拋棄”當前事務的所有更新:
? 拋棄所有以前用PERFORM ON COMMIT 登錄的FORM例程
? 在更新任務隊列中將所有以前請求的更新任務功能標記為錯誤
? 拋棄所有以前請求的后臺任務功能
? 從緩沖存儲中刪除所有TEMSE對象(臨時 連續文件,如假脫機對象和作業日志)
? 觸發數據庫反轉操作(依次釋放所有數據庫鎖定)
? 關閉所有打開的數據庫光標
2. 以下情況需使用使用COMMIT和ROLLBACK語句。
1) 通過INSERT、UPDATE和MODIFY語句對數據庫進行更新事務后。
2) 執行BAPI處理后。一般使用BAPI函數BAPI_TRANSACTION_COMMIT(內含COMMIT語句) 。
3. 如果要保證數據庫中當前所作的更改立即被確認,那么就必須使用COMMIT WORK 語句結束LUW。COMMIT WORK 在程序代碼中標記了 LUW(幾個作業聯系在一起形成作業的邏輯單元) 結束并啟動更新任務。在COMMIT WORK 語句以后,對數據庫所作的所有更改都不能再取消。但是,如果在LUW 中出現了錯誤,就必須取消已經執行的部分。這意味著當前沒有任何插入的行能 永久地保存在數據庫中。要撤銷當前LUW 對數據庫的更改,請使用ROLLBACK WORK,它將取消前一次數據庫提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT選項,那么在程序繼續執行以前,它要等到更新任務的結束。如果更新是成功的,SY-SUBRC 就設置為0。如果 SY-SUBRC 返回一個非零值,就沒有成功的存儲所作的更改。
ROLLBACK WORK.
如果對更改的取消是成功的,SY-SUBRC 就設置為0。如果 SY-SUBRC 返回一個非零值,就沒有成功地取消所作的更改

總結

以上是生活随笔為你收集整理的sap commit rollback的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。