数据参考

数据引用必不可少的是 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 完成)