2017-08-15 84 views
6

我們的客戶已將其系統更改爲SAP,並希望應用通過SAP界面顯示數據。我們決定使用SAPUI5框架+ WebIDE來開發應用程序,因爲它提供了一個非常好的控件,包含一個可靠的MVC設計以及用於SAP接口的易於使用的雲連接器。雲連接器無法在設備上加載JSON數據

我們已經配置的連接器是這樣的:

新app.json

{ 
    "welcomeFile": "/webapp/index.html", 
    "routes": [ 
    { 
     "path": "/resources", 
     "target": { 
     "type": "service", 
     "name": "sapui5", 
     "entryPath": "/resources" 
     }, 
     "description": "SAPUI5 Resources" 
    }, 
    { 
     "path": "/test-resources", 
     "target": { 
     "type": "service", 
     "name": "sapui5", 
     "entryPath": "/test-resources" 
     }, 
     "description": "SAPUI5 Test Resources" 
    }, 
    { 
     "path": "/mynews", 
     "target": { 
     "type": "destination", 
     "name": "MyNews_CMS", 
     "preferLocal": true 
     } 
    } 
    ], 
    "sendWelcomeFileRedirect": true 
} 

這是我們在component.js測試呼叫:

try {                    
    $.get("/mynews/?json=2", function(data, status) {                     
    alert("success: " + JSON.stringify(data));                    
    }).fail(function(arg1) {                     
    alert("error: " + JSON.stringify(arg1));                    
    });                   
} catch (err) { 
    alert("global error: " + err); 
} 

在我們的WebIDE中,儘管如此,我們仍然可以從SAP連接器API獲得完整的JSON和所有需要的數據我們構建應用程序並使用HAT(Android,iOS,甚至簽名)在任何設備上發佈它,請求失敗。

第一,它提醒{}(空的對象),那麼它會提醒error: {"readyState":0,"status":0,"statusText":"error"}

請問如何解決這個問題?

+0

與SAP,這樣對你不好)。您是否嘗試過使用調試代理(charles/fiddler/burp)來檢查設備發送的查詢?也許你會看到與瀏覽器不同的地方。您是否嘗試將完整的網址(https://xxxx.yyy)展示爲「/ mynews ...」 – wargre

+0

@wargre完整的網址。它只是不起作用的目的地。在我最後的iOS項目中,我找不到任何對目標的引用。感覺就像我的iOS項目缺少neo-app文件或其他東西。 –

+1

我不是HAT專家,但恐怕neo-app.json文件僅在WebIDE內部使用,或者在SAP雲中部署的應用程序(例如在Portal服務中)中使用。您可以確認在部署應用程序時此文件已導出嗎? – fabiopagoti

回答

0

與您的UI5應用程序無關。甚至不需要讓應用程序工作,因爲只有SAP WebIDE解釋並使用此文件才能進行配置。

你真正想要做的是定義你的目標你的manifest.json內:

... 
"dataSources": { 
    "ODataEndpoint": { 
     "uri": "https://yourappname.hana.ondemand.com/your/odata/path/", 
     "type": "OData", 
     "settings": { 
      "odataVersion": "2.0", 
      "localUri": "/your/odata/path/" 
     } 
    } 
} 
... 
"models": { 
    "": { 
     "dataSource": "ODataEndpoint" 
    } 
} 
... 

如果這不起作用,你應該調試設備的網絡活動,看看哪些URL被調用。

如何調試iOS應用程序內部網絡調用:https://cordova.apache.org/docs/en/latest/guide/next/#ios-debugging

如何調試Android應用內網絡調用: 滯留https://cordova.apache.org/docs/en/latest/guide/next/#chrome-remote-debugging