SAP通过Message来回执程序的执行状态。使用Tcode:SE91.
SAP將Message分为不同的类,如下图显示为ZF环境下ZMM01类相关Message列表。
Message short text字段为类描叙,也可以定义输入参数&,如&1&2&3表示有三个输入参数。
Message共分以下几种类型:E——错误;W——警告;I——信息;A——异常中止;S——成功。
定义语法为:MessageW000(mid), mid表示为类名,
例如: Message W000(00),表示调用ZMM01类的000Message类型为警告。也可以在程序开头直接引用Message-ID,如:
REPORT Y001 MESSAGE-ID ZMM01.
MESSAGE W002.
REPORT Y001.
MESSAGE W002(ZMM01).
以上两种执行效果都是一样的,第一个是程序一开始就应用该消息类,第二个是程序执行中才引用消息类。
REPORT Y001 MESSAGE-ID 00.
DATA:MSG1(10) TYPE C VALUE 'this'.
DATA:MSG2(10) TYPE C VALUE ' is'.
DATA:MSG3(10) TYPE C VALUE ' my'.
DATA:MSG4(10) TYPE C VALUE ' test.'.
MESSAGE W001 WITH MSG1 MSG2 MSG3 MSG4.
E、W、S类型Message一般会在状态栏显示,但I类型则会弹出对话框,
A类型在弹出对话框的周时将强制退出执行程序。
REPORT Y001 MESSAGE-ID 00.
SELECTION-SCREEN BEGIN OF BLOCK MYBLOCK WITH FRAME.
PARAMETERS:P_LENGTH TYPE I LENGTH 5 ," VISIBLE LENGTH 5
P_WIDTH TYPE I VISIBLE LENGTH 5.
SELECTION-SCREEN END OF BLOCK MYBLOCK.
IF P_LENGTH IS NOT INITIAL. "如果不為空
DATA AREA TYPE I.
AREA = P_LENGTH * P_WIDTH.
MESSAGE I003(00) WITH P_LENGTH P_WIDTH AREA. "调用自定义MESSAGE
ENDIF.