You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何列出标准CDS视图的所有已创建扩展?是否有可用FM或类?

获取指定CDS视图扩展的函数模块与类方法

以下是两种可靠的方式来获取指定CDS视图的所有现有扩展名称:

1. 函数模块 RDD_DDL_GET_EXTENSIONS

这个函数模块专门用于检索ABAP字典对象的扩展信息,支持CDS视图作为输入:

  • 输入参数:OBJECT_NAME(传入CDS视图的名称,需与ABAP字典中定义的名称一致)
  • 输出表:EXTENSIONS,其中EXTENSION_NAME字段即为扩展的名称

示例代码:

DATA: lt_extensions TYPE TABLE OF rdd_extension,
      ls_extension  TYPE rdd_extension.

CALL FUNCTION 'RDD_DDL_GET_EXTENSIONS'
  EXPORTING
    object_name = 'Z_MY_CDS_VIEW'  " 替换为目标CDS视图名称
  TABLES
    extensions  = lt_extensions.

" 遍历输出所有扩展名称
LOOP AT lt_extensions INTO ls_extension.
  WRITE: / '扩展名称:', ls_extension-extension_name.
ENDLOOP.

2. 类方法 CL_DD_DDL_SERVICE=>GET_EXTENSIONS

这是ABAP 7.50及以上版本提供的现代化API,封装了更简洁的元数据访问逻辑:

  • 输入参数:IV_OBJECT_NAME(CDS视图名称)
  • 返回值:类型为IF_DD_DDL_TYPES=>TT_EXTENSION的内表,其中NAME字段对应扩展名称

示例代码:

DATA: lt_extensions TYPE if_dd_ddl_types=>tt_extension,
      ls_extension  TYPE if_dd_ddl_types=>ty_extension.

lt_extensions = cl_dd_ddl_service=>get_extensions( iv_object_name = 'Z_MY_CDS_VIEW' ).

" 遍历输出所有扩展名称
LOOP AT lt_extensions INTO ls_extension.
  WRITE: / '扩展名称:', ls_extension-name.
ENDLOOP.

注意事项

  • 确保执行代码的用户拥有访问CDS视图元数据的权限(如S_DEVELOP权限)
  • 两种方式均支持识别通过EXTEND VIEW语法创建的CDS视图扩展,以及其他CDS扩展机制生成的对象

内容的提问来源于stack exchange,提问作者minha qureshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:46:07