流程執行過程中會自動觸發 HistoryEvent,框架在兩個維度維護歷史資訊:
流程實例的啟動與結束事件由核心引擎直接觸發;而活動級事件則由 ActivityBehaviour 實現類負責調用 ActivityExecution 暴露的 historyXxx 方法記錄。
所有歷史事件統一委派給 HistorySession 處理,默認實現 HistorySessionImpl 會調用事件自身的 process() 方法。HistoryEvent 屬於臨時性事件,在 process() 方法中負責在歷史模型中建立或合併資料。
歷史模型包含完整的繼承體系:
HistoryProcessInstance:流程實例歷史記錄HistoryActivityInstance:活動實例歷史記錄及其子類體系事件處理範例:
ProcessInstanceStart 事件 → 創建 HistoryProcessInstance 記錄ProcessInstanceEnd 事件 → 更新該記錄的結束時間與狀態屬性對於自動活動(無等待狀態),框架採用合併事件優化:僅生成單一歷史事件,在同一事務中完成資料寫入,減少資料庫交互開銷。