sap fiori导出列表到excel_介绍一种Fiori标准应用的增强方式

b6e40b0d42212938889e966d958f9a02.png

2015年,Jerry还在SAP成都研究院CRM Fiori开发团队工作时,担任了德国一个著名的灯具制造商客户的CRM Fiori项目的dev angel. 当时客户提出了若干对CRM Fiori标准应用的增强需求,总的来说分为前台Fiori UI界面的增强(比如增添新的自定义字段)以及后台逻辑的增强。

当时还处于Fiori 1.0时代,还没有直接在浏览器上使用S/4HANA的Key User tool进行新建字段的办法,因此对于前台界面的增强,我给客户的解决方案是使用UI5 XML视图中预留的Extension point,而后台逻辑的增强,则通过UI5 JavaScript controller中的extension hook以及ABAP后台的BAdI实现。

95df08ce5f26152d336c25a882dd53b0.png

我和客户四个月的合作非常愉快,最后项目顺利上线,我也收到了德国客户通过邮件发送的感谢信,客户还把这个项目他们做的所有增强代码打成压缩包发送给我,希望SAP能好好分析这些逻辑,评估某些需求是否具有普遍性,将来能否做到SAP标准Fiori应用里,以便更多的客户能受益。这个德国客户在项目实施中的专业程度和一丝不苟的态度,给我留下了深刻的印象。

当时客户的一个实际需求是,创建一个新的自定义字段,并能够让该字段在端到端的业务流程中启用(支持增删改查). 虽然这个需求现在看起来比较常见,但在五年前的Fiori 1.0时代,实现起来还颇费一番功夫,因为前后台都得做一些增强。

5ee1597183f31ee5fbf6d07b386430a7.png

a21df1b43b69e7d6eda34d9e7daa50b7.png

我当时把完整的增强实现步骤写成博客发在了SAP社区上,因为步骤较多,总共写了四篇文章才介绍清楚:

An example of End to End extension on CRM Fiori application - part1

An example of End to End extension on CRM Fiori application - part2

An example of End to End extension on CRM Fiori application - part3

An example of End to End extension on CRM Fiori application - part4

最近Jerry在WebIDE里偶然看到新建菜单里有个名叫Adaptation Project的菜单项:

c2feaa00fe1c0d28c601dc2a90ba8b87.png

网上搜索一番后,发现一篇介绍其用法的博客,这里Jerry把文章概要用中文描述出来分享给大家。该博客介绍了另一种不通过编程即可增强Fiori应用某些行为的方式,对其细节感兴趣的,可以点击文末的“阅读原文”链接直接阅读SAP社区的英文版博客。

SAP Fiori for SAP S/4HANA - Adding Export to Excel to a standard SAP Fiori elements app using a Adaptation Project

这种新的增强方式是通过Fiori Adaptation Project完成的,通过一个实际的需求来介绍。

我们说SAP应用,最典型的使用方式就是以搜索界面作用入口,在搜索结果的表格控件里点击某条记录进入明细页面开始操作。

由于种种原因,并不是所以的表格控件都提供将数据导出成excel格式的功能。

b0c1c71d32665550bbf9cc8386d4ac1c.png

如果搜索结果的表格是通过SAP Fiori Elements技术绘制而成,可以在WebIDE里使用Fiori Adaption Project将excel导出功能启用。

在WebIDE里新建一个Fiori Adaptation Project:

c2feaa00fe1c0d28c601dc2a90ba8b87.png

下一步需要选择增强哪一个SAP系统的哪一个Fiori应用。如果待增强的Fiori应用位于On-Premises系统,需要预先配置SAP Cloud Connector和SAP云平台上的Destination,否则到了这一步,在SAP UI5 ABAP Repository的下拉列表里将无法看到该系统。

9693c0b660b4e4064923c093820c3645.png

On-Premises系统确定之后,在该系统找到要增强的Fiori应用,通过输入该应用的技术ID来定位。点击Next完成Fiori Adaptation Project的创建向导,这里我们给该project取名s4demo.

431dbb76aea4de0c06f761e0ad90f5cc.png

在WebIDE里邮件该project,选择SAPUI5 Visual Editor,打开这个所见即所得的视图编辑器,

90f6cb4a982ec5fb43983fee9f41e91d.png

默认是以Preview模式打开的,点击右上角的Edit按钮进入编辑模式:

197ab6be31ee941439017f5dc029d026.png

在编辑模式里,选中视图上的表格控件,准备开始做属性的修改。

我们注意到这个安全模式的提示,引入这种模式的用意和Android系统以及Windows操作系统的安全模式类似。SAP UI5 Visual Editor的安全模式下,开发者只能针对控件进行受限制的属性修改。

b5f54eeba0940f6d382493028f29f493.png

有付出就有回报,虽然修改受到限制,但在安全模式下进行的修改是升级安全的,即将来S/4HANA系统升级后,这些修改仍然得以保留。

