【问题标题】:Odata $filter pass value from string array in Logic app?Odata $filter从逻辑应用程序中的字符串数组传递值?
【发布时间】:2020-01-09 10:17:15
【问题描述】:

我有 odata url,想从逻辑应用程序的数组中传递 $filter 值。

我已经使用HTTP连接器调用odata api。

当我在过滤器中传递一个值时,它工作正常。

"$filter": "mynumer eq '1122'

但我想从字符串数组中一对一地传递所有值 $filter

我试过了-

"$filter": "mynumer in ('1122','1133') 但低于错误

403 - 禁止:访问被拒绝。

variable('myarray') = ['1122','1133']

想将变量('myarray')传递给 $filter 我该如何实现?

我们可以这样通过-

(mynumer eq '1122') 或 (mynumer eq '1133') 但是如何生成这个 基于数组变量值?

【问题讨论】:

    标签: azure odata azure-logic-apps


    【解决方案1】:

    尝试如下图传递:

    "$filter": "FirstName eq '@{variables('MyVar')[0]}' or FirstName eq '@{variables('MyVar')[1]}'"
    

    我试过的例子:

    【讨论】:

    • 这只有在我们有 2 件商品时才有效,如果我有 10 件商品怎么办?
    【解决方案2】:

    使用OData 4.01,in 语句支持如下:

    http://host/service/Products?$filter=Name in ('Milk', 'Cheese')
    

    在您的问题中,您需要使用 "$filter": "mynumer in (1122,1133)" 而数字是 int。

    【讨论】:

    • 这在逻辑应用程序中不起作用 :( 添加此查询后给我错误 - <title>403 - Forbidden: Access is denied.</title>
    • 您可以使用 [Filter array] (docs.microsoft.com/en-us/azure/logic-apps/…) 操作来过滤数组而不循环它。
    猜你喜欢
    • 2019-08-27
    • 2012-04-25
    • 2022-11-30
    • 2015-06-02
    • 2020-12-07
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多