我使用下面的代码将odata服务绑定到sapui5表
我无法将数据从oData服务获取到SAPui5表,odata存储在单独的vpn客户端中。我使用反向代理服务器检索数据
控制台中的错误如下面的链接所示

代码:
//Creating the instance of oData model
var oModel = new sap.ui.model.odata.v2.ODataModel("http://admin-think:88/sap/...",{useBatch : true});
sap.ui.getCore().setModel(oModel,"model1");
console.log(oModel);
// Create instance of table
var oTable = new sap.ui.table.Table({
visibleRowCount : 6,
selectionMode: sap.ui.table.SelectionMode.Single,
navigationMode: sap.ui.table.NavigationMode.scrollbar,
selectionBehavior: sap.ui.table.SelectionBehavior.RowOnly
});
// First column "Application"
oTable.addColumn(new sap.ui.table.Column({
label : new sap.ui.commons.Label({
text : "APPLICATION",
textAlign : "Center",
}),
template : new sap.ui.commons.TextView({
textAlign:"Center"}).bindProperty("text","model1>Applno"),
}));
// Bind model to table control
oTable.bindRows("model1>/");发布于 2016-06-23 11:37:41
您的服务终结点在这一行中可能是不正确的:var oModel = new sap.ui.model.odata.v2.ODataModel("http://admin- think:88/sap/...",{useBatch : true});。
在您发送的错误输出中,您可以看到应用程序正在尝试到达URL http://.../ZTEST1_SRV/CoreOpenAppSet()/$metadata。这将导致404状态,这意味着该服务在该URL上不可用。应用程序下载元数据的正确URL可能应该是http://.../ZTEST1_SRV/$metadata。
要解决这个问题,您应该删除要传递给ODataModel构造函数的变量的ODataModel部分。相反,您应该使用callFunction的ODataModel (即:oModel.callFunction() )调用这个“函数导入”。
当函数导入的调用完成并解析返回的承诺时,可以使用setBindingContext将调用的结果绑定到您的UI
var oPromise = oModel.callFunction("/CoreOpenAppSet");
oPromise.contextCreated().then(function(oContext) {
oView.setBindingContext(oContext);
});另外,在清单中指定模型和端点以使它们与代码分离是一种很好的做法。您可以在这里了解更多信息:https://sapui5.netweaver.ondemand.com/docs/guide/8f93bf2b2b13402e9f035128ce8b495f.html
https://stackoverflow.com/questions/37990243
复制相似问题