b5cc93d76e5f7e3ad064db711b45cc58.png

为了启用表格的excel导出功能,我们得关掉安全模式:

00ef63f29ef33ad19b2c938337af79b3.png

然后把Use Export to Excel的标志位从默认的false设置成true:

76963d92c218642f1e86f5c893ff2d2a.png

a1943688d72258523b15286ad028cc42.png

保存修改,在项目文件夹下生成一个名为changes的文件夹,里面记录了这次属性修改的明细。这种将属性修改通过单独的文件保存下来的思路,和SAP C4C里通过Key User Tool或者Cloud Application Studio修改UI视图后生成Change Transaction用来记录修改明细是一致的。

27cc5237bf02f6bc9216c6c639338102.png

修改完保存之后,再次打开应用,就可以测试这个excel导出功能了。

475729b3a80eab565f107473453b0726.png

ff53ab878581525019b1f0569e577e1c.png

本地测试通过后,采用和部署SAP标准Fiori应用同样的办法,将这个Adaptation Project部署到对应的S/4HANA系统上。

2b6e0ca3f40cc53396adcec4ef52b5ff.png

a48fa676e205415e5c46470d0e91f5d0.png

点击Show Details能得知到底有哪些资源被成功部署了。

cc0a784d65db8fa99d6614a4763205d4.png

成功部署的提示信息:Folder XXXX ( CUSTOMER_BASE) created in LRep.

9d2485526bc93eaaf42182c0b72e705b.png

这个LRep即Layed Repository,S/4HANA里一个分层的存储系统。所谓Layed,体现在这个存储系统引入的分层概念,即Customer Layer,Partner Layer,SAP Layer等。不同的操作者——客户,Partner和SAP标准开发人员,对这些分层存储的资源具有不同的读写权限。

7d9c4d7004e6b8af82b0635742231b59.png

在S/4HANA系统里,执行报表/UIF/GET_FILES_4_NS,可以查看到从WebIDE部署到S/4HANA LRep的这些资源:

599ec6fe3b1ae5e4264d45c20c37aca6.png

在第一次运行使用Fiori Adaptation Project增强后的Fiori应用时,存储在LRep Customer Layer的Fiori Adaptation Project里描述的UI5应用修改信息,会和Fiori标准应用的资源做一个合并,产生最后客户在浏览器里看到的,具有Export to Excel按钮的Fiori应用。

8ac8ba65f407b03f0ad1d4200d797d69.png

d5008359c01f18ab7abab15d6ec6d3e2.png

希望本文能够帮助大家对Fiori应用的又一种增强方式有一个最基础的了解,感谢阅读。

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

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

相关文章

打桩时不修改源码_考研网上报名点了修改报名,修改后到报名点时,出现部分信息不符合参考条件,请修改或重新报名...

展开全部用户直接填写2113页面底部的黄色显示5261的验证码信息后4102,点击确认1653无误按钮,完成专报名操作,再修改相关信属息即可。但招生单位、考试方式和报考点几项不允许修改,若填写错误,只能再新增一份新的报名信…

ios 图片居中裁剪_[ iOS Shortcuts / Workflow ] 分享一个给照片批量加「底部居中偏上」水印的捷径,可适应不同水印的尺寸...

首先放链接效果示意图捷径特点本捷径的水印位置位于图片底部局中偏上的位置可自适应不同水印的尺寸可多选照片批量操作在加水印操作完成后会弹出预览,完成后点击保存或放弃选择保存后还可选择是否删除原图受益于捷径 app 本身,加水印后的图片分辨率、拍摄…

java检测kafka是否连接成功,kafka代码测试连接

