.NET 開源工作流: Slickflow流程引擎基礎介紹(七) -- 並行分支多實例模式實現


前言:並行審批是比較常見的流程模式,在工作流模式介紹中,通常是多個分支通過網關(Gateway)來控制實現。默認的分支類型是靜態定義好的。本文擴展了並行網關的控制方式,實現了動態多實例的並行分支網關,便於用戶業務流程的審批過程實現。

 1. 業務過程描述

        並行評審需求是在多個部門同時發生,此時會有多個並行分支的實例【員工填表->組長審批】。各個分支序列獨立執行,直到所有並行分支序列全部執行完畢后才達到匯合條件。然后流程經過匯合網關繼續向下執行流程。

並行評審的實例數據:

A部門:員工填表-->組長審批

B部門:員工填表-->組長審批

C部門:員工填表-->組長審批

...

        在Split網關階段,根據員工填表節點上定義的角色數據,獲取人員列表,然后動態產生並行分支數據。即同時產生多個員工填表的實例數據,以此實現多實例模式。分支的數目就是選取員工填表節點上的人員數目。

 

 

2. 模式說明

模式名稱:並行分支多實例

1) 與分支(多實例):AndSplitMI 

表示可以產生多實例的並行分支數據。

2) 與合並(多實例):AndJoinMI

表示需要合並並行多實例分支數據。

屬性定義:在網關屬性頁面完成分支和合並節點的類型定義。

 

 

 3. 程序開發實踐

    增加NodeMediator的子類型,用於實現並行分支網關的業務邏輯。程序架構設計類圖如下:

 

4. 總結

    Slickflow 引擎產品遵循工作流模式架構設計的原則,編碼實踐始終保持產品新功能的可控開發,這樣實踐的好處是:產品功能擴展邏輯清晰,現有代碼重構目標明確,降低引擎功能擴展帶來的程序復雜性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM