2017-01-23 21 views
0

我很努力地找出解決方案,當我啓動我的sapui5應用程序,然後基於manifest.json配置應用程序應該啓動模擬服務器時,沒有連接OData其他調用OData服務。現在我有mockserver.html開始模擬服務器和index.html的應用程序。SAPUI5 - 模擬服務器自動備用配置

這是甚至可能我在問什麼?

感謝

+0

[marcelbrueckner](http://stackoverflow.com/users/5995009/marcelbrueckner) - 標記你 – user557657

回答

0

的模擬服務器攔截你在模擬服務器實例的specifing的URL。 只需檢查OData服務的可用性,並且如果您的服務不可用,則可以實例化模擬服務器。

sap.ui.define([ 
    "sap/ui/core/util/MockServer", 
    "sap/ui/model/odata/v2/ODataModel" 
], function(MockServer, ODataModel) { 
    "use strict"; 

    return { 
     init: function() { 
      var oDataModel = new ODataModel("<your OData URL here>"); 
      oDataModel.attachMetadataFailed(function() { 
       console.log("Metadata load failed :("); 

       /* Initialize mock server */ 
       MockServer.config({ 
        autoRespond: true 
       }); 

       var oMockServer = new MockServer({ 
        rootUri: "<your OData URL here>" 
       }); 

       oMockServer.simulate("path/to/metadata.xml", { 
        sMockdataBaseUrl: "path/to/mockdata", 
        bGenerateMissingMockData: true 
       }); 

       oMockServer.start(); 
      }); 
     } 
    }; 
}); 

我沒有任何時間來測試我的解決方案,但它應該以這種方式工作。

+0

如果OData服務可用,那麼它是如何從上面的init函數出來的?我沒看到成功會發生什麼?我錯過了什麼嗎? – user557657

+0

成功時,不會執行'attachMetadataFailed()'函數,因此不會實例化模擬服務器。 – marcelbrueckner