欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > SAP CAP 第 7 部分:将 Fiori Launchpad 入口添加到 CAP(沙盒环境)

SAP CAP 第 7 部分:将 Fiori Launchpad 入口添加到 CAP(沙盒环境)

日期:2023-09-30 15:41

本系列之前的文章

本系列之前的文章:

SAP CAP 第 1 部分:基于 Java 实现快速创建服务
SAP CAP 第 2 部分:为服务添加数据库支持
SAP CAP 第 3 部分:定义模型
SAP CAP 第 4 部分:针对 CAP添加 Fiori Elements 程序 (1)
SAP CAP 第 5 部分:将 Fiori Elements 程序添加到 CAP (1)
SAP CAP 第 6 部分:将 Fiori Elements 程序添加到 CAP (3)

继续增强现有代码

根据第4部分到第6部分的修改和增强,现有代码结构如下:

增强应用程序文件夹

app文件夹中添加以下文件:

  • package.json
  • appconfig文件夹

文件package.json

第四部分提到过,这里的app文件夹实际上是为approuter准备的,所以,package.json定义如下:

{"名称": "approuter","依赖项":  {"@sap /approuter": "^13"},"脚本":{“开始”:"节点node_modules/@sap/approuter/approuter.js"}
}

文件夹appconfig

app文件夹下创建一个新的子文件夹appconfig。该文件夹用于提供Fiori Launchpad的Sandbox系统。实际部署到SAP BTP时,需要遵循Launchpad定义的标准。

文件fioriSandboxConfig.json

在新创建的appconfig下创建

创建fioriSandboxConfig.json。该文件用于定义 Launchpad Sandbox 环境。

{"服务": {"启动页面": {“适配器”: {"配置": {"目录": [], “群组”: [{"id": "管理员","标题" : "管理员","已预设":true,"可见": true,"已群组锁定": false,"磁贴" :[{"id": "管理书籍","tileType":  “sap.ushell.ui.tile.StaticTile” ,"属性": {"目标URL": "#图书管理", "标题": "管理图书","描述":  “找到你最喜欢的书”} }]},{"id":“书”,“书名”: "书","已预设": true ,“可见”: true,"已群组锁定": false,"瓷砖": [{"id":  “浏览书籍” ,"tileType": "sap.ushell.ui.tile.StaticTile","属性": {"目标URL": "#图书显示","标题": “展示书籍”,“描述”: “找到你最喜欢的书”}}]}]}}},"导航目标分辨率":{"配置": {"启用ClientSideTargetResolution" :true}},"客户端目标分辨率":  {“适配器” {"配置": {"入界" : {"管理书籍": {"语义对象": "书籍", “动作”:"管理","签名": {"参数": {},"附加参数": "允许"},"分辨率Result": {"应用程序类型": "SAPUI5",“附加信息”: "SAPUI5.Component=管理书籍","url": "/manage-books/webapp"} } ,"浏览书籍": {"语义对象":  “书籍”,“行动” “显示”“签名” {“参数”: { },"附加参数": "允许"}, "解析结果": {"应用程序类型": "SAPUI5","附加信息":  “SAPUI5.Component=浏览书籍” ,"url": "/浏览图书/webapp"}}}} }}}}

这里的沙盒的入站定义,完全对应了篇六的两个Fiori Elements程序的“semanticObject”:和
“action”。

该配置要求接入口为fiori.html,所以,继续创建该HTML文件。

文件fiori.html

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

将此 HTML 文件添加到 app 文件夹下:

DOCTYPE html>
<html><><http-equiv="X-UA 兼容" 内容="IE=边缘" /> <http-equiv="内容类型" 内容=" text/html;字符集=UTF-8"/><名称=查看端口" 内容="宽度=设备宽度,初始比例=1.0"/><标题> 菲奥里标题><脚本>窗口["sap-ushell-config" ] = {默认渲染器: "fiori2",应用程序 : {}};脚本><脚本id= "sap-ushell-bootstrapsrc=https://www.introzo.com/1.115.0/test-resources/sap/ushell/bootstrap/sandbox.js>脚本><脚本id ="sap-ui-bootstrap" src="https://www.introzo.com/1.115.0/resources/sap -ui-core.jsdata-sap-ui-libs=sap.m,sap.ushell,sap.collaboration,sap.ui.layout数据SAP -ui-compatVersion="edge"data-sap-ui-主题=" sap_horizo​​n"数据-sap-ui-frameOptions="允许">脚本><脚本 >sap.ui.getCore().attachInit(()=>树液.ushell.容器. createRenderer().placeAt("内容"))脚本>头 ><body=sapUiBody id="内容">身体>
html>

更新Srv中的UiIndexContentProviderFactory

更新UI索引的入口:

 @Overridepublic void writeContent(PrintWriter writer, String contextPath) {作家.打印(ENDPOINT_START);作家printf(ENDPOINT, contextPath +  "/fiori.html", "Fiori Launchpad " );作者.打印(ENDPOINT_END);}

再次检查代码

本文增强后,最新代码结构如下:

操作效果


代码库(Gitcode)

本文附带的代码

各分支的详细介绍请参考www.introzo.com

本文对应的分支是3_withlaunchpad

关灯