用于设置参数缺省值的字符串模板 [英] String template to set the default value of PARAMETER

查看:0
本文介绍了用于设置参数缺省值的字符串模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