Message 用在Screen或者做增强的时候,和普通的Report有些差别,尽量不要在PBO中使用S以外的Message,尤其是E类型的Message,可能会直接导致程序的退出,而不给你改正数据的机会。如果需要有E类型的Message,可以放到PAI里面。
如ME31K/ME32K的行项目检查增强,EXIT_SAPMM06E_016里面如果有E类型的Message将导致程序的直接退出。正确的方法是放到EXIT_SAPMM06E_017。
附:各个类型Message在各个事件的处理方法
事件 | MESSAGE类型和处理方法 | |||||
A | E | I | S | W | X | |
PAI Module | 1 | 2 | 3 | 4 | 5 | 6 |
PAI Module for POH | 1 | 7 | 3 | 4 | 7 | 6 |
PAI Module for POV | 1 | 7 | 3 | 4 | 7 | 6 |
AT SELECTION-SCREEN ... | 1 | 8 | 3 | 4 | 9 | 6 |
AT SELECTION-SCREEN for POH | 1 | 7 | 3 | 4 | 7 | 6 |
AT SELECTION-SCREEN for POV | 1 | 7 | 3 | 4 | 7 | 6 |
AT SELECTION-SCREEN ON EXIT | 1 | 7 | 3 | 4 | 7 | 6 |
AT LINE-SELECTION | 1 | 10 | 3 | 4 | 10 | 6 |
AT PFn | 1 | 10 | 3 | 4 | 10 | 6 |
AT USER-COMMAND | 1 | 10 | 3 | 4 | 10 | 6 |
INITIALIZATION | 1 | 11 | 3 | 4 | 11 | 6 |
START-OF-SELECTION | 1 | 11 | 3 | 4 | 11 | 6 |
GET | 1 | 11 | 3 | 4 | 11 | 6 |
END-OF-SELECTION | 1 | 11 | 3 | 4 | 11 | 6 |
TOP-OF-PAGE | 1 | 11 | 3 | 4 | 11 | 6 |
END-OF-PAGE | 1 | 11 | 3 | 4 | 11 | 6 |
TOP-OF-PAGE DURING ... | 1 | 10 | 3 | 4 | 10 | 6 |
LOAD-OF-PROGRAM | 1 | 1 | 4 | 4 | 4 | 6 |
PBO Module | 1 | 1 | 4 | 4 | 4 | 6 |
AT SELECTION-SCREEN OUTPUT | 1 | 1 | 4 | 4 | 4 | 6 |
- The message appears in a dialog box and the program terminates. When the user has confirmed the message, control returns to the next- highest area. All the internal sessions are deleted from the stack.
- The message appears in the status line. Then PAI terminates and the system returns to the current screen. All the screen fields combined usingFIELD or CHAIN are now ready for input. The user must enter new values. The system triggers the PAI event again, with the new values.
- The message appears in a dialog box. Once the user has confirmed the message, the program continues immediately after theMESSAGE statement.
- The message appears in the status line of the next screen. The program continues immediately after the message statement.
- The message appears in the status line. Then the system continues as in 2, except that the user can quit the message using ENTER without having to enter new values. The system continues handling the PAI event from immediately after the message statement.
- No message is displayed and a runtime error, MESSAGE_TYPE_X, is triggered. The short dump text contains the message identification.
- The program terminates with a runtime error DYNPRO_MSG_IN_HELP. While F1 and F4 are processed, the system cannot send error messages or warnings.
- The message appears in the status line. Then the system stops selection screen processing and returns to the selection screen itself. The screen fields specified in the additions to theAT SELECTION-SCREEN statement are now ready for input. The user must enter new values. The system then starts processing the selection screen again with the new values.
- The message appears in the status line. Then the system continues as in 8, except the the user can quit the message using ENTER, without having to enter new values. The system continues handling the PAI event from immediately after the message statement.
- The message appears in the status line and the processing block terminates. The list level is displayed as before.
- The message appears in the status line and the processing block terminates. The system then returns to the program call.