ABAP Programming Model for SAP Fiori

12 篇文章 7 订阅
12 篇文章 1 订阅

本DEMO使用ADT,以EPM场景中的现有数据定义,从创建一个简单数据模型(创建一个DDL Source)开始,然后执行“自动发布”流程将ABAP CDS View作为OData服务公开给SAP Gateway以发布到前端,前端注册后在消费层再使用SAP Fiori Smart Template快速创建列表查询功能的应用消费服务,整个过程不需要写一句代码,通过DEMO可以了解一些基本的CDS View Annotation,并且理解CDS View转OData服务并使用服务的完整过程。
参考

在这里插入图片描述

一、创建并发布OData服务
1.1 基于 ABAP CDS View创建一个Data Model

使用ADT的向导3步创建一个基于DDL源作为相关的ABAP存储库对象。

  1. 为CDS View创建一个DDL Source文件
    DDL Source表示用于定义ABAP CDS Entity的ABAP开发对象(如一个CDS View),有了DDL源,就有了CDS View的适当开发对象,可以使用它来直接访问标准ABAP工作台功能,例如语法检查、激活或连接到传输管理器。
    操作:ADT使用Resource操作界面,在Project里new一个
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. Implement the CDS View为一个Data Model
    下图几点说明如何Implement一个简单的CDS View为Data Model。激活保存后,会生成两个ABAP对象:
    a. 实际CDS View entity ‘ZDEMO_DDL_SALES_ORDER_ITEM’
    b. 一个SQL View ‘ZDEMO_SOI’
    在这里插入图片描述
  3. 预览数据验证结果
    打开对象预览数据
    在这里插入图片描述
    在这里插入图片描述
    此时也可以使用SE11查看View对象‘ZDEMO_SOI’
    在这里插入图片描述其实取这个SEPM_I_SalesOrderItem_E也并不是一个物理表,也是一个CDS View,可以通过Ctrl+双击来一层层查看最终对象。
    在这里插入图片描述
1.2 将CDS View对外暴露成一个OData服务

这是一种新的简单的创建OData服务的方法,通过在增加关键字‘@OData.publish:true’来暴露服务,创建基于SADL(Service Adaption Description Language服务适应描述语言)提供OData模型定义和OData服务Runtime对象。下图帮助我们理解这其中过程,ADT编辑并激活ABAP CDS View,同步到后端DDL Source文件,在后端生成Service Artifacts和CDS Odata Runtime。后端通过TCODE:/IWFND/MAINT_SERVICE 将服务注册到前端服务器并激活服务。
在这里插入图片描述
也分解为3步:

  1. 从CDS View生成服务构件
    有几个前提,首先DDL Source要能正常同步,数据列表字段中至少有1个字段声明为主键字段,还有CDS View名的长度不超过26位字符串。
    ABAP开发工具ADT将激活请求委托给SADL(服务适应描述语言)框架。反过来,SADL生成几个网关构件Service Artifacts,这些构件作为ABAP对象存储在应用服务器的后端,

    • 实际Service Artifacts技术名称是 <CDS_VIEW>_CDS (object type: R3TR IWSV)
    • 一个Gateway Model, <CDS_VIEW>_CDS (object type: R3TR IWMO)
    • 用于向SAP Gateway 服务提供模型元数据的ABAP类CL_<CDS_VIEW>
      这些Service Artifacts对象会被自动打到和CDS View同一个package里以后续传输,稍后在SAP Gateway hub中激活OData服务时需要。

    操作:
    ADT: 增加annotation ‘@OData.publish:true’ 并激活对象在这里插入图片描述

  2. SAP GATEWAY激活服务。
    必须在SAP Gateway中激活该OData服务,这一步实际是在Gateway建立了技术OData服务名称与相应后端服务之间的映射。在这个激活过程中,会创建更多的新对象:

    • SAP Gateway Service Group Metadata Object 服务组元数据对象(对象类型:R3TR IWSG),名称为Z<CDS_VIEW>CDS,该对象类型是IWSG,包含网关的服务组元数据,就是实际的OData服务。
    • 一个SAP Gateway Model Metadata object 模型元数据对象(对象类型:R3TR IWOM),名称为Z<CDS_VIEW>CDS_BE,表示实际的OData服务的结构。
      另外服务会被增加到的 TCODE /IWFND/MAINT_SERVICE的Service Catalog 中

    操作:
    后端服务器 GUI TCODE: /IWFND/MAINT_SERVICE 注册服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 注册后测试服务,有多种方法可以测试

    • ADT中直接测试已注册的服务
      操作:
      鼠标放到前面的小灰点,点击OData-Service,弹出浏览器窗口显示服务详细信息(和打开浏览器自己输入相应服务地址效果一样)
      在这里插入图片描述
      在这里插入图片描述
      点击其中的Collection,返回Entityset数据在这里插入图片描述
    • 可使用SAP Gateway Client进行测试
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      此时实际可以看到该CDS View暴露的OData服务已经可以正常访问并且自动创建了entityset ‘ZDEMO_DDL_SALES_ORDER_ITEM’,通过调用该entityset的服务可以看到所有的数据(1298条)都被成功select。
      在这里插入图片描述
  4. 如果没是保存在本地package的服务还可以在SICF服务节点中点击测试服务

二、消费使用服务

本例使用SAP Fiori Smart Templates来消费上面创建的OData服务创建一个List-Reporting 应用。

2.1 WEB IDE创建Fiori App

使用Cloud WebIDE或是个人版IDE
Cloud地址:https://cockpit.hanatrial.ondemand.com/cockpit/#/home/trial
(自行网络搜索如何注册试用版 Cloud WebIDE)
在这里插入图片描述
在这里插入图片描述
这里以本地个人版WEB IDE进行开发演示,下载地址在这里插入图片描述

启动WEB IDE 服务
在这里插入图片描述
启动WEB IDE
http://localhost:8080/webide/index.html
在这里插入图片描述
选择使用模版创建项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就完了,完成后会在IDE workspace中自动生成project所需文件。
在这里插入图片描述

2.2 Fiori Launchpad执行App

(准确说这并不是真正的Launchpad,只是本地的Sandbox,但可以看到发布到Launchpad后的效果)
右键run,在IDE中有多种运行方式,以Launchpad 为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
调整过滤器,选择要作为过滤条件(选择条件,可以保存变式)的字段:
在这里插入图片描述
配置要显示的数据字段,类似ALV的布局(也可以保存布局):
在这里插入图片描述
设置后的字段:
在这里插入图片描述
点击输入帮助按钮,弹出窗口的GUI中的select-option基本一致
在这里插入图片描述
至此,一个简单由创建CDS开始,然后前端后端不需要写一行代码就可以生成一个有基本功能的报表,CDS Annotation和Fiori Template大大提高的开发效率。点赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值