SAP CAP篇四:为CAP添加Fiori Elements程序(1)

news/2024/10/30 9:32:24/

本文目录

  • 一级目录
    • 二级目录
      • 三级目录
  • 本系列之前的文章
  • 业务场景及Service定义
    • DB Schema
    • Service的定义
      • AdminService
      • BookService
  • 添加`app`文件夹
    • 文件 `package.json`
    • 文件 `fiori.html`
    • 文件夹`appconfig`

一级目录

二级目录

三级目录

本系列之前的文章

SAP CAP篇一:快速创建一个Service,基于Java的实现
SAP CAP篇二:为Service加上数据库支持
SAP CAP篇三:定义Model

业务场景及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 {@readonlyentity Products   as projection on db.Books;@readonlyentity Categories as projection on db.Categories;entity WishLists as projection on db.WishLists;
}

添加app文件夹

在项目文件夹中,创建app文件夹。这里的app文件夹实际上为approuter准备的,但是这个文件夹在本地开发测试的时候也非常有用。

并在文件夹中添加如下文件:

  • package.json
  • fiori.html
  • appconfig folder

文件 package.json

正如之前提到的那样,这里的这个nodejs程序,是用于approuter,所以,package.json的定义如下:

{"name": "approuter","dependencies": {"@sap/approuter": "^13"},"scripts": {"start": "node node_modules/@sap/approuter/approuter.js"}
}

文件 fiori.html

文件fiori.html是用作Fiori Launchpad的入口程序——类似于绝大多数的HTML程序的index.html一样。所以,这个fiori.html是标准的Fiori Launchpad的定义文件。

<!DOCTYPE html>
<html>
<head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Fiori</title><script>window["sap-ushell-config"] = {defaultRenderer: "fiori2",applications: {}};</script><script id="sap-ushell-bootstrap" src="https://sapui5.hana.ondemand.com/1.115.0/test-resources/sap/ushell/bootstrap/sandbox.js"></script><script id="sap-ui-bootstrap" src="https://sapui5.hana.ondemand.com/1.115.0/resources/sap-ui-core.js"data-sap-ui-libs="sap.m, sap.ushell, sap.collaboration, sap.ui.layout"data-sap-ui-compatVersion="edge"data-sap-ui-theme="sap_horizon"data-sap-ui-frameOptions="allow"></script><script>sap.ui.getCore().attachInit(()=> sap.ushell.Container.createRenderer().placeAt("content"))</script></head>
<body class="sapUiBody" id="content"></body>
</html>

文件夹appconfig

文件夹appconfig用来提供Fiori Launchpad的Sandbox系统。真正Deploy到SAP BTP上时,需要遵循Launchpad 定义的标准。

{"services": {"LaunchPage": {"adapter": {"config": {"catalogs": [],"groups": [{"id": "Admin","title": "Admin","isPreset": true,"isVisible": true,"isGroupLocked": false,"tiles": [{"id": "manage-books","tileType": "sap.ushell.ui.tile.StaticTile","properties": {"targetURL": "#Books-manage","title": "Manage Books","description": "Find your favorite book"}}]}, {"id": "Book","title": "Book","isPreset": true,"isVisible": true,"isGroupLocked": false,"tiles": [{"id": "browse-books","tileType": "sap.ushell.ui.tile.StaticTile","properties": {"targetURL": "#Books-display","title": "Display Books","description": "Find your favorite book"}}]}]          }}},"NavTargetResolution": {"config": {"enableClientSideTargetResolution": true}},"ClientSideTargetResolution": {"adapter": {"config": {"inbounds": {"manage-books": {"semanticObject": "Books","action": "manage","signature": {"parameters": {},"additionalParameters": "allowed"},"resolutionResult": {"applicationType": "SAPUI5","additionalInformation": "SAPUI5.Component=ManageBooks","url": "/manage-books/webapp"}},"browse-books": {"semanticObject": "Books","action": "display","signature": {"parameters": {},"additionalParameters": "allowed"},"resolutionResult": {"applicationType": "SAPUI5","additionalInformation": "SAPUI5.Component=BrowseBooks","url": "/browse-books/webapp"}}}}}}    }
}

