乐趣区

关于javascript: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 利用的又一种加强形式有一个最根底的理解,感激浏览。

退出移动版