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

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

原创
作者头像
惨绿少年.
修改2021-05-20 17:02:42
4480
修改2021-05-20 17:02:42
举报
文章被收录于专栏:ABAPABAP

本文是参照Jerry的这篇文章完成的,自己纯属记录练习。

SAP云平台我用的是试用官方的,没有账号的同学可以去这个网站申请一下Get a Free Account on SAP BTP Trial

  • 先创建表,给表添加数据 `@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别人的,简单修改,主要是对云平台的数据不了解,感谢前辈们的努力。

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.

  • 创建CDS View

这里创建的时候必须选Root View Entity。

@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

}

  • 创建Behavior definitions

激活上一步的CDS后,然后基于创建的CDS创建Behavior Definitions.在左边创建的CDS上点右键创建就会自动基于当前CDS了,创建完记得激活.

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

managed; // implementation in class zbp_cds_book_test unique;

define behavior for Zcds_book_test

persistent table ZBOOK_CUS

lock maste

//authorization master ( instance )

//etag master <field_name>

{

create;

update;

delete;

}

  • 创建service definition

再基于CDS View创建,还是跟之前的操作一样,可以给暴露出的CDS View添加别名.

@EndUserText.label: 'test'

define service Zcal_book_test {

expose Zcds_book_test as book;

}

  • 创建Service binding

再基于刚创建的Service Definition创建Service binding,操作与之前一样,其中Binding Type必须选择一种类型

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

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

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

选择上需要显示的字段

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

到这就结束了.

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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