SAP ABAP maintanence view的資料校驗機制

i042416發表於2020-03-04

# Subject: RE: Validate data in maintanence view

SM30的Maintenance View是通過SE11裡面的工具生成的,所有的顯示和增刪改查的邏輯都是自動生成的程式碼,通常這些程式碼在和Maintenance View同名的Function Group裡面。

Function Group:  CRMV_PR_SUBSTRAC

SAP ABAP maintanence view的資料校驗機制

同時SAP提供了一些事件可以加到Maintenance View讓USER可以自定義一些邏輯,進入上面的Table Maintenance Generator之後,再進入下面的Menu:

SAP ABAP maintanence view的資料校驗機制


Maintenance View支援事件:  help.sap.com/saphelp_47

每個事件是一個Sub Routine, 工具自動生成的程式碼預留了呼叫這些Sub Routine的地方,其中有一個事件是’Before Save Data to Database’,我覺得這個事件是最適合驗證資料的地方.

SAP ABAP maintanence view的資料校驗機制

把驗證邏輯寫完之後,可以驗證使用者輸入的資料是否和Allow Product Set type Change裡面的資料衝突,也可以提示使用者Error Message.

Input data.

SAP ABAP maintanence view的資料校驗機制

Save

SAP ABAP maintanence view的資料校驗機制 SAP ABAP maintanence view的資料校驗機制

現在的問題是,Save之後,使用者正在編輯的行灰掉了,不能重新點選Change繼續編輯,只能回退,取消Save.

我研究得出的原因是,系統生成打程式碼呼叫了使用者自定義的事件之後,不管結果如何,都會執行後續的邏輯,所以Screen無法停留在剛才的狀態。而且所有的控制都是由系統生成程式碼完成,USER無法干預。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2678398/,如需轉載,請註明出處,否則將追究法律責任。

相關文章