【问题标题】:Parent logic app not waiting for child logic app父逻辑应用不等待子逻辑应用
【发布时间】:2019-10-17 17:02:40
【问题描述】:

父逻辑应用没有等待子逻辑应用完成并完成。

我在子逻辑应用中使用 splitOn。

找不到任何解决办法。

【问题讨论】:

  • 因为在父逻辑中它调用子逻辑应用就像一个 HTTP 调用,你的子逻辑应用总是返回 200,即使它没有完成或出错。
  • 我试过这个东西:父逻辑应用调用子逻辑应用,这部分在范围内。如果子逻辑应用将发送 404,则父逻辑应用将失败。它按预期工作,但我的问题不是这个。我需要子逻辑应用程序仅在通过条件时才将响应设为 200,否则会给出 409 或其他状态。但是当我在子逻辑应用程序中使用“splitOn”时,它不允许我使用操作:“响应”并且它会自动发送 200。当孩子总是给出 200 时,使用范围变得毫无意义。
  • 关于这个问题的任何更新,你现在可以设置吗?
  • 不,目前不可能。感谢您的帮助和时间:)

标签: azure azure-logic-apps


【解决方案1】:

使用范围来运行特定操作和条件来检查范围的状态。如果作用域中的任何操作失败或意外结束,则作用域将分别标记为“失败”或“中止”。 在范围下,添加一个检查范围状态的条件。 更多信息,请关注doc

【讨论】:

  • 我知道范围背后的逻辑,但问题不在于范围,而在于 SplitOn,但感谢您的尝试。我不再为它工作了。
【解决方案2】:

其实这是意料之中的结果,在官方文档中有关于splitOn的注释:

您不能将 SplitOn 与同步响应模式一起使用。任何使用 SplitOn 并包含响应操作的工作流都会异步运行并立即发送 202 ACCEPTED 响应。

所以子逻辑应用不会返回运行输出,并且暂时无法实现,因为它不仅仅是一个运行输出。

也许您可以尝试使用带有特定 ClientTrackingId 的 REST api 列出逻辑应用运行历史记录。但是这个输出仍然不是完成状态,有些状态可能正在运行,而有些状态是成功的。

【讨论】:

  • 我正在研究 POC(概念证明),但由于我无法进行聚合,所以我没有继续它。我们不得不放弃它,我不再致力于它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
相关资源
最近更新 更多