本文介绍成功状态及其相关使用示例。
基本概念
成功状态用来提前结束一系列状态,类似于编程语言中的return
。工作流定义中,通常一个状态执行完成后会继续执行后续状态,而成功状态不会继续执行下一个状态。
运行至成功状态,将会完结本作用域的所有状态,流程将继续运行至上一层作用域。
成功状态包含以下属性。
字段 | 类型 | 是否可选 | 描述 | 示例值 |
Name | string | 是 | 状态名称。 | my state |
Description | string | 否 | 状态描述。 | describe it here |
Type | string | 是 | 状态类型。 | Succeed |
InputConstructor | map[string]any | 否 | 输入构造器。 | 请参见输入构造器 |
OutputConstructor | map[string]any | 否 | 输出构造器。 | 请参见输入和输出 |
使用示例
以下流程定义使用成功状态来完结当前作用域。
Type: StateMachine
Name: my-wkfl
SpecVersion: v1
StartAt: Parallel1
States:
- Type: Parallel
Name: Parallel1
End: true
Branches:
- StartAt: Succeed1
States:
- Type: Succeed
Name: Succeed1
OutputConstructor:
FieldA: 123
- StartAt: Pass2
States:
- Type: Pass
InputConstructor:
FieldA: 321
Name: Pass2
End: true
本示例与Parallel使用示例相比,仅有Pass1和Succeed1不同,可以将成功状态理解为自带End=true
属性的传递状态。
在Succeed1完结时,隐式命名的ParallelBranch #0置为完结。
在ParallelBranch #0与ParallelBranch #1同时完结时,整个Parallel1置为完结。而Parallel1完结时,整个工作流流程置为完结。