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實作。
我和客戶四個月的合作非常愉快,最後項目順利上線,我也收到了德國客戶通過郵件發送的感謝信,客戶還把這個項目他們做的所有增強代碼打成壓縮包發送給我,希望SAP能好好分析這些邏輯,評估某些需求是否具有普遍性,将來能否做到SAP标準Fiori應用裡,以便更多的客戶能受益。這個德國客戶在項目實施中的專業程度和一絲不苟的态度,給我留下了深刻的印象。
當時客戶的一個實際需求是,建立一個新的自定義字段,并能夠讓該字段在端到端的業務流程中啟用(支援增删改查). 雖然這個需求現在看起來比較常見,但在五年前的Fiori 1.0時代,實作起來還頗費一番功夫,因為前背景都得做一些增強。
我當時把完整的增強實作步驟寫成部落格發在了SAP社群上,因為步驟較多,總共寫了四篇文章才介紹清楚:
https://blogs.sap.com/2015/06/18/an-example-of-end-to-end-extension-on-crm-fiori-application-part1/ https://blogs.sap.com/2015/06/19/an-example-of-end-to-end-extension-on-crm-fiori-application-part2/ https://blogs.sap.com/2015/06/20/an-example-of-end-to-end-extension-on-crm-fiori-application-part3/ https://blogs.sap.com/2015/06/24/an-example-of-end-to-end-extension-on-crm-fiori-application-part4/最近Jerry在WebIDE裡偶然看到建立菜單裡有個名叫Adaptation Project的菜單項:
網上搜尋一番後,發現一篇介紹其用法的部落格,這裡Jerry把文章概要用中文描述出來分享給大家。該部落格介紹了另一種不通過程式設計即可增強Fiori應用某些行為的方式,對其細節感興趣的,可以點選文末的“閱讀原文”連結直接閱讀SAP社群的英文版部落格。
SAP Fiori for SAP S/4HANA – Adding Export to Excel to a standard SAP Fiori elements app using a Adaptation Project
https://blogs.sap.com/2019/10/11/sap-fiori-for-sap-s4hana-adding-export-to-excel-to-a-standard-sap-fiori-elements-app-with-a-fiori-adaptation-project/這種新的增強方式是通過Fiori Adaptation Project完成的,通過一個實際的需求來介紹。
我們說SAP應用,最典型的使用方式就是以搜尋界面作用入口,在搜尋結果的表格控件裡點選某條記錄進入明細頁面開始操作。
由于種種原因,并不是是以的表格控件都提供将資料導出成excel格式的功能。
如果搜尋結果的表格是通過SAP Fiori Elements技術繪制而成,可以在WebIDE裡使用Fiori Adaption Project将excel導出功能啟用。
在WebIDE裡建立一個Fiori Adaptation Project:
下一步需要選擇增強哪一個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應用的又一種增強方式有一個最基礎的了解,感謝閱讀。
本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。