天天看點

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

今天是農曆鼠年大年初六,本文是鼠年第6篇文章,也是汪子熙公衆号第205篇原創文章。

大家這幾天宅得怎麼樣了?

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

Jerry之前的文章 ​​那些年我用過的SAP IDE​​ 曾經提到,我們可以把SAP GUI裡的傳統事務碼放到SAP Launchpad裡啟動,并在浏覽器裡運作。

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

這是SE80在浏覽器裡運作的界面:

為響應government号召,盡量少出門,反正也閑着沒事,今天我們就來聊聊這一切是怎麼實作的。

Jerry最初注意到這種将SAP GUI裡的事務碼運作在浏覽器裡的做法,是在日常工作的測試時,發現Fiori Launchpad裡這個Create Material的tile.

回憶一下,原生的Fiori應用,無論我們在頁面内進行何種點選操作,都不會跳轉到一個全新的頁面去,即不會打開一個新的浏覽器視窗,或者一個新的标簽頁——Fiori原生應用,所有的使用者操作都在一個頁面内完成,頁面的切換通過SAP UI5的router元件完成,這是一個典型的Single Page Application的特征。

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

反之,當我點選了上圖Create Material tile之後,啟動的應用是在另一個新的Chrome标簽頁裡打開并操作的,請大家注意上圖紅色新開啟的标簽頁。

這就說明,這個Create Material tile背後的應用不是基于SAP UI5開發的Fiori原生應用。

那麼它又是用什麼技術開發的呢?仔細觀察url:

https://:44311/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=928&sap-language=EN#Material-create?sap-ui-tech-hint=GUI

發現了這個片段:sap-ui-tech-hint=GUI

這暗示我們,該應用的UI是基于SAP GUI繪制的。

我們在浏覽器裡打開該應用:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

把上圖該應用的界面同SAP GUI裡S/4HANA的物料主資料建立事務碼MM01的界面做對比:

發現除了外觀風格外,二者的字段名稱,位置,布局完全一緻。結合種種我們觀察到的結果,顯然這個Create Material tile指向的應用是基于SAP GUI裡MM01事務碼包裹而成的。

在浏覽器裡打開該tile,在Chrome開發者工具中把tile所屬的Fiori Catalog ID記錄下來:SAP_CMD_BC_PR_MAINT

在Fiori Launchpad裡根據該ID打開對應的catalog,發現有好幾個和Material相關的跳轉對象,其類型都為SAP GUI裡的Transaction:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

我們之前發現的url片段,sap-ui-tech-hint=GUI,就配置在這裡:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

跳轉的目的事務碼ID MM01,配置在此處。同時Device Types裡隻支援桌面,這沒什麼問題,因為SAP GUI通過浏覽器渲染出來的界面,不像SAP UI5那樣具有響應式布局的功能,是以隻能運作在桌面浏覽器裡。

在運作時,一旦SAP UI5架構代碼解析到sap-ui-tech-hint參數的值為GUI,就執行對應的渲染邏輯。

在Chrome開發者工具的Sources标簽頁裡,能看到gui/sap/its這個路徑片段。

ITS即Internet Trasaction Server,SAP Netweaver裡一項非常古老的技術,這個技術提供的元件能解析使用SAP GUI技術開發出的screen的中繼資料并渲染成HTML,進而能夠讓SAP GUI的事務碼運作在浏覽器裡。

關于SAP ITS in SAP NetWeaver Application Server的更多介紹,參考SAP幫助文檔:

​​https://help.sap.com/saphelp_nw70/helpdata/en/46/668d4b72255de4e10000000a1553f6/frameset.htm​​

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

如果我們想體驗ITS,也很容易。SICF事務碼,輸入webgui,執行:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

發現這個節點正好位于本文正在讨論的its節點下:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

右鍵單擊webgui,選擇Test Service:

自動彈出了浏覽器視窗,顯示的頁面同使用SAP GUI登入系統後顯示的初始頁面一緻。

接下來可以像使用SAP GUI那樣,在浏覽器裡輸入事務碼并執行了。比如SE38進入ABAP編輯器:

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動
為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

後續Jerry會介紹如何把一個SAP GUI的事務碼(無論是标準的事務碼還是使用者自定義的事務碼)配置到SAP Fiori Launchpad并打開。

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動

《終結者》裡最經典的機器人型号T-800,内置金屬骨架,外表覆寫生物組織以及仿生皮膚,由于外表和人類幾乎一模一樣,是以能輕松滲透到人類群體。然而人類忠實的夥伴,狗,可以輕松分辨出T-800和普通人類。

希望本文Jerry介紹的這些内容也能幫助大家輕松分辨Fiori原生應用和采用SAP ITS技術渲染的僞Fiori應用。感謝閱讀。

更多閱讀

Jerry的通過CDS view + Smart Template 開發Fiori應用的blog合集

SAP Fiori應用的三種部署方式

Jerry的Fiori原創文章合集

SAP成都C4C小李探花:淺談Fiori Design Guidelines

SAP Fiori + Vue = ?

Fiori Fundamentals和SAP UI5 Web Components

30分鐘用Restful ABAP Programming模型開發一個支援增删改查的Fiori應用

SAP Fiori應用索引大全

介紹一種Fiori标準應用的增強方式

揭開SAP Fiori程式設計模型規範裡注解的神秘面紗 - @ObjectModel.readOnly工作原了解析

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動并運作在浏覽器裡

要擷取更多Jerry的原創文章,請關注公衆号"汪子熙":

為什麼SAP GUI裡的傳統事務碼能通過Fiori Launchpad啟動