本文介紹成功狀態及其相關使用樣本。
基本概念
成功狀態用來提前結束一系列狀態,類似於程式設計語言中的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完結時,整個工作流程流程置為完結。