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

i042416發表於2020-02-06

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

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

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

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

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

這是SE80在瀏覽器裡執行的介面:

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

為響應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://<hostname>: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的介面做對比:

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

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

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

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

在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 GUI裡的傳統事務碼能通過Fiori Launchpad啟動

在執行時,一旦SAP UI5框架程式碼解析到sap-ui-tech-hint引數的值為GUI,就執行對應的渲染邏輯。

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

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

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

ITS即Internet Trasaction Server,SAP Netweaver裡一項非常古老的技術,這個技術提供的元件能解析使用SAP GUI技術開發出的screen的後設資料並渲染成HTML,從而能夠讓SAP GUI的事務碼執行在瀏覽器裡。

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

SAP Help Portal

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

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

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

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

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

右鍵單擊webgui,選擇Test Service:

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

自動彈出了瀏覽器視窗,顯示的頁面同使用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的原創文章,請關注公眾號"汪子熙".


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2674608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章