SAP学习笔记 - 开发06 - CDSView + Fiori Element 之 List Report

news2024/11/15 20:02:09

上一章讲了Fiori UI5开发环境搭建和实践:

- VSCode 安装Fiori Tools插件

- SEGW 创建后台程序,注册服务,Gateway Client确认服务

- 使用SEGW公开的服务来查询数据显示到页面

SAP学习笔记 - 开发05 - Fiori UI5 开发环境搭建2 Fiori Tools插件安装,SEGW创建后台程序,注册服务和Gateway Client确认,从SAP抽数据显示到页面-CSDN博客

本章继续讲SAP开发。

上一章根据官网学习了Fiori 中的OpenUI5,它也是SAP提供的一种开放式开发组件。在那个里面开发者具有巨大的灵活性,当然随之而来的就是需要自己设计界面等待琐碎的工作。

本章这里学习的是SAP自己做的一套组件,特点是搭配CDSView,不用Javascript编码,不用开发者自己去定义界面,你只需要做好CDSView,SAP就帮你把其他事情全做了。

这4种覆盖了绝大多数的需求,当然个性化确实功能有限。

咱们接下来就来了解了解 Fiori Element + CDSView 开发Fiori应用。

目录

1,SAP Fiori Element 简介

- 列表报告和对象页面(List Report and Object Page)

- 工作清单(Worklist)

- 概述页面(Overview Pages)

2,列表报告和对象页面(List Report and Object Page)

2-1,开发环境 - CDSView / Fiori UI5

 2-2,SAP环境

2-3,新建CDSView

- @OData.publish: true

- T-code: /n/IWFND/MAINT_SERVICE 激活服务

- 服务的URL

2-4,新建Fiori UI5 Project

2-5,npm start 启动,List Report 画面表示


下面是详细内容。

1,SAP Fiori Element 简介

Fiori Element有以下4种:每个画面的样式及详细介绍也可以参照如下URL

SAP Fiori Elements | SAP Fiori for Web Design Guidelines

- 列表报告和对象页面(List Report and Object Page)

SAP Fiori元素包含用于列表报告和对象页面的预定义模板。列表报告使用户可以筛选,查看和使用以列表(表)格式组织的项目(对象)。列表报告通常与对象页面结合使用。该对象页面使用户可以使用对象,提供查看,编辑和创建对象的功能。

<List Report>

<Object Page>

上面的List Page点任意一行,就可以跳到Object Page看详细页面。

- 工作清单(Worklist)

工作清单显示用户要处理的项目的集合。无需复杂的过滤。浏览项目列表通常涉及查看列表项目的详细信息并采取措施。在大多数情况下,用户必须完成或委派工作项。

<Worklist>

- 概述页面(Overview Pages)

概述页面是一个数据驱动的SAP Fiori应用程序,用于组织大量信息。信息以吸引人且有效的方式以卡片格式可视化。不同的卡用于不同类型的内容。用户友好的体验使查看,过滤数据以及对数据进行操作变得容易快捷。在展示全局时,业务用户可以专注于最重要的任务,从而可以更快地制定决策并立即采取行动。

<Overview Page>

- 分析列表页面Analytical List Page)
分析列表页面是用于详细分析的SAP Fiori元素应用程序。它使您可以从不同的角度分析数据,调查根本原因并根据交易内容采取行动。您可以使用数据可视化和商业智能来识别数据集或重要的单个实例中的相关区域。所有这些都可以在一页上无缝完成。

<Analytical List Page>

下面来挨个看看怎么在SAP中实现的。

2,列表报告和对象页面(List Report and Object Page)

2-1,开发环境 - CDSView / Fiori UI5

搭建Eclipse CDSView开发环境,详细步骤可以参照如下文章

SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建_sap用什么来开发-CSDN博客

搭建VSCode Fiori UI5 开发环境,详细步骤可以参照如下文章

SAP学习笔记 - 开发04 - Fiori UI5 开发环境搭建-CSDN博客

 2-2,SAP环境

将会使用这个表来做些实例学习

- SBOOK 个别Fligh预约

  它有5个Key字段:

  - Mandt - Client ,

  - Carrid - 航空会社Code,

  - Connid - 航班接续番号,

  - Fldate - 航班日期,

  - Bookid - 预约番号

