GW100-SAP Gateway and CDS Views

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、引用数据源

 

从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

 

注释可以在不同的上下文中灵活使用CDS视图。

UI特定的注释是最容易解释的。通过将注释@UI.selectionField:[{position:10}] 添加到CDS源代码,一个UI元素被添加到Fiori元素应用程序,允许用户过滤公司名称的结果。

请注意:

完整的编程模型仅计划从SAP NetWeaver7.51 SP02开始提供。然而,SAP Fiori编程模型的主要组件CDS视图在SAP NetWeaver7.50开始支持BOPF对象。因此在使用SAP Gateway实施OData服务时,应该尝试实施业务逻辑,以便利用CDS视图。

posted @ 2022-10-12 09:36  宁海峰  阅读(89)  评论(0编辑  收藏  举报