SAP|SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制
使用 cds init
初始化一个 CAP 应用,然后 npm install
, cds watch
启动服务器。
【SAP|SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制】创建一个 schema 文件,内容如下:
namespace sap.ui.riskmanagement;
using { managed } from '@sap/cds/common';
entity Risks : managed {
key ID: UUID@(Core.Computed : true);
title: String(100);
}
entity Mitigations : managed {
key ID: UUID@(Core.Computed : true);
risks: Association to many Risks on risks.miti = $self;
}
注意,schema 文件可以定义 namespace.
这两个模型的 key 由 CAP 服务器自动填充,该服务器使用注释 @(Core.Computed : true) 向服务用户公开。
只有 entity 还无法被 end user 消费,需要通过 service 暴露给外部。
在
srv
文件夹里新建一个文件 risk-service.cds
,注意这个文件和 entity schema 文件在不同的文件夹(前者在 db
):using { sap.ui.riskmanagement as my } from '../db/schema';
@path: 'service/risk'
service RiskService {
entity Risks as projection on my.Risks;
annotate Risks with @odata.draft.enabled;
entity Mitigations as projection on my.Mitigations;
annotate Mitigations with @odata.draft.enabled;
}
使用
cds watch
看到的自动生成的页面:文章图片
这个 index.html 的模板文件位置:
node_modules\@sap\cds-dk\node_modules\@sap\cds\app\index.html
在应用程序安全文件 (xs-security.json) 中,role templates 属性使您能够定义一个数组,其中列出了访问特定应用程序模块所需的一个或多个
roles
(具有相应的范围和任何必需的属性)。可以定义多个角色模板,每个模板都有自己的范围和属性。一个例子:
"role-templates": [
{
"name": "Editor",
"description": "View, edit, delete books",
"scope-references": [
"$XSAPPNAME.Edit", "$XSAPPNAME.Delete"
],
"attribute-references": [
"Country", "CostCenter"
]
},
]
必须实例化角色模板。 对于角色模板中定义的任何属性和具体的属性值尤其如此,这些属性需要定制,因此无法自动提供。 只包含“本地”范围的角色模板可以在没有用户交互的情况下被实例化。 对于 foreign scope 也是如此,其中范围所有者已在某种白名单中声明同意(例如,供“公共”使用或已知“朋友”使用)。
推荐阅读
- SAP|SAP CAP Fiori Elements 应用配置 UI 的两种方式以及自定义 index.html
- 使用注解|使用注解 @requires 给 SAP CAP CDS 模型添加权限控制
- 如何在|如何在 SAP BTP Java 应用里使用 SAP HANA 数据库
- 如何将|如何将 SAP Business Application Studio 里开发的 Java 应用部署到 SAP BTP 上
- 给|给 SAP BTP 创建的 Java 应用添加 Custom Event Handler 支持创建功能
- 一个实际的例子学习|一个实际的例子学习 SAP BTP Java 应用的 @Before 注解使用方式
- 项目实战|SpringBoot个人博客从无到有项目搭建——实战综合介绍
- 如何在|如何在 SAP BTP Java 应用里使用 SQLite 数据库
- 使用|使用 SAP BTP 创建一个 Spring Boot Java 应用
- 如何在|如何在 SAP BTP 平台上重用另一个已经开发好的 service