StarFlow 工作流 環節三種分支模式

2021-08-30 10:08:10 字數 3863 閱讀 3184

starflow 支援三種環節分支模式:

1:單一分支

2:多路分支

3:全部分支

設計過程中分支模式比較容易實現。同時在這過程,考慮環節匯聚模式,如果考慮比較全面的話,實現起來困難還是不小,慢慢磨料,哈哈!

例項流程圖:

多路分支例項**:

processengine processengine = new configuration().buildprocessengine();

iprocessdefineservice procdefservice = processengine.getprocessdefineservice();

iprocessinstanceservice procinstservice = processengine.getprocessinstanceservice();

iworkitemservice workitemservice = processengine.getworkitemservice();

//部署流程

procdefservice.deployprocessfile("flow3.xml");

//新增filter

processengine.addfilter(new loggerprocessfilter());

// //啟動流程

// processinstance processinstance = procinstservice.createprocess("testflow1", "100002");

// //建立流程

// procinstservice.startprocess(processinstance.getprocessinstid());

procinstservice.createandstartprocess("testflow3", "100002");

//listworkitems = workitemservice.querypersonworkitems("100002");

//環節定義id, 使用者id

workitemservice.finishworkitem(1, "100001"); //申告

//預設線為固話處理班,這裡派單到iptv處理班

mapvalues = new hashmap();

values.put("optidkd", integer.valueof(1)); //1: 寬頻班,2:iptv處理班

values.put("optidtv", integer.valueof(2)); //1: 寬頻班,2:iptv處理班

mapconditions = new hashmap();

conditions.put("map", values);

workitemservice.finishworkitem(2, "910150", conditions); //

"100002");

workitemservice.finishworkitem(4, "100002");

workitemservice.finishworkitem(5, "910115"); //歸檔

}

流程執行過程記錄:

2010-1-14 15:37:02 com.starit.wf.service.filter.loggerprocessfilter processcreate

資訊: 流程【testflow3】建立成功, 流程例項id = 1

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter processstart

資訊: 流程【testflow3】啟動成功, 流程例項id = 1

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitystart

資訊: 環節【上報】建立成功, 環節例項id = 2

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitycomplete

資訊: 環節【上報】執行完成, 環節例項id = 2

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitystart

資訊: 環節【派單】建立成功, 環節例項id = 3

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitycomplete

資訊: 環節【派單】執行完成, 環節例項id = 3

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitystart

資訊: 環節【寬頻處理班】建立成功, 環節例項id = 4

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitystart

資訊: 環節【iptv處理班】建立成功, 環節例項id = 5

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitycomplete

資訊: 環節【iptv處理班】執行完成, 環節例項id = 5

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitystart

資訊: 環節【歸檔】建立成功, 環節例項id = 6

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter acitivitycomplete

資訊: 環節【歸檔】執行完成, 環節例項id = 6

2010-1-14 15:37:03 com.starit.wf.service.filter.loggerprocessfilter processcomplete

資訊: 流程【testflow3】執行完成, 流程例項id = 1

流程定義內容:

<?xml version="1.0" encoding="utf-8"?>

1440

xor60

xorxor

single

process-starter

60or

xorsingle

default

60xorxor

single

act-logic

com.starit.test.testparticipantservice

60xorxor

single

act-logic

com.starit.test.testparticipantservice

60xorxor

single

act-logic

com.starit.test.testparticipantservice

60xorxor

single

act-executer

a02 xor

true

true

true

false

map.optidkd==1

false

map.optidtv==2

true

true

true

true

StarFlow 工作流 5種設定參與者的模式

5中設定環節參與者模式 1 配置流程是設定固定參與者 2 與流程啟動者相同 3 a環節的參與者保持與b環節參與者相同 4 提供乙個介面。動態獲取參與者 下面的例項提供四種實現方式 流程圖 例項 processengine processengine new configuration buildpr...

工作流簡介及其6種常用的工作流引擎

先說說四個非petrinet排程演算法的開源引擎.4 obe的引擎排程機制.4 shark的引擎排程機制.5 osworkflow的引擎執行機制.6 jbpm的引擎執行機制.6 再說說兩個petrinet排程演算法的開源引擎.9 yawl的引擎排程機制.10 bossa的引擎排程機制 標準的pn機 ...

工作流簡介及其6種常用的工作流引擎

先說說四個非 petri 排程演算法的開源引擎 4obe 的引擎排程機制 4shark 的引擎排程機制 5osworkflow 的引擎執行機制 6jbpm 的引擎執行機制 6再說說兩個 petri 排程演算法的開源引擎 9yawl 的引擎排程機制 10bossa 的引擎排程機制 標準的 pn機 12...