gpt4 book ai didi

odata - 如何在 OData 调用中排除多个值?

转载 作者:行者123 更新时间:2023-12-01 09:48:10 30 4
gpt4 key购买 nike

我正在创建一个 SAPUI5 应用程序。此应用程序通过 OData 连接到后端 SAP 系统。在 SAPUI5 应用程序中,我使用了智能图表控件。开箱即用的智能图表允许用户为基础数据创建过滤器。这工作正常 - 除非您尝试对一个属性使用多个“不等于”。有没有办法做到这一点?
我发现“and_expression”(包括嵌套的 or_expressions)中的所有属性都必须具有唯一名称。

The reason why two parameters with the same property don't get parsed into the select options:

/IWCOR/CL_ODATA_EXPR_UTILS=>GET_FILTER_SELECT_OPTIONS takes the expression you pass and parses it into a table of select options.

The select option table returned is of type /IWCOR/IF_ODATA_TYPES=>EDM_SELECT_OPTION_T which is a HASHED TABLE .. WITH UNIQUE KEY property.


发件人: https://archive.sap.com/discussions/thread/3170195
问题是你不能组合 NE条款与 OR .因为 NE后面的两个参数不应显示在结果集中。
所以最后 it_filter_select_options是空的,只有 iv_filter_string充满。
是否有手动方法来面对这个问题(对 iv_filter_string 的评估)来处理多个 NE条款?
这将是一个示例请求:
XYZ/SmartChartSet?$filter=(Category%20ne%20%27Smartphone%27%20and%20Category%20ne%20%27Notebook%27)%20and%20Purchaser%20eq%20%27CompanyABC%27%20and%20BuyDate%20eq%20datetime%272018-10-12T02%3a00%3a00%27&$inlinecount=allpages
通常我希望这从我从后端检索的结果集中排除类别为“笔记本”和“智能手机”的项目。

最佳答案

如果内部有bug /iwcor/cl_odata_expr_utils=>get_filter_select_options这使得它无法处理多个 NE相同组件的过滤器,您不能等待OSS。我建议将它包装在一个新的静态方法中,该方法将产生以下逻辑(如果您坚持使用 ABAP 实现,我会尝试在我有时间时至少部分实现它):

  • 获取 <COMPONENT> ne '<VALUE>' 的所有实例里面() (使用正则表达式)。
  • 更换每个 <COMPONENT><COMPONENT>_<i>所以会有( <COMPONENT>_1 ne '<VALUE_1>' and <COMPONENT>_2 ne '<VALUE_2>' and... <COMPONENT>_<n> ne '<VALUE_n>' )。
  • 调用 /iwcor/cl_odata_expr_utils=>get_filter_select_options使用修改后的查询。
  • 修改rt_select_options更改结果 COMPONENT_<i><COMPONENT>再次。
  • 关于odata - 如何在 OData 调用中排除多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54647473/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com