2016-11-21 44 views
0

我們有以下的發展環境爲菲奧裏何時到來:部署UI5應用啓動板從菲奧裏應用模板

網關7.4
後端:角色的SAP NetWeaver 7.4 SP15
本地Web IDE與獵戶座版本160811

我們沒有HCP,我們的網關在我們的網絡中是本地的,我們也沒有Web調度器或Sap路由器,這意味着我們不能直接從Web IDE部署,而是我們必須手動執行將文件夾上傳到網關。

我們在Web IDE中從頭創建了一個應用程序,並將其導出爲zip,以便在啓動板中進行部署。 在這種情況下,一切進展順利,我們將該應用添加到rol或使用獨立的url來測試它工作正常。

問題是,我們從Web IDE製作Fiori Worklist Template應用程序,然後嘗試以與其他應用程序相同的方式部署它。

當我們運行應用程序的獨立的網址,我們得到以下JavaScript錯誤:

Uncaught TypeError: Cannot read property 'createRenderer' of undefined. 

我們flpSandbox.html是以下(不包含HTML標籤):

<script> 
     window["sap-ushell-config"] = { 
      defaultRenderer : "fiori2", 
      renderers: { 
       fiori2: { 
        componentData: { 
         config: { 
          search: "hidden" 
         } 
        } 
       } 
      }, 
      applications: { 
       "Notastest1-display": { 
        additionalInformation: "SAPUI5.Component=appnotatest", 
        applicationType: "URL", 
        url: "../", 
        description: "Despliegue de Notas Alumnos.", 
        title: "Calificaciones Mobile" 
       } 
      } 
     }; 
    </script> 

    <script src="../test-resources/sap/ushell/bootstrap/sandbox.js" id="sap-ushell-bootstrap"></script> 

    <!-- Bootstrap the UI5 core library --> 
    <script id="sap-ui-bootstrap" 
      src="../resources/sap-ui-core.js" 
      data-sap-ui-libs="sap.ushell, sap.collaboration" 
      data-sap-ui-theme="sap_bluecrystal" 
      data-sap-ui-compatVersion="edge" 
      data-sap-ui-resourceroots='{"appnotatest": "../"}' 
      data-sap-ui-frameOptions='allow'> // NON-SECURE setting for testing environment 
    </script> 

    <script> 
     sap.ui.getCore().attachInit(function() { 
      // initialize the ushell sandbox component 
      sap.ushell.Container.createRenderer().placeAt("content"); 
     }); 
    </script> 

我們的清單:

{ 
"_version": "1.3.0", 
"sap.app": { 
    "_version": "1.3.0", 
    "id": "appnotatest", 
    "type": "application", 
    "i18n": "i18n/i18n.properties", 
    "title": "{{appTitle}}", 
    "description": "{{appDescription}}", 
    "applicationVersion": { 
     "version": "1.0.0" 
    }, 
    "dataSources": { 
     "mainService": { 
      "uri": "/sap/opu/odata/sap/ZNOTAS3_SRV/", 
      "type": "OData", 
      "settings": { 
       "odataVersion": "2.0", 
       "localUri": "localService/metadata.xml" 
      } 
     } 
    }, 
    "sourceTemplate": { 
     "id": "sap.ui.ui5-template-plugin.1worklist", 
     "version": "1.36.2" 
    } 
}, 
"sap.ui": { 
    "_version": "1.3.0", 
    "technology": "UI5", 
    "icons": { 
     "icon": "sap-icon://task", 
     "favIcon": "", 
     "phone": "", 
     "[email protected]": "", 
     "tablet": "", 
     "[email protected]": "" 
    }, 
    "deviceTypes": { 
     "desktop": true, 
     "tablet": true, 
     "phone": true 
    }, 
    "supportedThemes": [ 
     "sap_hcb", 
     "sap_bluecrystal" 
    ] 
}, 
"sap.ui5": { 
    "_version": "1.3.0", 
    "rootView": { 
     "viewName": "appnotatest.view.App", 
     "type": "XML", 
     "id": "app" 
    }, 
    "dependencies": { 
     "minUI5Version": "1.36.0", 
     "libs": { 
      "sap.ui.core": { 
       "minVersion": "1.36.0" 
      }, 
      "sap.m": { 
       "minVersion": "1.36.0" 
      }, 
      "sap.ushell": { 
       "minVersion": "1.36.0" 
      }, 
      "sap.collaboration": { 
       "minVersion": "1.36", 
       "lazy": true 
      } 
     } 
    }, 
    "resources": { 
     "css": [ 
      { 
       "uri": "css/style.css" 
      } 
     ] 
    }, 
    "contentDensities": { 
     "compact": true, 
     "cozy": true 
    }, 
    "models": { 
     "i18n": { 
      "type": "sap.ui.model.resource.ResourceModel", 
      "settings": { 
       "bundleName": "appnotatest.i18n.i18n" 
      } 
     }, 
     "": { 
      "dataSource": "mainService", 
      "settings": { 
       "metadataUrlParams": { 
        "sap-documentation": "heading" 
       } 
      } 
     } 
    }, 
    "routing": { 
     "config": { 
      "routerClass": "sap.m.routing.Router", 
      "viewType": "XML", 
      "viewPath": "appnotatest.view", 
      "controlId": "app", 
      "controlAggregation": "pages", 
      "bypassed": { 
       "target": [ 
        "notFound" 
       ] 
      }, 
      "async": true 
     }, 
     "routes": [ 
      { 
       "pattern": "", 
       "name": "worklist", 
       "target": [ 
        "worklist" 
       ] 
      }, 
      { 
       "pattern": "EntityAsignaturasSet/{objectId}", 
       "name": "object", 
       "target": [ 
        "object" 
       ] 
      } 
     ], 
     "targets": { 
      "worklist": { 
       "viewName": "Worklist", 
       "viewId": "worklist", 
       "viewLevel": 1 
      }, 
      "object": { 
       "viewName": "Object", 
       "viewId": "object", 
       "viewLevel": 2 
      }, 
      "objectNotFound": { 
       "viewName": "ObjectNotFound", 
       "viewId": "objectNotFound" 
      }, 
      "notFound": { 
       "viewName": "NotFound", 
       "viewId": "notFound" 
       } 
      } 
     } 
    } 
} 

