调用 Filter URL odata 服务 sapui5 时出错

Error in calling Filter URL odata service sapui5

我必须将两个过滤器参数传递给 ODATA 服务。我正在尝试如下:

new ODataModel("proxy/http/FIORI-DEV.abc.com:8000/sap/opu/odata/sap/Z_FI_PAY_D_SRV/PdetailSet?$filter=Laufi eq '"+spayid+"' and Laufd eq '"+spaydt+"'?$sap-client=100",

出现以下错误。 GET http://localhost:63655/Payment1/proxy/http/FIORI-DEV.abc.com:8000/sap/opu/odata/sap/Z_FI_PAY_D_SRV/PdetailSet/$metadata?$filter=Laufi%20eq%20%27U2-28%27 400(错误请求) Log-dbg.js:456 2020-07-21 16:40:39.956774 [ODataMetadata] 元数据初始加载失败 -

任何人都可以建议在 ODATA 服务上添加过滤器参数的正确方法。谢谢

创建新的 OData 模型时,您不能提供任何过滤器。您必须提供服务的基本 URI。

UI5 框架基于 context binding.

自动按值过滤
  1. 您使用 new ODataModel("proxy/http/FIORI-DEV.abc.com:8000/sap/opu/odata/sap/Z_FI_PAY_D_SRV/") 创建了一个 OData 模型(或者更好:您使用 manifest.json 定义了您的模型)。
  2. 您使用 view.setModel
  3. 将模型分配给您的视图
  4. 然后您在视图的控件上创建 属性 绑定(您通常会在 XML 定义中这样做,但您也可以在代码中这样做)
  5. 您在视图上绑定了一个元素。 是进行过滤的地方。 UI5 框架会查看您提供给 controlWhichShowsTheThing.bindObject 的绑定路径,并会在需要时向 OData 模型执行 HTTP 请求以检索该对象。

现在您可能会问“好的,那么绑定路径看起来如何”?这实际上取决于 oData 模型本身以及它如何处理各个对象。