繁体   English   中英

如何将 odata 服务绑定到 SAPUI5 表?

[英]How to bind the odata services to SAPUI5 table?

我使用以下代码将 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>/");

您的服务端点在这一行中可能不正确: 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 构造函数的变量的CoreOpenAppSet()部分。 相反,您应该使用callFunction的 callFunction 调用此“函数导入”,即: oModel.callFunction()

当函数 import 的调用完成并且返回的 promise 得到解决时,您可以使用setBindingContext将调用结果绑定到您的 UI:

var oPromise = oModel.callFunction("/CoreOpenAppSet");
oPromise.contextCreated().then(function(oContext) {
      oView.setBindingContext(oContext);
});

此外,在清单中指定您的模型和端点是一个很好的做法,以便它们与您的代码分开。 您可以在此处了解更多信息: https : //sapui5.netweaver.ondemand.com/docs/guide/8f93bf2b2b13402e9f035128ce8b495f.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM