🐘 SAP CDS View 开发「实例」

首页 / 💰笔记 / 正文

前言

  • CDS 基础概念
  • CDS 意义 & 使用场景
  • 开发环境 ADT 部署
  • CDS 实例 & 语法
  • ABAP 视图查询

CDS 概念

参考文章:文章链接


开发环境

To install the front-end component of ADT, proceed as follows: 「消息源
  1. Get an installation of Eclipse 2022-09 (x86_64) (e.g. Eclipse IDE for Java Developers)
  2. Get the right version for your own Eclipse.
  3. In Eclipse, choose in the menu bar Help > Install New Software...2022-10-20 164500.png
  4. Enter the URL https://tools.hana.ondemand.com/latest
  5. Press Enter to display the available features.
  6. Select ABAP Development Tools and choose Next.
  7. On the next wizard page, you get an overview of the features to be installed. Choose Next.
  8. Confirm the license agreements and choose Finish to start the installation.
  9. Toggle the Panel View.2022-10-20 164704.png

CDS 实例

创建 ABAP Project,配置 Router 账户等相关信息 连接 服务器,按照提示一步步来即可

2022-10-20 164759.png

创建实例 Data Definition

2022-10-20 165748.png

Package 按需填写,我在这里不传输,$TMP 本地对象即可,填写 Name and Description

2022-10-20 164853.png

选择模板,Finish 即可

2022-10-20 164918.png

以模板为基底,写一个简单的 DEMO

2022-10-20 164931.png

实例具体代码如下:

/*指定了数据库 SQL View 的名字,在 CDS View 激活时,会在数据库层生成对应的 SQL View*/
@AbapCatalog.sqlViewName: 'ZV_DEMO01' /*(SE11 可查看,最长 16 位字符)*/
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true /*值为 TRUE 时,SQL view 中的 key 字段使用 CDS 中定义的 key; 值为 FALSE 时,使用 DB table 中 table 的 key field.*/
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'CDS_BASIC_DEMO'
// First DEMO
define view ZCDS_DEMO01 /* CDS 视图(最长 30 个字符,与 SQL view 两者在开发应用基本相同,命名不可重名*/
  as select from sbook
{
  carrid,
  connid
}

Ctrl + F3 激活后 F8 执行(快捷键与 GUI 端大体一致)

2022-10-20 164955.png


CDS 语法

文章链接

ABAP 视图查询

注意与 SELECT 底表时查询条件的 差异

2022-10-20 175801.png

CDS 代码如下:

@AbapCatalog.sqlViewName: 'ZVDEMO03'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'between and'
define view ZCDS_DEMO03
  with parameters
    p_distance_l : s_distance,
    p_distance_h : s_distance,
    p_unit       : s_distid,
    p_mandt      : mandt
  as select from spfli
{
  key mandt,
  key carrid,
  key connid,
      cityfrom,
      cityto,
      distance,
      distid
}
where distid = :p_unit
  and distance between :p_distance_l and :p_distance_h
  and mandt = :p_mandt

ABAP 代码如下:

*&--- 选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-101.
PARAMETERS: p_unit  LIKE spfli-distid,
            p_mandt LIKE spfli-mandt,
            p_dis_l LIKE spfli-distance,
            p_dis_h LIKE spfli-distance.
SELECTION-SCREEN END OF BLOCK bk1.
​
START-OF-SELECTION.
  PERFORM frm_get_data. " 获取航班数据
​
*&--- 获取航班数据
FORM frm_get_data.
​
  SELECT *
    INTO TABLE @DATA(lt_data)
    FROM zvdemo03_yakub( p_unit = @p_unit, p_distance_l = @p_dis_l, p_distance_h = @p_dis_h, p_mandt = @p_mandt ).
​
  cl_demo_output=>display( lt_data ).
​
ENDFORM.

查询结果:

2022-10-20 180049.png


CDS 发布 OData Service

待撰......

您阅读这篇文章共花了:
打赏
评论区
头像
文章目录