点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我需要弄清楚在哪里可以找到有关CDS视图(DDL)及其对应的ABAP对象的元数据。 我认为生成的ABAP视图将包含与生成它们的CDS视图相同的参数,但事实并非如此。 我有一个示例(来自S4/HANA IDES系统的C_PurRequisitionNoTouch),其中CDS定义了三个参数,但生成的ABAP视图(CMMPRNOTOUCH)在SE11中的定义中仅列出了两个"选择条件"。 但是,在查询ABAP视图时,必须设置所有三个参数,否则会出现语法错误。 因此,我需要以某种方式找到CDS DDL的元数据,以便能够查询ABAP视图。 我在表DD02V(字段" WITH PARAMETERS")中拥有的ABAP视图元数据和选择条件在表DD28S中。 有一个表RSODPABAPCDSVIEW将CDS与ABAP视图链接,完整的CDS DDL可以在DDDDLSRC中找到。 我当然可以解析CDS DDL,但是我不确定如果扩展CDS视图包含多个"层"的参数,那将如何工作。 有什么想法吗?
这是一个说明问题的小程序:
报告ZS4H2。 数据: l_date_function(32)类型c, l_start_date TYPE日期, l_end_date TYPE日期。 数据: t_view带有标题行的CMMPRNOTOUCH的类型表。 l_date_function ="。 l_start_date ='20160101'。 l_end_date ='20180101'。 *选择*从C_PurRequisitionNoTouch(P_DateFunction = @l_date_function,P_StartDate = @l_start_date,P_EndDate = @l_end_date) *这有效 选择*从CMMPRNOTOUCH(P_DateFunction = @l_date_function,P_StartDate = @l_start_date,P_EndDate = @l_end_date) *这有效 *选择*从CMMPRNOTOUCH(P_StartDate = @l_start_date,P_EndDate = @l_end_date) *这不起作用 表@t_view的对应字段。 如果sy-subrc = 0。 环视t_view。 写:/t_view-PURCHASEREQUISITION, t_view-PURCHASEREQUISITIONITEM, t_view-SUPPLIER。 结局。 万一。
(48.7 kB)
这正是原因之一,为什么您不应该访问ABAP之外的ABAP托管数据库对象。
DB上CDS(参数)视图的表示形式是ABAP运行时环境的内部事务,它取决于数据库,并且可能因发行版本而异。
请参见 https://blogs .sap.com/2018/04/03/abap-managed-database-objects-and-how-to-to-access-them/和https://launchpad.support.sap.com/#/notes/2511210 。
好,非常感谢,我将通过查询CDS实体then/Mats来构建数据提取
您好,霍斯特,谢谢 你的答案。 不幸的是,即使阅读了博客和注释,我仍然不确定我是否理解。 我想通过从ABAP程序中调用它来提取CDS视图数据。 使用Open SQL的限制不是问题。 我应该从CDS视图还是ABAP视图(随时间/发行版稳定哪一个)中选择数据? 还是没有? 以我的示例为例:
/Mats
经过更多研究后,我相信它是生成的ABAP视图(在我的示例CMMPRNOTOUCH中),我应该从ABAP程序中调用它。 我还找到了带有参数(全部三个)的表,因此该问题也得到了解决。 但是,如果您可以确认这是您在博客中描述的正确方法,那就太好了, Horst Keller 。
/垫子
一周热门 更多>