前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在SAP云平台ABAP编程环境通过CDS创建Fiori应用

在SAP云平台ABAP编程环境通过CDS创建Fiori应用

作者头像
惨绿少年.
发布2021-12-07 15:39:24
2630
发布2021-12-07 15:39:24
举报
文章被收录于专栏:ABAPABAP

本文是参照Jerry的这篇文章完成的,自己纯属记录练习。 SAP云平台我用的是试用官方的,没有账号的同学可以去这个网站申请一下Get a Free Account on SAP BTP Trial

  1. 先创建表,给表添加数据 在试用的SAP云平台中,很多数据库表没有权限,所以要自己建表,自己添加数据。我用的是别人创建过的表,复制出来结构,然后通过代码添加数据。
代码语言:javascript
复制
@EndUserText.label : 'Book'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zbook_cus {
  key client      : mandt not null;
  key travel_id   : /dmo/travel_id not null;
  agency_id       : /dmo/agency_id;
  customer_id     : /dmo/customer_id;
  begin_date      : /dmo/begin_date;
  end_date        : /dmo/end_date;
  @Semantics.amount.currencyCode : 'zbook_cus.currency_code'
  booking_fee     : /dmo/booking_fee;
  @Semantics.amount.currencyCode : 'zbook_cus.currency_code'
  total_price     : /dmo/total_price;
  currency_code   : /dmo/currency_code;
  description     : /dmo/description;
  overall_status  : /dmo/overall_status;
  created_by      : syuname;
  created_at      : timestampl;
  last_changed_by : syuname;
  last_changed_at : timestampl;

}

添加数据的代码也是copy别人的,简单修改,主要是对云平台的数据不了解,感谢前辈们的努力。

代码语言:javascript
复制
CLASS zcl_fill_table DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
  INTERFACES if_oo_adt_classrun .
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_fill_table IMPLEMENTATION.
 METHOD if_oo_adt_classrun~main.
     DELETE FROM ('zbook_cus').
    " insert travel demo data
    INSERT ('zbook_cus')  FROM (
        SELECT
          FROM /dmo/travel AS travel
          FIELDS
            travel~travel_id        AS travel_id,
            travel~agency_id        AS agency_id,
            travel~customer_id      AS customer_id,
            travel~begin_date       AS begin_date,
            travel~end_date         AS end_date,
            travel~booking_fee      AS booking_fee,
            travel~total_price      AS total_price,
            travel~currency_code    AS currency_code,
            travel~description      AS description,
            CASE travel~status    "Status [N(New) | P(Planned) | B(Booked) | X(Cancelled)]
              WHEN 'N' THEN 'O'
              WHEN 'P' THEN 'O'
              WHEN 'B' THEN 'A'
              ELSE 'X'
            END                     AS overall_status,  "Travel Status [A(Accepted) | O(Open) | X(Cancelled)]
            travel~createdby        AS created_by,
            travel~createdat        AS created_at,
            travel~lastchangedby    AS last_changed_by,
            travel~lastchangedat    AS last_changed_at
            ORDER BY travel_id UP TO 50 ROWS
      ).
    COMMIT WORK.
ENDMETHOD.
ENDCLASS.
  1. 创建CDS View 这里创建的时候必须选Root View Entity。
CDS View 模板
CDS View 模板
代码语言:javascript
复制
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'sadas'
define root view entity Zcds_book_test as select from zbook_cus{
    key travel_id as TravelId,
    agency_id as AgencyId,
    customer_id as CustomerId,
    begin_date as BeginDate,
    end_date as EndDate,
    booking_fee as BookingFee,
    total_price as TotalPrice,
    currency_code as CurrencyCode,
    description as Description,
    overall_status as OverallStatus,
    created_by as CreatedBy,
    created_at as CreatedAt,
    last_changed_by as LastChangedBy,
    last_changed_at as LastChangedAt
}
  1. 创建Behavior definitions 激活上一步的CDS后,然后基于创建的CDS创建Behavior Definitions.在左边创建的CDS上点右键创建就会自动基于当前CDS了,创建完记得激活.
基于CDS创建Behavior
基于CDS创建Behavior

创建的Behavior,需要把代码中的Lock master注释解开,这样就不会报错

代码语言:javascript
复制
managed; // implementation in class zbp_cds_book_test unique;

define behavior for Zcds_book_test
persistent table ZBOOK_CUS
lock master
//authorization master ( instance )
//etag master <field_name>
{
  create;
  update;
  delete;
}
  1. 创建service definition 再基于CDS View创建,还是跟之前的操作一样,可以给暴露出的CDS View添加别名.
代码语言:javascript
复制
@EndUserText.label: 'test'
define service Zcal_book_test {
  expose Zcds_book_test as book;
}
  1. 创建Service binding 再基于刚创建的Service Definition创建Service binding,操作与之前一样,其中Binding Type必须选择一种类型
创建Service Binding
创建Service Binding

创建完成后,需要点右边的publish,才能完成激活.

创建成功画面
创建成功画面

激活后,点Preview就可以查看了.

在这里插入图片描述
在这里插入图片描述

打开后,发现没有数据.这时候需要点图中标红的按钮

在这里插入图片描述
在这里插入图片描述

选择上需要显示的字段

在这里插入图片描述
在这里插入图片描述

确定后,再点击上面的Go就会出数据了.

在这里插入图片描述
在这里插入图片描述

到这就结束了.

参照文章地址:https://blog.csdn.net/i042416/article/details/104327774

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档