在我正在开发的逻辑应用程序中,我希望数组A中的对象不存在数组B中的实体。这些数组具有以下结构:
阵列A.
[{"ExternalId": 1}, {"ExternalId": 2}]
阵列B.
[{"Id": 2}]
除了id之外,这些数组还包含更多属性,为简单起见,我将不再介绍。
我想要的结果是让阵列A基于ExternalId过滤掉,这在阵列B中是不可用的,所以这应该导致以下过滤后的数组:
[{"ExternalId": 1}]
我尝试使用FilterArray操作,但我不知道如何对此进行建模。根据{{3}},有一个@contains函数,但我无法以正确的方式构造它。
是否可以这样做?是否有另一种方法可以在Azure Logic Apps中实现此结果?
答案 0 :(得分:4)
是的,我认为这还不可能 - 你可以获得它的唯一方法如下,但现在可能更容易在Azure函数内运行。
{ "body": "@item()['ExternalId']" }
在foreach循环之外,您现在可以执行@body('Compose')并且您有一个ExternalId值数组(在本例中为[ 1 ]
)。
现在在数组A上创建过滤器数组,过滤条件是@contains(body('Compose'),item())
将来我们计划支持@select()@ where()@ orderby()类型构造,这将使这更容易,以及地图数组操作 - 但仍在设计中。现在你可以选择上面的方法或调用Azure函数来处理javascript / C#