elsa 输入与输出
在 Elsa 中,输入可以指两件事:
- 活动的输入。
- 工作流的输入。
同样,输出也可以指两件事:
- 活动的输出。
- 工作流的输出。
活动输入与输出
活动能够接收输入并返回输出。
输入通过活动的 ActivityExecutionContext
对象提供,该对象被传递给 ExecuteAsync
方法。
输出可以通过 ActivityExecutionContext
和 ExpressionExecutionContext
对象设置。
下面是一个接收输入并返回输出的自定义活动示例:
上述活动接收两个输入 A
和 B
,并返回一个输出 Result
。
我们在 上一章节 中已经看到这个活动的应用 。
工作流输入与输出
工作流同样可以接收输入并返回输出。
输入
例如,假设我们有一个工作流,我们希望它能回显收到的输入:
上述工作流接收单个输入Message
,并将其打印到控制台。
输出
以下示例演示了如何从工作流返回输出:
关键点在于,为了将工作流的输出提供给调用应用程序,我们需要在 WorkflowExecutionContext
对象的 Output
属性上设置输出。每个活动都可以通过传递给 ExecuteAsync
方法的 ActivityExecutionContext
参数访问 WorkflowExecutionContext
对象。
设计器
设计器通过 “输入/输出” 标签页提供了一种便捷的方式来定义工作流的输入与输出。
要访问这些输入,我们可以使用 JavaScript 表达式。例如,要访问输入 A
和 B
并计算它们的和,我们可以使用以下表达式:
要将输出返回到调用工作流的代码,我们可以使用 Set Output
活动:
调用工作流
如果我们发布这个工作流,并使用 IWorkflowRuntime
服务调用它,我们可以通过 WorkflowExecutionContext
对象的 Output
属性访问输出:
调用工作流
上述示例展示了如何使用
IWorkflowRuntime
服务调用工作流。您也可以使用 HTTP API 来调用工作流,这在您想从其他应用程序调用工作流时非常有用。更多信息,请参见 调用工作流 章节。