Elsa 工作流程 - Fork(控制流程)

Nik*_*CSI 3 workflow httpresponse httprequest endpoint elsa-workflows

有人可以解释一下 Elsa Workflow 的 Fork 是如何工作的吗?

我已经设置了 HTTP 端点。之后,我发送 HTTP 请求并获得 JSON 格式的 HTTP 响应。我想对该响应设置条件(例如 name='John'),以便我可以仅显示数据库中的该行。

我应该使用什么 Elsa 活动?Fork活动是正确的选择还是其他?

Sip*_*tra 5

Fork活动只是将工作流执行分叉到多个分支中。添加此活动时,您可以指定一个或多个分支名称的列表。这些分支名称将被安排为活动结果

例如,如果您添加带有分支Do Some Request和的 Fork 活动Timeout,则 Fork 活动会将这些分支显示为结果。

当 Fork 活动执行时,两个分支都会执行。例如,这可以实现您想要等待某些用户输入或某些其他作业完成但不是无限期地完成的场景:您有第二个分支使用Timer活动等待超时事件。

可以在此处找到描述类似场景中Fork活动的用法的示例工作流程。

这描述了 Fork 活动的用例。但您将需要改用If活动。

如果

回到HTTP 请求活动的用例并设置条件,您想要使用If活动而不是Fork

当您将If活动连接到HTTP Request时,您将能够编写一个计算结果必须为trueor 的JS 表达式false

例如,假设您的发送 HTTP 请求活动在https://reqres.in/api/users/2上执行 GET 请求

确保选中“读取内容”复选框。还要确保为您的“发送 HTTP 请求”活动指定一个名称。例如,SendHttpRequest1

完成此操作后,您现在可以在 If 活动的 Condition 字段中编写以下 JS 表达式:

activities.SendHttpRequest1.ResponseContent().data.first_name == 'Janet'
Run Code Online (Sandbox Code Playgroud)

请注意,activities.SendHttpRequest1.ResponseContent()返回一个ExpandoObject代表从我在示例中使用的演示 API 端点接收到的 JSON 响应。