在工作流管理系統中,通常是先給業務流程建模,利用流程設計器,將業務的辦理過程用流程支持的節點方式表示出來。

業務建模之后,再確定每個節點上辦理的業務,辦理業務的過程,通常是以填寫完業務表單的方式來完成的。所以需要分析每個節點上填寫的表單內容,根據 表單內容建立業務表,表字段等。再將字段綁定到表單中錄入控件上,將表單錄入的數據保存到數據庫中,這樣業務表單模塊就完成了。


業務表單完成之后,再掛接到流程節點上。

另外可能需要再次完善一下流程節點的一些屬性,如增加每個節點的指定辦理人。
設置取業務表中的一些關鍵值用于流程中,如取報銷單中的報銷金額,請假單的請假天數,用于流程上下文中做條件使用。
最后,在業務表中,需要增加一個流程實例id字段,用于和業務流程關聯。在啟動業務流程的時候,需要將獲得的流程實例id寫入這個字段中,使得業務記錄能和流程實例關聯上。
通過上面這些步驟,就建立好了業務流程了,可以啟動流程實例,辦理業務了。業務的流轉就按照流程建模中定義好的順序辦理,不需要再在業務表 中增加狀態字段來控制業務的流轉了。業務的辦理過程變得有跡可循了,每個流程實例均可以列出運行的軌跡圖,或者列表出運行的軌跡。每個節點上辦理的業務也 能通過查詢業務表單再次展現。
上面我們說過,業務表是存儲辦理業務數據的數據庫表,一般來說,一個業務表只用于一種業務流程中,存儲同一類型的業務數據。當流程運行結束的時候, 這些業務數據就被封存,不能在流程的節點中再次被編輯和修改。(除非直接開庫修改數據,或者另外做一些模塊,直接修改業務數據)
但是,這些封存的業務數據,有可能會被再次啟用投入到另外一個業務流程中去使用,這種需求可能是需求肯定是有應用場景的,不管是分段的處理過程還是后期又做的一些業務補充等,都有可能發生。
如果一個業務表,需要再次用于另外一個業務流程當中,則我們只需要給業務表,再增加一個流程實例id字段,就可以了,再次新啟動的業務流程獲得的流 程實例id就寫入這個新的流程實例id字段。和以前的那個流程實例id不相關了。只是如果是編輯同一條業務記錄的話,就可能把上次的數據給修改了。這樣理 論上是可以支持n個業務流程。

總結一下,一個業務表用于一個業務流程中,用一個流程實例id字段和流程關聯,用于另外一個業務流程中,則再建一個流程實例id字段和流程實例關聯。
一個業務流程可能會涉及到多張業務表,一張業務表也可能涉及到多個業務流程。