2-3,新建CDSView

CDSView新建可以参照下面文章

SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建_sap用什么来开发-CSDN博客

注意几点:

- @OData.publish: true

  公开服务

- @UI.lineItem

   - position:显示位置,只有填了这个,那个字段才会默认显示在界面上

   - label:重命名字段显示Label名称

     字段重命名比较有用的地方是计算字段等复杂的情况

- @Semantics.amount.currencyCode:'forcurkey'

   正常一个金额字段只显示金额,这里就把货币单位,比如RMB,也一起合并显示

- importance:#LOW / #MEDIUM / #HIGH

  电脑,平板,手机等设备的宽度是不同的,这里的重要度设定是说宽度较小的情况下,

  不重要的字段就不显示了

  - #LOW: 只在Desktop显示(Only display on desktop browser)
  - #MEDIUM: 在桌面和Tablet显示(Only display in desktop browser or tablet)
  - #HIGH: 在所有设备中显示(Default value, display in all clients)

- @OData.publish: true

  有关公开服务,咱们以前在SEGW里面做过,可以参照下面文章。

SAP学习笔记 - 开发05 - Fiori UI5 开发环境搭建2 Fiori Tools插件安装,SEGW创建后台程序,注册服务和Gateway Client确认,从SAP抽数据显示到页面-CSDN博客

再简单贴张图,其实就是下面这个。

外部通过这个URL就可以访问SAP的数据,这就叫公开服务。

在CDSView里面,通过annotation(注解)的方式(@OData.publish: true)就可以简单公开了,注意不要忘记 点 Eclipse上面的激活图标。

但也不是就完事儿了,还是要到SAP里面再去激活一下,

Eclipse毕竟是外部的,你可以理解为激活分两步。

- T-code: /n/IWFND/MAINT_SERVICE 激活服务

这里面这些都是已经激活了的OData服务

有关其他的相关事务代码可以参照这篇文章

从头开始创建一个OData SAP Gateway Service_sap segw-CSDN博客

上图点一下 Service追加,填入

- SystemAlias:我这里填 LOCAL

- 技术Service名:ZTEST_SBOOK_01_CDS ( = Eclipse中的CDSView名称 + _CDS)

  然后回车之后就会显示出来你在Eclipse里面创建的CDSView

- 选中那条,点 追加选中的服务

这个界面是不是很熟悉,跟SEGW里面点激活出来的界面是一个界面

然后点确定就可以了

提示成功

至此,这个服务就做好可以用了

这里说一个注意点,就是SAP里面很多东西基本就是改不了的

就比如这里的 CDSView名称,在激活之后就改不了了

我试了改一下之后再次激活出错(错误消息大概是 "it cannot be rename cause it has been shipped".),而且改回原来的还继续报错,后面的编集什么的都不太好搞了。

如果实在是一不小心拼写拼错了的话,好像只能删了重新做一个。

Solved: Can sqlViewName of CDS view be renamed? - SAP Community

删除步骤:我没试过,需要的朋友可以试试看

  1. Make a local copy of the source code.
  2. Delete CDS Data Definition on Eclipse.
  3. Delete all the stored versions from table VRSD. (You can check on SE16N where OBJNAME="ZVIEW")
  4. Create new Data Definition with the copy you made.

- 服务的URL

那么激活之后,它的URL是啥呢?

我们上一章里面在SEGW >SAP Gateway Client里面得到的URL差不多,把最后的名称改一下即可

比如以前是:

http://mysap.goodsap.cn:50400/sap/opu/odata/SAP/ZPERSON01_SRV/

改成:

http://mysap.goodsap.cn:50400/sap/opu/odata/SAP/ZTEST_SBOOK_01_CDS

就这个地方不一样,前面服务器路径部分都是一样的。

其实还有另外一种更加直接方法

在SAP  /n/IWFND/MAINT_SERVICE 里面激活之后,再回到Eclipse,界面多了个标记

鼠标移上去就会显示OData.Service,点一下就显示一个URL

这就是咱们所需要的URL

https://mysap.goodsap.cn:44300/sap/opu/odata/sap/ZTEST_SBOOK_02_CDS/?sap-ds-debug=true&sap-client=400

