本系列文章
SAP CAP篇一: 快速创建一个Service,基于Java的实现
SAP CAP篇二:为Service加上数据库支持
SAP CAP篇三:定义Model
SAP CAP篇四:为CAP添加Fiori Elements程序(1)
SAP CAP篇五:为CAP添加Fiori Elements程序(2)
SAP CAP篇六:为CAP添加Fiori Elements程序(3)
SAP CAP篇七:为CAP添加Fiori Launchpad入口 (Sandbox环境)
SAP CAP篇八:为CAP添加App Router并支持Fiori Launchpad (Sandbox环境)
SAP CAP篇九:升级为SAP CDS 7.0, CAP Java 2以及Spring Boot 3
SAP CAP篇十:理解Fiori UI的Annoation定义
SAP CAP篇十一:支持Media Object:图片、附件等
SAP CAP篇十二:AppRouter 深入研究
业务场景及Service定义
添加Fiori Elements程序之前,首先先定义业务场景。SAP CAP 采用Book Shop作为业务场景,我们不妨也使用类似的业务背景。
使用如下的简易Model:
- Book Category。
- Book。
- User Wish List。
其中,Book Category
以及Book
只能被Admin维护。普通用户可以查看Book
并将其添加到Wish List
。
至于是Wish List
还是Shopping List
,对本篇主要是阐述“添加Fiori Elements程序”而言,没有本质区别。
DB Schema
首先,看看DB Schema的定义:
entity Books : cuid, managed {
title : localized String(111);
descr : localized String(1111);
stock : Integer;
price : Decimal(9,2);
currency : Currency;
category : Association to Categories;
}
entity Categories : CodeList {
key ID : Integer;
parent : Association to Categories;
children : Composition of many Categories on children.parent = $self;
}
entity WishLists: managed {
key userID : User;
key book : Association to Books;
}
Service的定义
这里,定义两个Service。
AdminService
这个Service是给后台Admin使用的。
using { alvachien.learncap.db as db } from '../db/schema';
service AdminService {
entity Books as projection on db.Books;
entity Categories as projection on db.Categories;
}
BookService
这个Service是给前台用户使用的。
service AdminService {
@readonly
entity Products as projection on db.Books;
@readonly
entity Categories as projection on db.Categories;
entity WishLists as projection on db.WishLists;
}
添加app
文件夹
在项目文件夹中,创建app
文件夹。这里的app
文件夹实际上为approuter
准备的,但是这个文件夹在本地开发测试的时候也非常有用。
未完待续。