|
一個流程定義有一個TaskMgmtDefinition;一個TaskMgmtDefinition對應(yīng)多個Actor,同時對應(yīng)多個Task; 一個Actor有多個Task,可以從TaskMgmtDefinition中通過task的名稱直接獲取相應(yīng)的task;
一個流程實例有一個TaskMgmtInstance;一個TaskMgmtInstance對應(yīng)多個actorInstance,同時對應(yīng)多個taskInstance; 一個actorInstance有多個taskInstance,可以從TaskMgmtInstance中直接獲取相應(yīng)的taskInstance;
一個TaskNode對例應(yīng)多個Task 對于這樣的流程定義: <task-node name=‘a(chǎn)‘> <task name=‘laundry‘ /> <task name=‘dishes‘ /> <task name=‘change nappy‘ /> <transition to=‘b‘ /> </task-node> 只有當(dāng)節(jié)點中的三個任務(wù)都完成后,流程才進(jìn)入后面的節(jié)點 對于這樣的流程定義: <task-node name=‘a(chǎn)‘ signal=‘first‘>> <task name=‘laundry‘ /> <task name=‘dishes‘ /> <task name=‘change nappy‘ /> <transition to=‘b‘ /> </task-node> 當(dāng)?shù)谝粋€任務(wù)完成后,token就指向后面的節(jié)點 對于這樣的流程定義: <task-node name=‘a(chǎn)‘ signal=‘never‘>> <task name=‘laundry‘ /> <task name=‘dishes‘ /> <task name=‘change nappy‘ /> <transition to=‘b‘ /> </task-node> 三個任務(wù)都完成后,token仍然不會指向后面的節(jié)點;需要自己手動調(diào)用processInstance.signal() 才會驅(qū)動流程到下面的節(jié)點
對于這樣的流程定義: <task-node name=‘a(chǎn)‘ signal=‘unsynchronized‘>> <task name=‘laundry‘ /> <task name=‘dishes‘ /> <task name=‘change nappy‘ /> <transition to=‘b‘ /> </task-node> token不會在本節(jié)點停留,而是直接到后面的節(jié)點
jbpm用join/fork/merge/decision也可以實現(xiàn)同樣的功能,不過它們的實現(xiàn)辦法不同,一個是通過 NODE來實現(xiàn),一個是通過TASK來實現(xiàn)
|