【问题标题】:Error in calling Filter URL odata service sapui5调用过滤器 URL odata 服务 sapui5 时出错
【发布时间】:2020-07-21 11:49:31
【问题描述】:

我必须将两个过滤器参数传递给 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 服务上添加过滤器参数的正确方法。谢谢。

【问题讨论】:

  • 您好,您不能以这种方式创建 ODataModel 对象。您需要使用服务的 Base-URL 创建 ODataModel。
  • 从这个问题和您的previous two 看来,您可能必须熟悉上下文绑定在 SAPUI5 中的工作方式。我建议您先尝试理解这一点,然后再就同一问题的小变化提出更多问题,因为您的整个方法都是错误的,因此无法解决您的潜在问题。
  • 如果仍然是关于在详细信息页面上显示数据,请参阅stackoverflow.com/a/48870579/5846045。在这种情况下,添加过滤器是错误的方法。

标签: javascript filter odata sapui5


【解决方案1】:

当您创建新的 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. 然后您在视图的控件上创建属性绑定(您通常会在 XML 定义中执行此操作,但您也可以在代码中执行此操作)
  4. 您在视图上绑定了一个元素。 是过滤发生的地方。 UI5 框架会查看您提供给 controlWhichShowsTheThing.bindObject 的绑定路径,并将在需要时向 OData 模型执行 HTTP 请求以检索该对象。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多