如何通过ODATA读方法传递过滤器参数



我需要在我的odata中传递一个参数。

URL必须这样:

http://my_gateway_system:port/sap/opu/odata/sap/ZGW_TRANSF_APPROVAL_SRV_02/ztest_nameset('RUBENS')

以下是我的代码:

var sServiceUrl = "http://<my_gateway_system>:<port>/sap/opu/odata/sap/ZGW_TRANSF";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true, "username", "password");
var oJsonModel = new sap.ui.model.json.JSONModel();     
oModel.read("/ztest_nameset('RUBENS')", null, null, true, function(oData, response) {
    oJsonModel.setData(oData);
});
sap.ui.getCore().setModel(oJsonModel);

当我经过URL

http:// my_gateway_system:port/sap/opu/odata/sap/ZGW_TRANSF_APPROVAL_SRV_02/ztest_nameset('RUBENS')

在我的浏览器中,它起作用。但是当我运行代码时,它不起作用。

您正在使用odatamodel#read的旧方法调用(参数分布(。此方法的当前签名是read(sPath, mParameters)。请查看该方法的文档:https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.model.odata.odata.odatamodel.html.html#read

在您的具体情况下,您应该做以下操作:

oModel.read("/ztest_nameset('RUBENS')", {
   filters: [/* your filters here */],
   success: function(oData) {
      oJsonModel.setData(oData);
   }
});

尽管如此,尚不清楚要通过的过滤器参数。在您的示例中,您没有过滤器。/ztest_nameset('RUBENS') URI只是一个普通的实体集 密钥。还不清楚您遇到的错误。我可以猜想这可能是一个问题问题。您似乎正在向其他主机拨打其他主机,而不是您使用的ui5应用程序。

最新更新