1.发送:package kafka.test;import java.util.Date;import java.util.Properties;import java.util.Random;import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.ProducerConfig;public class KafkaProduct {public …

电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】

在我们设置路由器的过程中,路由器设置界面一般会给我们提供4种上网方式选项,分别是:“让路由器自动选择上网方式(推荐)”、“PPPoE(ADSL虚拟拨号)”、“动态IP(以太网宽带,自动从服务商获取IP地址)”、“静态IP(以太网宽带&#x…

PHP调整图片饱和度,window_Win10系统电脑屏幕的饱和度如何调整?,什么是饱和度? 对电脑来说 - phpStudy...

Win10系统电脑屏幕的饱和度如何调整?什么是饱和度?对电脑来说,饱和度是指色彩的鲜艳程度,也称之为色彩的纯度。Win10系统电脑屏幕的饱和度如何调整?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家详细介绍…

vue加跨域代理静态文件404_vue-cli 设置跨域代理 线上地址报404

vue-cli 设置跨域代理,本地正常访问,线上地址报404。这是什么原因?vue-cli中跨域代理设置:module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: {/api: {target: https://xxx.xxx-xxx.co…

钉钉关键字回复功能_在家办公首日:钉钉、企业微信集体“崩溃”,只能选择 QQ、微信...

今日是春节假期结束后的第一个工作日,不少企业规定2月3-7日可以在家远程办公。不过尴尬的是,今日上午,钉钉、企业微信等在线办公App集体出现问题。不少网友反馈钉钉出现Bug,“不知道大家工作的怎么样,我的钉钉刚才一直…

hive 配置用户名_配置HiveServer2的安全策略之自定义用户名密码验证

具体从网上看http://doc.mapr.com/display/MapR/UsingHiveServer2#UsingHiveServer2-ConfiguringCustomAuthentication一共提供了三种安全认证方式,我们通常采用的为第三种自定义的方式。To implement custom authentication for HiveServer2, create a custom Auth…

电力系统潮流计算程序 matlab,大神们,求个电力系统潮流计算的matlab程序。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼ninput(Please input n\n); %n表示系统的节点数d0input(Please input d0\n); %d0表示系统的误差minput(Please inpit m\n); %m表示系统的pq节点的个数p0ones(n-1,1);q0ones(m,1);d1;dpvones(n-1,1);dqvones(m,1);dpzeros(n-1,1);dq…

matlab 数字调制函数,matlab用于数字调制,几个函数的使用问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼help dmodDMODWARNING: This is an obsolete function and may be removed in the future.Please use PAMMOD, QAMMOD, GENQAMMOD, FSKMOD, PSMMODMSKMOD instead.请教FSKMOD中的几个参数应该如何选取!>> help fs…

python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

概述上一篇讲述了《机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现》,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现。决策树决策树(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种。看字面意思应…

image pil 图像保存_使用PIL保存图像

我正在尝试使用PIL保存我从头开始创建的图像newImg1 PIL.Image.new(RGB, (512,512))pixels1 newImg1.load()...for i in range (0,511):for j in range (0,511):...pixels1[i, 511-j](0,0,0)...newImg1.PIL.save("img1.png")我收到以下错误:Traceback(最…

php布尔类型转为字符串,php将布尔值类型转为了字符串类型,比如传入isAnalog:true,处理后isAnalog:true...

传入参数:{"cpid":"111","ipid":0,"pointType":1,"isAnalog":true,"scpid":"","name":"","alias":"","isArchive":false,"rangeLo…

python自动发送邮件不需要发件邮箱_python使用QQ邮箱实现自动发送邮件

最近用到Python自动发送邮件,主要就是三步,登录邮件、写邮件内容、发送,用到的库是 smtplib 和 email,直接使用pip安装即可我使用的是QQ邮箱,首先需要设置QQ邮箱POP3/SMTP服务记住这个授权码,这个授权码就是…

监听手指是否离开屏幕android_Flutter事件监听

一. 事件监听 在大前端的开发中,必然存在各种各样和用户交互的情况:比如手指点击、手指滑动、双击、长按等等。所有内容首发于公众号:coderwhy在Flutter中,手势有两个不同的层次:第一层:原始指针事件&#…

matlab二维数组最小值出错,矩阵求最小值问题 问题是: 错误使用空矩形矩阵进行赋值...

我现在有一组数据 当然其实是有很多数据了 已经上万 只截取了其中一部分假设 【X Y W】32.8876000000000 26.6148000000000 1.0101000000000032.9319000000000 28.8627000000000 1.0099600000000032.9803000000000 31.30950000000…

android运行别人的项目_导入他人的Android工程

Android应用界面开发第一章学习第三部分####1.导入其它人创建的Android Studio项目(重点在第二部分)首先将下载的Project压缩包解压到自己的AS工程目录比如:工程目录然后打开AS软件,关闭其它工程(close project),然后准备导入刚才解压的文件夹…

@excel注解_Excel导入导出Java解决方案推荐

今天锋哥介绍一款Excel导入导出Java解决方案Easy-POI,以前我们用POI,麻烦点,Easy-POI是封装好的,用起来Easy点,封装过,性能好,所以大伙有空可以研究下;Easy-POIEasy-POI是一款Excel导…

wind 下装mysql,windows 下安装MySQL

下载压缩包首先到官网下载安装包,可联系提供配置环境变量找到系统属性(windows10在高级系统设置)在这里插入图片描述找到系统变量的 Path 点击编辑在这里插入图片描述点击新建,然后添加进去自己压缩包位置的bin目录在这里插入图片描述之后点击三个确当 (同时自动关闭…

javapanel根据内部组件_java gui中怎么用jpanel实现组件的绝对定位

展开全部相对定位是利用布局管理器GridBagLayout() 来实现的GridBagLayout 布局是根据GridBagConstraints() 来设定的GridBagConstraints主要有8个重要参数需要掌握非别62616964757a686964616fe58685e5aeb931333332613033是gridx,gridy —— 设置组件的位置,gridx…