azure-logic-apps - 出现错误时停止 foreach 中的逻辑应用程序执行

标签 azure-logic-apps

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

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

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

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

最佳答案

我想出了一个解决方法。

我使用 Scope 操作将 switch 语句(在其中调用我的子逻辑应用程序)封装在 foreach 中。 Scope 操作从其内部的任何内容“继承”失败。

在 Scope 之后,在 foreach 的末尾,我测试了 Scope 的状态。如果失败,我将一个“break”变量(在 Logic App 开始时初始化为 false)设置为“true”。

在每次 foreach 迭代开始时,我检查“break”变量。如果为“true”,则跳过 foreach 中的所有内容。

关于azure-logic-apps - 出现错误时停止 foreach 中的逻辑应用程序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203358/

相关文章:

具有逻辑应用程序重复触发器的Azure函数

azure - 一封电子邮件中包含多个 HTML 表格,包含标题和表格

azure - 使用托管标识从逻辑应用调用受 Azure AD 保护的 API

azure - 一次性通过电子邮件发送来自 ADF 中所有事件的错误

rest - 使用 Azure 工作流管理 API 启用/禁用工作流

Azure 数据工厂与 Azure 逻辑应用

azure - 有没有更好的方法来处理逻辑应用程序中的 if else 条件?

azure - 即使在 30 秒后,逻辑应用也会返回网关超时错误

c# - 在 Azure 逻辑应用中转换 XML,将 C# 程序集 (.DLL) 文件上传到 Azure 集成帐户并在 XSLT 中使用它(映射)

Azure 逻辑应用程序 - 可以创建此自定义 RBAC 规则吗?