第 9 章 歷史
9.1. 概述
在流程執行過程中都會觸發HistoryEvents.
我們在兩個級別維護歷史信息:流程實例和活動實例。
流程實例啟動和流程實例結束生成歷史事件 會從實現中直接觸發。
ActivityBehaviour實現負責調用historyXxx方法 被ActivityExection中暴露。
所有HistoryEvent被委派給一個HistorySession.默認的HistorySessionImpl 將調用歷史事件它們自己的process()方法。
HistoryEvent是臨時事件。在process方法中,它們在歷史模型中建立信息。 這是一個HistoryProcessInstance,這裡還有一個從HistoryActivityInstance 開始的完全類繼承結構。
在HistoryEvent.process方法中,歷史事件創建模型實體或者在模型實體中合並信息。 比如,一個ProcessInstanceStart歷史事件會創建一個HistoryProcessInstance實例或記錄。 ProcessInstanceEnd會設置已存在的HistoryProcessInstance實例或記錄的 結束屬性。
與活動的模式相同。但是對於自動活動,這裡有一個優化 所以只有一個事件被創建,所以信息被存儲在一個單獨的insert中 (所有這些都發生在一個事務中)。