@UI.lineItem : [{position:10, label : 'Airline ID'}]

TODO:label  

写法应该没啥问题,但是好像不好用啊

2-4,新建Fiori UI5 Project

启动VSCode,Shift+Ctrl+P > Fiori: Open Application Generator

出现如下画面之后,点 List Report Page,然后点 Next

输入

- Data Source and Service Selection: Connect to an OData Service

- OData service URL:

  http://mysap.goodsap.cn:50400/sap/opu/odata/SAP/ZTEST_SBOOK_01_CDS

然后输入用户名/PW,点Next

输入

- Main entity

- Table type: 有以下几种,默认选 Responsive,和ALV界面接近,我们先选它,以后再研究其他的

  - Analytical

  - Grid

  - Responsive

  - Tree

输入所需字段,其实基本都输好了,就按需改一下就OK了

注意 Add deployment configuration:它的意思是直接把代码传到ABAP系统上面

然后点 Finish

稍等一下,这就建好了

2-5,npm start 启动,List Report 画面表示

VSCode会自动启动默认浏览器,然后就显示画面

这里面应该还有很多可以设置的地方,默认的好像也不好看哈

点 Go

这样就可以显示出来检索数据

点Settings图标,然后就可以多选几个字段,点OK

选中的字段都显示出来了

可以看到上面特别提到的 金额+币种 的显示

当然也可以排序,过滤,下载

虽然不万能,但是也基本能满足绝大多数的需求

点任意一行,就会跳到 Object Page

咱们这里还没做好,SAP默认帮咱弄个架子,点的时候能迁移过去

本章主要讲了以下内容:

- SAP Fiori Element 简介

  使用SAP Fiori Element的话,前台基本不怎么用开发,后台也就写了个CDSView,

  功能也蛮强大的,可以说是SAP顾问必须要了解的内容。

- 列表报告和对象页面(List Report and Object Page)

以上就是本章的内容。

更多SAP顾问业务知识请点击下面目录链接

https://blog.csdn.net/shi_ly/category_12216766.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2138880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react js 使用 useEffect 钩子

起因&#xff0c; 目的: useEffect() &#xff0c; 已经遇见好几次了。 我的理解是&#xff0c; 页面加载完成之后&#xff0c;会执行这个函数。&#xff1f;&#xff1f;&#xff1f; 写个例子&#xff0c; 请求 api import React, { useState, useEffect } from "re…

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…

