このトピックでは、成功状態について説明し、関連する例を示します。
概要
成功状態は、一連の状態が実行される前に、それらを終了するために使用されます。 成功状態は、プログラミング言語の return ステートメントに似ています。 フローの一般的な定義では、現在の状態が完了した後に次の状態が実行されます。 ただし、現在の状態が成功状態の場合、後続の状態は実行されません。
成功状態は、成功状態が属するスコープ内のすべての状態を終了し、フローは上位レベルのスコープに進みます。
次の表は、成功状態に含まれる属性について説明しています。
属性 | タイプ | 必須 | 説明 | 例 |
Name | string | はい | 状態の名前。 | my state |
Description | string | いいえ | 状態の説明。 | describe it here |
Type | string | はい | 状態のタイプ。 | Succeed |
InputConstructor | map[string]any | いいえ | 入力コンストラクター。 | 詳細については、「InputConstructor」をご参照ください。 |
OutputConstructor | map[string]any | いいえ | 出力コンストラクター。 | 詳細については、「OutputConstructor」をご参照ください。 |
例
次のフローのサンプルでは、成功状態を使用してスコープを終了します。
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並列状態の例と比較すると、この例では Pass1 状態が Succeed1 状態に置き換えられています。 したがって、成功状態は、End 属性が true である Pass 状態と見なすことができます。
Succeed1 が完了すると、暗黙的な ParallelBranch #0 は完了としてマークされます。
ParallelBranch #0 と ParallelBranch #1 が完了すると、Parallel1 は完了としてマークされます。 Parallel1 が完了すると、フローは完了としてマークされます。