這是 Jerry 2021 年的第 33 篇文章,也是汪子熙公衆号總共第 309 篇原創文章。
Jerry 的日常工作内容從 2020 年 8 月轉到 Angular 前端開發之後,算是領略到了這個流行前端架構繁榮生态圈的風采:在開發過程中遇到 Angular 技術問題時,很容易在社群裡找到大量相關文章。除了每天我都要浏覽的 Angular 官網之外,我也經常閱讀一些國内外大神寫的關于 Angular 源代碼分析的部落格。

同 Angular 相比,使用 SAP Fiori Elements 的從業者的絕對人數沒有 Angular 多,除了 SAP 官網文檔之外,介紹 Fiori Elements 源代碼實作和工作原理的文章不多,中文材料就更少了。
是以 Jerry 試着用中文寫了一些 SAP Fiori Elements 使用和工作原理介紹的文章,希望對這個開發架構的中文生态圈貢獻一點微薄之力:
在沒有任何前端開發經驗的基礎上, 建立第一個 SAP Fiori Elements 應用
答網友提問:使用 SAP Fiori Tools 建立的 Fiori Elements 應用,如何進行二次開發?
本地開發好的 SAP Fiori Elements 應用,如何部署到 ABAP 伺服器上
深入掌握 SAP Fiori Elements 工作原理的前提條件:了解 Smart Field
本文繼續通過 SAP Fiori Elements 應用一個實際增強的例子,來闡述其工作原理。
Jerry 上述列舉的文章,介紹了如何基于 SAP ES5 Demo 系統上部署的一個 OData 服務,建立一個類型為 List Report 的 SAP Fiori Elements 應用。其界面如下:
本文我們會分享:如何在 SAP Fiori Elements 表格控件的工具欄裡,添加新的自定義按鈕。
本系列後續文章,Jerry 會介紹,如何在自定義按鈕的點選事件處理函數裡,用代碼取得目前選中行項目的明細資訊。
Jerry 之前的文章 答網友提問:使用 SAP Fiori Tools 建立的 Fiori Elements 應用,如何進行二次開發?,曾經提到了在 Fiori Elements 項目工程的 manifest.json 檔案裡,通過聲明并實作 sap.ui.controllerExtensions 的方式來進行二次開發。sap.ui.controllerExtensions 可以了解成 ABAP 裡的 BAdI definition,而我們基于 sap.ui.controllerExtensions 建立的自定義控制器 (controller.js), 則可類比成 ABAP BAdI 增強的具體實作。
在 manifest.json 的 extends 區域裡維護如下代碼: