天天看點

SAP C4C HTML Mashup initializePane方法裡的Inport和Navigation處理

在Cloud Application Studio裡建立的HTML mashup,儲存到C4C背景後,其中繼資料再被讀取到前端消費,格式如下:

我在C4C UI上指定的Mashup參數,URL的值如下:

成功解析出input為Lead_Info_In:

沒有按照我期望的情形進行執行:

MashupHTMLContainer.prototype.initializePane = function() {
        var oController = this.getController();
        var oModel = oController.getComponentModel();
        var oEmbeddingcontext = oController.getEmbeddingContext();
        this._oHtmlPage.setController(oController);
        if (oModel) {
            this._createMashupModel(oModel._oData, oEmbeddingcontext);
            // checks if mashup has an inport or not
            if (this._sInport) {
                // creates inport adapter and attaches it to inport events
                this._oInportAdapter = new InportAdapter(this._sInport, oController, true);
                this._oInportAdapter.on("inportFired", $.proxy(this._onInPortFired, this));

                if (!this._oMashupModel.hasHtmlCode()) {
                    // inport and source uri --> fire inport to build complete source uri
                    this._oInportAdapter.refire();
                    if (this._sInport === "ExtensionFieldsInPort") {
                        this._getSourceUriFromModel(this._oMashupModel);
                    }
                }
            } else {
                // no inport and no html content --> source uri already valid
                if (!this._oMashupModel.hasHtmlCode()) {
                    this._getSourceUriFromModel(this._oMashupModel);
                }
            }
        }
    };           

沒有執行這個refire:

解析出來的aTargets為空:

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。