用于设置参数缺省值的字符串模板 [英] String template to set the default value of PARAMETER
本文介绍了用于设置参数缺省值的字符串模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在ABAP中动态评估字符串模板?
通常,您的代码中会有一些字符串模板,编译器将对其进行检查。(大括号中的变量由编译器在编译时检查)。
但是,是否可以在运行时计算字符串?
所以,而不是:
data(val) = |System ID: { sy-sysid }|.
我希望插入的字符串来自其他地方,例如:
parameter: p_file type string lower case default '/mnt/{ sy-sysid }/file.txt'.
在这种情况下,我希望在运行时计算p_file
的值,以便用运行时值替换变量(sy-sysid
)。
当然,您可以编写自己的替换程序,方法是使用正则表达式查找所有出现的带有大括号的变量,然后使用ASSIGN
计算变量值并将它们替换回字符串中,但我正在寻找一种内置的方法来完成此操作。
抱歉,这可能是一个愚蠢的例子,但希望您能理解我的意思。(如果没有,请在评论中告诉我,我会努力澄清)。
推荐答案
代码段中的问题不是字符串模板问题,而是参数行为问题。它不允许在DEFAULT子句中使用动态。
要获得您想要的内容,您应该使用INITIALIZATION
并在运行时设置路径值:
parameter: p_file type string lower case.
INITIALIZATION.
p_file = | /mnt/{ sy-sysid }/file.txt |.
这篇关于用于设置参数缺省值的字符串模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文