本文是参照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.
这里创建的时候必须选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
}
激活上一步的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;
}
再基于CDS View创建,还是跟之前的操作一样,可以给暴露出的CDS View添加别名.
@EndUserText.label: 'test'
define service Zcal_book_test {
expose Zcds_book_test as book;
}
再基于刚创建的Service Definition创建Service binding,操作与之前一样,其中Binding Type必须选择一种类型
创建完成后,需要点右边的publish,才能完成激活.
激活后,点Preview就可以查看了.
打开后,发现没有数据.这时候需要点图中标红的按钮
选择上需要显示的字段
确定后,再点击上面的Go就会出数据了.
到这就结束了.
参照文章地址:https://blog.csdn.net/i042416/article/details/104327774
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有