两列上带有 if 语句的 Azure 逻辑应用程序 Odata 筛选器查询

Azure logic apps Odata filter query with if statment on two columns

早上好,

我有一个独特的要求,我必须根据条件从 Azure table 对“获取实体”应用过滤器,过滤器来自 HTTP get 请求。

有两个过滤器 - a 和 b。

如果传递给流的两个过滤器都是空的,则不应用任何过滤器。 如果其中一个过滤器不为空,则过滤器必须应用于该列。 如果两个筛选器都不为空,则筛选器必须应用于两列。

是否可以在 ODATA 过滤器查询中应用 If 语句? 我似乎找不到好的答案。

对于这个需求,我们可以直接在逻辑应用中使用“Condition”来实现。这不是一个聪明的解决方案,但它确实有效。

首先,我使用两个变量来模拟来自 http 请求的两个过滤器。

然后使用另一个变量来存储结果过滤器。

现在加一个“条件”判断filter1是否不等于“空”

如果为真,再增加一个条件“条件2”判断filter2是否不等于“空”,为filterResult设置值。

如果为false,还要添加另一个条件“条件3”判断filter2是否不等于“空”,并为filterResult设置值。注意:在“设置变量4”中使用表达式string(' '),否则将不允许我们保存逻辑应用程序。

之后,我们可以在“获取实体”中使用filterResult。下面截图中的表达式是 trim(variables('filterResult')).