写点什么

Fiori 应用通过 Adaptation Project 的增强方式分享

作者:Jerry Wang
  • 2022 年 7 月 01 日
  • 本文字数:2418 字

    阅读完需:约 8 分钟

Fiori 应用通过 Adaptation Project 的增强方式分享

笔者曾经在 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 实现。



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


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




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


最近 Jerry 在 SAP WebIDE 里偶然看到新建菜单里有个名叫 Adaptation Project 的菜单项,提供了另一种不通过编程即可增强 Fiori 应用某些行为的方式。



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


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


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



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


在 WebIDE 里新建一个 Fiori Adaptation Project:



当我们创建适配项目时,实际是在创建现有应用程序的新变体(variant).


应用程序变体指的是原始应用程序,但包含在适配项目中创建的独立更改集。此外,还为该变体定义了一个应用程序 ID,需要在 Fiori Launchpad 中单独注册。


使用 SAP UI5 Visual Editor 创建 variant.


Adaptation Project 支持的功能有:


  • 可以对应用程序进行语义更改(例如,根据特定条件隐藏字段)

  • 控件属性和绑定可以更改(例如启用或禁用 Excel 导出智能表)

  • 可以添加自定义 XML 片段来扩展视图(例如,单击按钮打开自定义对话框)

  • 可以添加自定义业务逻辑(JavaScript)(例如,单击按钮调用 odata 服务)

  • 扩展 I18n 文本(例如翻译自定义按钮的标签)

  • 移动控件/部分(例如,在对象页面的两个标准字段之间放置一个自定义字段)


Adaptation Project 同 Fiori Breakout 的区别:


  • 在 Fiori Elements 应用程序中,创建了用于向智能模板添加自定义 UI (XML)和业务逻辑(JavaScript)的 breakout.

  • Breakout 是实际应用程序的一部分。因此,如果应用程序开发团队创建了一个 Fiori Element 应用程序,而客户希望通过 breakout 添加自定义逻辑,那么这将是一种修改。

  • Breakout 是对智能模板的扩展,是原始应用的一部分,而适应项目是应用的扩展。


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



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



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



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



在编辑模式里,选中视图上的表格控件,准备开始做属性的修改。我们注意到这个安全模式的提示,引入这种模式的用意和 Android 系统以及 Windows 操作系统的安全模式类似。SAP UI5 Visual Editor 的安全模式下,开发者只能针对控件进行受限制的属性修改。



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



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



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




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



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




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




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



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



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



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



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




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

发布于: 刚刚阅读数: 4
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
Fiori 应用通过 Adaptation Project 的增强方式分享_前端开发_Jerry Wang_InfoQ写作社区