ABAP開發 訊息的使用~燕初南
之前在ABAP程式碼的編寫中對訊息的使用都較為簡單,最近在檢視前輩的程式碼時候,發現ABAP訊息的使用有很多我沒有使用過的方法,因此做一下記錄
一:訊息型別
訊息型別包含:S成功 E錯誤(程式終止) W警告 I訊息框(彈出訊息框) A錯誤(彈出框) X系統錯誤 這六種型別
以下依次是這六種型別的截圖:
二:訊息使用
Syntax:MESSAGE { msg | text } [message_options].
1.直接使用字元訊息
MESSAGE '您輸入的內容有誤,請重新輸入' TYPE 'S'.
2.使用訊息類中的訊息
使用訊息類中的訊息好處是可以定位到具體的採購訂單或者專案號等內部欄位。
使用事務碼SE91建立訊息類如下圖:
接下來為其維護一個訊息如下圖:
下面為示例程式碼(由於僅做測試用,未注意編碼規範,S000中:S程式碼訊息型別,000代表訊息編號,WITH 後為填充至訊息中&1的內容):
DATA S_EBELN TYPE CHAR12.
S_EBELN = '4500023452'.
MESSAGE S000(ZMM_TEST) WITH S_EBELN.
此時的訊息顯示如下圖:
3.訊息型別展示設定
SAP的訊息型別可以設定為A型別卻用B型別進行展示
下面的示例為將S型別的訊息展示為E型別:
MESSAGE '您輸入的內容有誤,請重新輸入' TYPE 'S' DISPLAY LIKE 'E'.
4.訊息彈出框呼叫
這裡介紹一下POPUP_TO_CONFIRM函式的用法,下面是程式碼:
REPORT YYHD_MESSAGE. DATA P_ANSWAR TYPE C. TABLES:ICON. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = '檢查操作' TEXT_QUESTION = '確認此處操作麼' TEXT_BUTTON_1 = '是' ICON_BUTTON_1 = 'ICON_CHECKED' TEXT_BUTTON_2 = '否' ICON_BUTTON_2 = 'ICON_INCOMPLETE' DEFAULT_BUTTON = '1' DISPLAY_CANCEL_BUTTON = 'X' START_COLUMN = 25 START_ROW = 6 IMPORTING ANSWER = P_ANSWAR EXCEPTIONS TEXT_NOT_FOUND = 1 OTHERS = 2. IF SY-SUBRC <> 0. * Implement suitable error handling here ENDIF.
TITLEBAR | 訊息框抬頭資訊 |
TEXT_QUESTION | 訊息框文字資訊 |
TEXT_BUTTON_1 | 按鈕顯示文字 |
ICON_BUTTON_1 | 按鈕顯示圖示 |
DEFAULT_BUTTON | 預設選擇的按鈕 |
DISPLAY_CANCEL_BUTTON | 是否顯示取消按鈕 |
P_ANSWAR | 接收按鈕返回的值 |
常用的訊息函式如下:
POPUP_TO_CONFIRM_LOSS_OF_DATA 顯示有YES/NO的彈出視窗,提示使用者未儲存的資料將丟失
POPUP_TO_CONFIRM_STEP 提示是否確認操作的彈出視窗
POPUP_TO_CONFIRM_WITH_MESSAGE 可以顯示定製的提示資訊的確認視窗
POPUP_TO_CONFIRM_WITH_VALUE 顯示確認使用者對某個特定物件的操作的彈出視窗
POPUP_TO_DECIDE 將待確認選項以單選按鈕的方式顯示的彈出視窗
POPUP_TO_DECIDE_WITH_MESSAGE 帶訊息的確認視窗
POPUP_TO_DISPLAY_TEXT 顯示多行資訊的視窗
POPUP_TO_SELECT_MONTH 月份選擇視窗
POPUP_WITH_TABLE_DISPLAY 有表格物件的確認視窗
因水平有限,關於訊息的使用還很片面,今後仍會繼續補充~