这里对该文件的内容,暂时不具体介绍。

未完待续。


http://www.ppmy.cn/news/456079.html

相关文章

(Linux) WSL 适用于Linux的Windows子系统

文章目录 前言环境设置开发者选项启用或关闭Windows功能进入Microsoft应用商场下载下载完成开启PS: 查看运行效果 Linux基础配置环境缺失注册账号设置root账户密码常用环境的安装 VS Code 连接插件连接的快捷方式 END 前言 学习Linux的阻碍&#xff0c;往往第一步就是没有Linu…

steam好友服务器当前处于离线状态,steam好友在线为什么显示离线

steam上自己的朋友在线&#xff0c;但是看到的状态却是离线&#xff0c;这种情况下相信大家都很想知道是怎么回事以及怎么解决&#xff0c;那么下面就和小编一起来看看吧。 先看你自己是否在线&#xff0c;如果自己没问题&#xff0c;重启steam或电脑&#xff0c;如果还是离线&…

steam微信支付无法服务器,steam用微信支付失败怎么办

说起微信支付&#xff0c;相信我们每个人都不陌生&#xff0c;但是微信支付也有失败的时候&#xff0c;这时候我们就需要掌握正确的退款手续才行。steam用微信支付失败怎么办&#xff1f;了解网购安全&#xff0c;首先就要了解佰佰安全网小编就带您认识一下吧。 1、在付款提交订…

计算机名称 steam,Steam电脑配置排名:前19名都是N卡

原标题&#xff1a;Steam电脑配置排名&#xff1a;前19名都是N卡 现如今的显卡市场上&#xff0c;NVIDIA无疑占据着绝对主动和领导地位&#xff0c;那么N卡到底普及到了什么程度&#xff1f; Steam今天更新了每月一次的硬件调查结果&#xff0c;虽然数据都来自游戏玩家&#xf…

Steam DS4手柄

Steam DS4手柄问题 steam在用DS4手柄玩游戏时&#xff0c;出现了一个问题。左右摇杆变成音量加减和鼠标。 问题 左右摇杆变成音量加减和鼠标。 解决办法 插入手柄后在控制器设置&#xff0c;组合键配置中导入其他人的模板&#xff0c;选择某个名称为游戏相关的配置。 图片…

steam令牌 未能连接到服务器,连接错误无法连接到steam网络怎么办 steam网络连接错误解决方法【图文】...

在很多时候我们玩大型的游戏都会应用到steam网络错误,而这个错误几乎是所有的玩家都会遇到的一个错误,因此,他会在游戏当中表现的非常的头疼,那么怎么样才能够解决这样一个问题呢?接下来小编为大家介绍一下无法连接到steam网络的解决的方法,大家在实际生活的时候参考使用…

小米运动同步到Google Fit健身, 解决睡眠和体重不同步的情况

小米运动支持同步到Google Fit健身, 在我的->第三方接入里绑定账号就行了. 但是很多人发现谷歌健身里同步的只有运动和卡路里, 但是没有睡眠和体重. 这时候你需要长按小米运动, 然后清除数据->清除缓存, 再进入小米手环同步, 然后在第三方介入里点击你的google账号, 系…

小米WatchS2和小米WatchS1 区别 哪个值得入手

. 小米智能手表S1采用1.39英寸AMOLED屏&#xff0c;支持NFC功能&#xff0c;具备GPS定位&#xff0c;支持心率监测、血氧测量、血压测量等功能&#xff0c;支持多种运动模式&#xff0c;支持支付宝和微信支付&#xff0c;还支持小米AI语音助手&#xff1b; 小米WatchS2更多使用…