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

2020-09-09 20:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用SALV IDA动态显...

         点击此处--->   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
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)。
 

一周热门 更多>