如何获取CDS视图的关键字段?

2020-09-09 20:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用SALV IDA动态显示一些CDS视图。 当前排序顺序是随机的,因此我想按主键对显示的条目进行排序。

我没有看到直接在IDA界面中按主键排序的选项,因此我假设我必须使用DEFAULT_LAYOUT()-> SET_SORT_ORDER()。

为此,要使用主键进行排序,我需要将键列显式地移到方法上,因此,我目前正在尝试弄清楚如何获取CDS视图的KEY字段。

到目前为止,我发现类CL_DD_DDL_HANDLER_FACTORY,CL_DD_DDL_VIEW_DEF和CL_DD_DDL_OBJ看起来很初级。 但是,使用受保护的或私有的方法以及显式的友谊,整个API似乎都对公众隐藏了。 CL_DD_DDL_VIEW_DEF-> GET_SELECTLIST()具有我需要的关键信息,但它是私有的。 我不想通过尝试找到一个非最终的友谊班并从中继承而"解决它"。

此信息是否有公共API?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用SALV IDA动态显示一些CDS视图。 当前排序顺序是随机的,因此我想按主键对显示的条目进行排序。

我没有看到直接在IDA界面中按主键排序的选项,因此我假设我必须使用DEFAULT_LAYOUT()-> SET_SORT_ORDER()。

为此,要使用主键进行排序,我需要将键列显式地移到方法上,因此,我目前正在尝试弄清楚如何获取CDS视图的KEY字段。

到目前为止,我发现类CL_DD_DDL_HANDLER_FACTORY,CL_DD_DDL_VIEW_DEF和CL_DD_DDL_OBJ看起来很初级。 但是,使用受保护的或私有的方法以及显式的友谊,整个API似乎都对公众隐藏了。 CL_DD_DDL_VIEW_DEF-> GET_SELECTLIST()具有我需要的关键信息,但它是私有的。 我不想通过尝试找到一个非最终的友谊班并从中继承而"解决它"。

此信息是否有公共API?

付费偷看设置
发送
2条回答
hongfeng1314
1楼 · 2020-09-09 20:32.采纳回答

几年后,当我最近又偶然发现相同的问题时,在这里回答了自己的问题。

您可以使用SADL找出CDS视图(和其他内容)的主键。

 DATA(gi_entity)= cl_sadl_entity_factory => get_instance()-> get_entity(
   iv_id ='MY_CDS_VIEW'
   iv_type = cl_sadl_entity_factory => co_type-cds
 )。
 gi_entity-> get_primary_key_elements(
   输入
     et_primary_key_elements = DATA(gt_keys)
 )。
 cl_demo_output => display(gt_keys)。
 
黑丝骑士
2楼-- · 2020-09-09 20:34

Hallo Fabian Lupa

谢谢 对于问题和答案。 使用上述方法获取主键确实很好。

所以我想提一下获取主键的旧方法。

如您所知,您还可以从表或视图中获取键。 创建CDS视图时,将创建两个对象

  1. ABAP SQL视图,
  2. DDLS(HANA VIEW)

有 也是存储表的地方

表名:DDLDEPENDENCY

从该表DD03L中,您还可以获取主键。

最诚挚的问候

易卜拉欣

一周热门 更多>