ABAP中的数字到字符串转换功能

问题描述

我想显示一条类型为E的消息,为此我必须首先创建一个字符串。该字符串包含混合的字符串和整数变量。

由于只能连接字符串,因此我将整数变量复制到字符串变量中,制作一个完整的字符串并进行连接。

是否有诸如to_string(integer_variable)之类的转换函数可以将整数转换为字符串?

PROGRAM abc.
DATA: im_acc_no TYPE i VALUE 100,lv_acc_no TYPE string,lv_msg TYPE string.
START-OF-SELECTION.
      lv_acc_no = im_acc_no.
      CONCATENATE 'Acnt# ' lv_acc_no ' does not exist' INTO lv_msg.
      MESSAGE lv_msg TYPE 'E'.

解决方法

有一个CONV运算符(SAP help)可以执行与to_string类似的操作,但是CONCATENATE不允许这样做,因此不会对您有所帮助您的情况。

您可以使用&&运算符(SAP help)在MESSAGE命令中就地创建消息,例如:

 MESSAGE |Acnt# | && lv_acc_no && | does not exist| type 'E'.

侧面说明:请勿使用MESSAGE命令的此变体,这可能很容易编程,但是却很难调查在哪里生成消息。因此,最好在SE91中实际创建一条消息并使用它。消息中的变量替换(&)也可以很好地处理整数。