最後但並非最不重要的是這是我們的component.js:

sap.ui.define([ 
    "sap/ui/core/UIComponent", 
    "sap/ui/Device", 
    "appnotatest/model/models", 
    "appnotatest/controller/ErrorHandler" 
], function (UIComponent, Device, models, ErrorHandler) { 
    "use strict"; 

    return UIComponent.extend("appnotatest.Component", { 

     metadata : { 
      manifest: "json" 
     }, 

     /** 
     * The component is initialized by UI5 automatically during the startup of the app and calls the init method once. 
     * In this function, the FLP and device models are set and the router is initialized. 
     * @public 
     * @override 
     */ 
     init : function() { 
      // call the base component's init function 
      UIComponent.prototype.init.apply(this, arguments); 

      // initialize the error handler with the component 
      this._oErrorHandler = new ErrorHandler(this); 

      // set the device model 
      this.setModel(models.createDeviceModel(), "device"); 
      // set the FLP model 
      this.setModel(models.createFLPModel(), "FLP"); 

      // create the views based on the url/hash 
      this.getRouter().initialize(); 
     }, 

     /** 
     * The component is destroyed by UI5 automatically. 
     * In this method, the ErrorHandler is destroyed. 
     * @public 
     * @override 
     */ 
     destroy : function() { 
      this._oErrorHandler.destroy(); 
      // call the base component's destroy function 
      UIComponent.prototype.destroy.apply(this, arguments); 
     }, 

     /** 
     * This method can be called to determine whether the sapUiSizeCompact or sapUiSizeCozy 
     * design mode class should be set, which influences the size appearance of some controls. 
     * @public 
     * @return {string} css class, either 'sapUiSizeCompact' or 'sapUiSizeCozy' - or an empty string if no css class should be set 
     */ 
     getContentDensityClass : function() { 
      /*if (this._sContentDensityClass === undefined) { 
       // check whether FLP has already set the content density class; do nothing in this case 
       if (jQuery(document.body).hasClass("sapUiSizeCozy") || jQuery(document.body).hasClass("sapUiSizeCompact")) { 
        this._sContentDensityClass = ""; 
       } else if (!Device.support.touch) { // apply "compact" mode if touch is not supported 
        this._sContentDensityClass = "sapUiSizeCompact"; 
       } else { 
        // "cozy" in case of touch support; default for most sap.m controls, but needed for desktop-first controls like sap.ui.table.Table 
        this._sContentDensityClass = "sapUiSizeCozy"; 
       } 
      } 
      return this._sContentDensityClass;*/ 
      } 

     }); 

    } 
); 

我們嘗試創建另一個index.html來解決創建渲染,我們解決了錯誤,但應用程序仍然不起作用,它只顯示沒有瓦片的啓動板。請記住,當我們從本地Web IDE測試應用程序時,首先會打開一個包含應用程序圖塊的啓動板。

非常感謝您的幫助。

回答

1

這可能是與Netweaver系統上的UI5版本有關的問題。要測試此理論,請在Web IDE中使用Netweaver系統上的相同UI5版本運行該應用程序,以查看是否發生相同的錯誤。爲了實現這一點,在Web IDE中右鍵單擊你的項目 - >運行 - >運行配置... - >選擇一個現有的運行配置或添加一個新的 - >高級設置選項卡 - >將ui5版本更改爲與您的Netweaver系統上運行的相同 - >保存並運行。

如果遇到同樣的問題,可能需要在Netweaver系統上更新UI5版本,或嘗試在UI5應用中爲此問題構建解決方法。

+0

試圖找到高級設置選項卡,但我不能。顯然,本地Web IDE沒有這個選項,只有Web IDE的hcp版本。 –

+0

也許你可以同時運行,並使用瀏覽器控制檯,手動檢查版本: – donovantc

+0

sap.ui.versioninfo – donovantc