出现错误时停止 foreach 内的逻辑应用执行

M R*_*ers 5 azure-logic-apps

我正在构建一个逻辑应用程序,其中包含同步样式的 foreach 循环(仅限一次执行一个,并发=1)。在每个 foreach 循环中,都有一个 switch 语句,该语句根据 foreach 循环迭代的项目的内容调用不同的子逻辑应用。

我发现,如果这些子逻辑应用程序之一失败,foreach 循环将继续下去,就好像什么也没发生一样,执行由数组内容确定的后续任务。我找不到任何方法来停止(中断)foreach 的执行或基于foreach 循环内的子逻辑应用程序之一的失败来终止整个逻辑应用程序。

如果同一个子逻辑应用程序在没有进入 foreach 循环的情况下失败,则父逻辑应用程序的执行将停止。这似乎是一个非常奇怪的设计决策,并且与逻辑应用程序在循环内部和外部的执行行为不一致。

附加说明:雪上加霜的是,当您执行子逻辑应用程序时,即使它是 HTTP 触发器和响应,您似乎也无法访问它在调用(父)逻辑应用程序中返回的 HTTP 状态代码。因此,即使我想手动测试循环中的每个案例,我也不知道该怎么做。

Joh*_*erg 0

我认为目前没有一个好的方法可以做到这一点。通常我会使用在前一个操作失败时运行的终止操作。但是 foreach 中不允许终止操作。反馈论坛上的问题

也许您可以通过使用 Until 操作而不是 foreach 来解决它,并确定何时中断的条件。对于子逻辑应用程序,您可以使用响应操作并将响应代码设置为 500 等,然后在直到中检查。

编辑:抱歉错过了您无法在父级中获取代码的情况。

如果您通过 Http 调用子逻辑应用程序,您应该能够从子逻辑应用程序获取状态代码。在此输入图像描述