Update Module函數,主要用語對話或報表中實現同步和異步更新數據庫操作,需要單獨調用函數實現更新數據庫表,但又要求對程序的運行不產生影響(更新成功與否不影響主程序的正常執行)
幾個操作,要么全部執行,要么全部不執行
執行順序如下
- IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE
- POST_DOCUMENT(產生會計憑證)
- IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_UPDATE
Method would get triggered in Update debugging mode. After setting the update debugging it would work . update debugging is setting values at runtime ....and checking values.
Update task是用於對話或報表中實現同步和異步更新數據庫的功能,在Update之前還有一個Before Update,用於更新數據前的檢查,當二者都執行完,才會進行到后面的commit,當before update成功執行,而update不成功,會報錯如下,顯示數據回滾: Express document "Update was terminated" received from author "xxx"
SAP is detecting that and rolling back the body of work that was just committed to the database.
T-code:SM13 and ST22 to analyse it
調試Update Task方法
- 在MB_DOCUMENT_BEFORE_UPDATE打上內部斷點;
- 在MB_DOCUMENT_ UPDATE打上外部斷點
- 在MB_DOCUMENT_BEFORE_UPDATE調試界面
Settings-Display/Change Debugger Settings-Update Debugging
FM加入到update task的方式是:Call Function xxx in update task
