微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure 逻辑应用 Odata 过滤器查询,在两列上使用 if 语句

如何解决Azure 逻辑应用 Odata 过滤器查询,在两列上使用 if 语句

早上好,

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

有两个过滤器 - a 和 b。

如果传递给流的两个过滤器都为空,则不会应用任何过滤器。 如果任一过滤器不为空,则必须对该列应用过滤器。 如果两个过滤器都不为空,则必须对两列应用过滤器。

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

解决方法

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。