数据参考
数据引用必不可少的是 TYPE
之后的 REF TO
。
结构的动态创建
如果应该在运行时决定结构的类型,我们可以将目标结构定义为对泛型类型 data
的引用。
DATA wa TYPE REF TO data.
为了给 wa
一个类型,我们使用语句 CREATE DATA
。添加 TYPE
可以通过以下方式指定:
参考:
CREATE DATA wa TYPE kna1
- 静态检查处于活动状态,因此无法创建未知类型
名称:
CREATE DATA wa TYPE (lw_name_as_string)
- 需要括号,
lw_name_as_string
包含类型名称作为字符串。- 如果找不到类型,则会抛出
CX_SY_CREATE_DATA_ERROR
类型的异常
对于实例化动态创建的类型,可以指定 HANDLE
添加。HANDLE
接收一个继承自 CL_ABAP_DATADESCR
的对象。
CREATE DATA dref TYPE HANDLE obj
obj
可以使用 R un T ime T ype S ervices 创建- 因为
dref
仍然是一个数据参考,它必须被解除引用(->*
)才能用作 datacontainer(通常通过 Field-Symbols 完成)