在 ABAP 中显示消息语句中的变量

Displaying variables inside message statement in ABAP

如何在不使用消息的情况下在消息语句中显示变量 class?

IF acct_bal < min_bal.
    MESSAGE 'customer balance less than minimum. Balance-->', acct_bal TYPE 'E'.
ENDIF.

我的程序有语法错误,因为系统不允许 acct_bal 进入消息语句。我不想使用带有占位符的消息 class 来执行此操作:

Program z_test.
DATA: acct_bal TYPE 'I' value 10,
min_bal TYPE 'I' value 100.
IF acct_bal < min_bal.
    MESSAGE 'customer balance less than minimum. Balance-->', acct_bal type 'E'.
ENDIF.

有很多可能性。这是其中的一些。

你想要的可以使用 string template:

MESSAGE |customer balance less than minimum. Balance-->{ acct_bal }| TYPE 'E'.

或者,如果您希望您的信息可以通过文本符号进行翻译:

MESSAGE |{ replace( val = 'customer balance less than minimum. Balance-->&1'(001)
                    sub = '&1' with = acct_bal ) }| TYPE 'E'.

或者,如果您希望您的消息可以通过消息 class 进行翻译,请通过交易代码 SE91 创建一个消息 ID,其中包含文本 customer balance less than minimum. Balance-->&1,例如 ID [=消息中的 15=] class ZMSGCLASS:

MESSAGE e001(zmsgclass) TYPE 'E' WITH acct_bal.

等等

更多信息见ABAP Documentation - MESSAGE