SAP Gateway and CDS Views
1、解释推荐的 SAP Fiori 编程模型
CDS视图是以数据库为中心的应用程序的下一代数据定义和访问。
CDS视图提供了一个跨平台的统一抽象层----类似于OData用于UI抽象。对于SAP S/4HANA,使用ABAP CDS视图。使用CDS视图为不同的编程模型提供了最大的透明度。CDS视图与平台生命周期管理集成。ABAP CDS视图与所有其他ABAP工件一样提供一致的生命周期管理和可扩展性,并使用更正和传输系统进行传输。
SAP Fiori应用程序的开发从数据建模阶段开始。后端开发人员在Eclipse中使用ABAP来构建ABAP CDS源。后端开发人员使用适当的注释(odata.publish:true)在后端注册OData服务,并使用事务/IWFND/MAINT_SERVICE将其发布到SAP Gateway Hub系统。发布的服务最终由使用SAP Web IDE生成用户界面的UI开发人员获取。
请注意,对于标准UI的Fiori元素会生成完整的UI,因此不需要编码。
CDS开发环境基于Eclipse平台,因此集成在Eclipse中的ABAP中。
它提供了文本和图形编辑器以及丰富的功能集以实现快速开发:
-
代码自动补充完整
-
增强的数据预览
-
快速修复功能
-
语法高亮
在下文中,我们将展示在从SAP NetWeaver7.40开始创建OData服务时必须使用哪些选项来利用CDS视图。
在SAP Gateway 的OData服务开发中利用CDS视图有三个选项。
第一个选项:
从SAP NetWeaver 7.40开始,可以将CDS视图及其关联映射到OData服务的实体集 和导航属性。
第二个选项(无需映射):
可以重新定义MPC_EXT和DPC_EXT类的方法来实现OData模型或服务实现级别的 增强。
第三个选项(无需映射):
可以设置适当的注释OData.publish:true。生成的服务不提供SAP网关级别的任何增 强功能。
使用SAP NetWeaver 7.0或更高版本,可以使用SAP Gateway构建通过现有框架(Function Module、RFC、BAPI、SPI ...)访问任意业务数据的OData服务。
正如我们所了解的,这可以通过服务开发或服务生成来完成。
使用SAP NetWeaver 7.40 或更高版本,可以使用SAP Gateway构建对CDS对象进行读取访问的OData服务。
使用CDS视图作为映射数据源,不再需要使用编码进行读取访问。
可以使用DPC_EXT类的CREATE、UPDATE和DELETE方法的基于代码的实现来实现执行更改的请求。
从SAP NetWeaver 7.51 SP1开始,支持利用BOPF对象的所谓草稿引擎。BOPF对象是根据CDS视图中适当注释生成的,并且必须使用基于代码的实现来实现,以便调用现有API来执行对业务数据的更改请求。
此外,基于代码的实现可用于调用现有的自定义代码,或者如果CDS视图不适合解决业务场景。基于代码的实现还可用于在750中实现创建、更新和删除请求,其中引用的数据源实现的服务不支持草稿。
图中显示了开发流程所涉及的工序。
我们从Eclipse的ABAP中的数据定义开始,视图定义可以通过元数据扩展来丰富。
一个示例是注释:@OData.publish:true
因此,可以通过Hub发布OData服务。
可以使用基于草稿表和BOPF对象的CUD逻辑来增强该服务。
2、操作CDS/SADL发生器
可以通过基于DDIC结构的导入创建实体类型/实体集来启动服务实现。
通过在该DDIC结构上映射CDS视图来执行服务实现。
基于CDS视图生成的服务仅支持读取访问(READ和QUERY)。
除了属性之外,还可以将CDS视图的关联与OData服务的导航属性进行映射。
数据模型定义首先导入使用CDS视图定义的DDIC结构。
要查找可用于与CDS视图进行映射的正确DDIC结构,请查看报表RUTDDLSSHOW。报表RUTDDLSSHOW允许开发人员按名称和代码片段搜索DDL源。
在代码中,可以通过搜索语句来识别DDIC中视图发布的DDIC结构:@AbapCatalog.sqlViewName:'SEPM_IBUPAE'。
如果CDS视图包含关联,则会在报告中与其他DDIC结构一起列出。
将CDS数据源映射到业务实体会导致在DPC类中生成READ和QUERY方法。
在映射过程中,可以使用“生成映射”按钮将业务实体元素映射到OData服务实体的属性。在第二步中使用拖放操作将业务实体关联映射到OData服务的实体类型的导航属性。
3、引用数据源
![](/i/l/?n=22&i=blog/1688997/202210/1688997-20221012093123096-654200852.png)
从SAP NetWeaver 7.50开始,可以使用引用的数据源方法。
服务生成如下:
-
读取方法
-
查询方法
为启用草稿的CDS视图生成CUD方法的服务。自SAP NetWeaver 7.51 SP1起将生成相应的BOPF对象。
Service Builder生成一个MPC_EXT和一个DPC_EXT类,它们的方法可以重新定义。
4、通过CDS View Annotation发布网关服务
开发流程:
1、创建CDS视图(例如Zsepm_C_Salesorder_Tpl),注释:@OData.publish:true
2、在SAP Business Suite后端系统中生成服务(Zsepm_C_Salesorder_Tpl_CDS)
3、服务可以发布到SAP Gateway Server
![](/i/l/?n=22&i=blog/1688997/202210/1688997-20221012093212825-1755264360.png)
注释可以在不同的上下文中灵活使用CDS视图。
UI特定的注释是最容易解释的。通过将注释@UI.selectionField:[{position:10}] 添加到CDS源代码,一个UI元素被添加到Fiori元素应用程序,允许用户过滤公司名称的结果。
请注意:
完整的编程模型仅计划从SAP NetWeaver7.51 SP02开始提供。然而,SAP Fiori编程模型的主要组件CDS视图在SAP NetWeaver7.50开始支持BOPF对象。因此在使用SAP Gateway实施OData服务时,应该尝试实施业务逻辑,以便利用CDS视图。
标签:服务,映射,Views,OData,视图,CDS,SAP,GW100 From: https://www.cnblogs.com/robinNing/p/16783426.html