天天看點

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

一個例子:

我在SalesLead TI頁面的這個tab裡配置了一個url Mashup,點選之後會跳轉到bing的頁面:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

然而從Chrome開發者工具的Elements标簽頁裡并未看到target url.

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

這個mashupID末尾為10,我在運作時點選之後:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

在Chrome開發者工具的network标簽頁裡,看到一個HTTP請求去讀取Mashup component:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

下圖可見,我們在RUI裡建立Mashup,儲存之後生成的也是一個UI component:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

相關的Mashup實作檔案:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

ttps://c4cstatic.hana.ondemand.com/resourcesvc/2002.2.1.0.1583807562475/SAP_UI/HTML5/resources/sap/client/mashup/common/util/Util-dbg.js

https://c4cstatic.hana.ondemand.com/resourcesvc/2002.2.1.0.1583807562475/SAP_UI/HTML5/resources/sap/client/mashup/rt/util/InportAdapter-dbg.js

注意,url mashup lazy load,未點超連結之前,沒有url生成,也沒有上述這些檔案的加載。

點選超連結之後:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

傳遞到Mashup的輸入參數,在InportAdapter._getSystemParameters裡生成:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

下面這行代碼執行完之後,新的Chrome tab就打開了:

that.emit(“inportFired”, mData);

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

InportFire的處理函數:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

從inport裡解析出action:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

跳轉的目的地已經維護在oAction變量裡了:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

oService.createUrl, 開始拼湊Mashup的url了:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
https://c4cstatic.hana.ondemand.com/resourcesvc/2002.2.1.0.1583807562475/SAP_UI/HTML5/resources/sap/client/mashup/common/model/MashupComponentModelService-dbg.js?eval

最後打開浏覽器新視窗的代碼是在window.open裡實作的:

SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的
SAP C4C url Mashup的跳轉工作原理 - 新的浏覽器視窗是如何打開的

繼續閱讀