多种结果/分叉
根据前面步骤的结果,工作流可以采取不同的路径。下面的示例展示了一个流程,其中首先生成一个随机数0或1,这是第一步的结果。然后,根据结果值,工作流将分叉到(TaskA + TaskB)或(TaskC + TaskD)
public class MultipleOutcomeWorkflow : IWorkflow
{
public void Build(IWorkflowBuilder<object> builder)
{
builder
.StartWith<RandomOutput>(x => x.Name("Random Step"))
.When(data => 0).Do(then => then
.StartWith<TaskA>()
.Then<TaskB>())
.When(data => 1).Do(then => then
.StartWith<TaskC>()
.Then<TaskD>())
.Then<SayGoodbye>();
}
}