Java | Leetcode Java题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, new Comparator<int[]>() {public int compare(int[] person1, int[] person2) {if (person1[0] ! person2[0]) {return person2[0] - perso…

5.TensorBoard的使用(二)--add_image()

TensorBoard的使用&#xff08;二&#xff09; 1.使用add_image()给添加图片 首先导入Tensorboard包 from torch.utils.tensorboard import SummaryWriter创建一个SummaryWriter类的实例&#xff0c;并将所有的事件文件保存在logs文件夹中 writer SummaryWriter(logs)使用add…

【光照增强论文略读】Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement

这篇题为《用于低光照图像增强的零参考深度曲线估计》的论文介绍了一种名为Zero-DCE的创新方法&#xff0c;用于增强低光照图像。其主要创新点在于&#xff0c;它在训练过程中不需要成对或非成对的参考图像&#xff0c;因此是一种“零参考”方法。通过轻量级深度学习模型DCE-Ne…

五星级可视化页面(25):非蓝色系,金色系可视化界面。

深蓝色系的可视化界面是最常见的&#xff0c;本文专门分享一些金色系的可视化界面。

java项目之编程训练系统源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的编程训练系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 编程训练系统的主要使用者管…

TCP套接字【网络】

文章目录 TCP常见接口服务端服务端创建套接字服务端绑定服务端监听服务端获取连接服务端处理请求 客户端客户端创建套接字客户端连接服务器并发起请求 代码 TCP常见接口 创建套接字&#xff1a;&#xff08;TCP/UDP) int socket(int domain, int type, int protocol);inet_at…

超高速传输 -- 超通道Superchannel

超通道表示多个子载波在波分侧合并成一个更大带宽的光通道一起传输。 超通道基于flexible grid技术&#xff0c;能够提升频谱效率、降低滤波器级联代价。 超通道目前主要应用在波长间隔为37.5GHz的场景&#xff0c;在此场景下&#xff0c;多个ROADM单板级联时的…

速通LLaMA1:《LLaMA: Open and Efficient Foundation Language Models》全文解读

文章目录 论文总览1. 创新点和突破点2. 技术实现与算法创新3. 架构升级4. 概念补充SwiGLU激活函数AdamW 5. 总结 AbstractIntroductionApproachPre-training DataArchitecture&#xff08;架构&#xff09;Optimizer&#xff08;优化器&#xff09;Efficient implementation&am…

浅谈人工智能之基于ollama本地大模型结合本地知识库搭建智能客服

浅谈人工智能之基于ollama本地大模型结合本地知识库搭建智能客服 摘要 随着人工智能技术的飞速发展,基于大型语言模型(LLMs)的智能客服系统逐渐成为提升企业服务质量和效率的关键工具。然而,对于注重数据隐私和安全的企业而言,使用云服务可能会引发数据泄露的风险。因此…

快速打字及技巧

1.tab部首 娴 xian tab nv 楔 xie tab mu 2.用单引号间隔 xian 西安 修改技巧&#xff1a;Ctrl首字母就能快速定位到该字母的前面 3.启用U模式&#xff0c;再也不怕生僻字 u tututu 垚 u niuniuniu 犇 或者用笔画拼音缩写 u pn 㐅 4.启用V模式&#xff0c;输入法秒变计算…

Ubuntu 不重装系统增加交换空间大小

目录 一、设置交换文件 二、删除重新创建交换文件 一、设置交换文件 1、创建新的交换文件 使用 dd 命令创建一个新的交换文件。例如&#xff0c;创建一个4GB的交换文件&#xff1a; sudo dd if/dev/zero of/swapfile bs1G count4 2、设置交换文件的权限 为了安全起见&am…

蒸!--数据在内存中的存储

一.整数在内存中的存储 对于整形来说&#xff1a;数据存放内存中其实存放的是补码。 为什么&#xff1f; 在计算机系统中&#xff0c;数值⼀律⽤补码来表⽰和存储。 原因在于&#xff0c;使⽤补码&#xff0c;可以将符号位和数值域统⼀处理&#xff1b; 同时&#xff0c;加法和…

《Deep Residual Learning for Image Recognition》论文导读

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl论文背景 随着深度学习的发展,神经网络的深度逐渐成为影响模型性能的关键因素。然而,随着网络深度的增加,训练过程中的梯度消失和模型退化问题愈发严重,这限制了神经网络性能的进一步提升。《…

【例题】lanqiao3865 Alice和Bob的爱恨情仇

样例输入 1 2 3 4 1样例输出 1 Alice样例输入 2 2 1 6 6样例输出 2 Bob解题思路 题目已知条件&#xff1a; Alice先手每次只能从一堆中取走 k m ( k 为奇数 , m ≥ 0 ) k^m(k为奇数,m\geq0) km(k为奇数,m≥0)个饼干&#xff0c;所以每次取走的饼干数量一定是奇数。取…

C++——哈希unordered_set/unordered_map的封装

目录 前言 二、unordered_set的封装 1.模板参数列表的改造 2. 增加迭代器操作 3. 模板参数的意义 三、unordered_map的封装 1、“轮子所需要的参数 2、迭代器 四、完整代码 1、HashTable 2、unordered_set 3、unordered_map 总结 前言 unordered_set和map的介绍在上一篇博客有…

前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)

图形验证码是网站安全防护的重要组成部分&#xff0c;能有效防止自动化脚本进行恶意操作&#xff0c;如何实现一个简单的运算图形验证码&#xff1f;本文封装了一个简单的js类&#xff0c;可以用于生成简单但安全的图形验证码。它支持自定义验证码样式&#xff0c;包括字体大小…

驾校预约学习系统的设计与实现

摘 要 伴随着信息技术与互联网技术的不断发展&#xff0c;人们进到了一个新的信息化时代&#xff0c;传统管理技术性没法高效率、容易地管理信息内容。为了实现时代的发展必须&#xff0c;提升管理高效率&#xff0c;各种各样管理管理体系应时而生&#xff0c;各个领域陆续进到…

计算机毕业设计 扶贫助农系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…