我们的客户已将其系统更改为SAP,并希望应用程序通过SAP界面显示数据。我们决定使用SAPUI5框架+ WebIDE开发应用程序,因为它提供了非常好的控件种类,具有可靠的MVC设计以及用于SAP界面的易于使用的云连接器。
我们已经配置了这样的连接器:
新app.json
<eddaylight:ifRegExp value="{overview}" pattern="/[a-zA-Z0-9]+/">
<f:then>
{overview}
</f:then>
<f:else>
something else
</f:else>
</eddaylight:ifRegExp>
这是我们在 component.js 中的测试调用:
AbstractConditionViewHelper
在我们的WebIDE中,我们获得了包含来自SAP连接器API的所有需要数据的完整JSON,但是,只要我们构建应用程序并使用HAT(Android,iOS,甚至已签名)在任何设备上发布它,请求失败。
首先,它会提醒{
"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
}
(空对象),然后提醒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);
}
我们如何解决这个问题?
答案 0 :(得分:0)
neo-app.json
与您的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 App中调试网络呼叫:https://cordova.apache.org/docs/en/latest/guide/next/#ios-debugging
如何在Android App中调试网络调用: https://cordova.apache.org/docs/en/latest/guide/next/#chrome-remote-debugging