Fire Workflow 國產開源工作流引擎,源碼分為 `FireflowEngine` (運行時服務) 與 `FireflowModel` (流程定義模型) 兩大模組。本系列從 `FireflowModel` 的 `org.fireflow.model` 套件切入,解析核心模型元素與頂層流程架構。

定義所有流程元素的通用契約:
實作介面所有方法,重寫 `hashCode()`、`toString()` 提供預設行為。

任務類型常數:
循環執行策略:
可插拔擴展點:`taskInstanceCreator`、`taskInstanceRunner` (分 Form/Tool/Subflow)、`taskInstanceCompletionEvaluator` (分三型)。

流程定義的根元素,聚合所有子元素:
| 屬性集合 | 包含元素類型 |
|---|---|
| dataFields | DataField (流程變量定義) |
| tasks | Task (全域任務定義) |
| activities | Activity (流程環節/步驟) |
| transitions | Transition (轉移) |
| loops | Loop (迴路) |
| synchronizers | Synchronizer (同步器) |
| startNode / endNodes | StartNode / EndNode |
全域可插拔組件:`resourceManager`、`taskInstanceCreator`、各型 Runner 與 Evaluator。
核心查詢與驗證方法:`findWFElementById()`、`validate()`、`isReachable()`、`getReachableNodes()`、`getEnterableNodes()` 等。

對應運行時流程變量,支援類型:STRING、INTEGER、FLOAT、BOOLEAN、DATE、DATETIME、BLOB。含 `initialValue`、`dataPattern` (日期格式) 等屬性。

Activity 透過 `TaskRef` 引用全域 `Task` 定義,實現任務定義與流程環節分離複用。

下一篇將深入 `org.fireflow.model.net` 套件,解析基於 Petri Net 的流程網路模型。