流程定義語言_第1頁
流程定義語言_第2頁
流程定義語言_第3頁
流程定義語言_第4頁
流程定義語言_第5頁
已閱讀5頁,還剩62頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一 JPDL流程定義process-definition(流程定義)流程定義的的根節點點,是所所有節點點的父節節點名稱類型數量描述name屬性可選的流程的名稱稱。swimllanee元素0.*流程中使用用的泳道道。泳道道表示流流程角色色,它們們被用于于任務分分配。startt-sttatee元素0.11流程起始狀狀態。注注意,沒沒有起始始狀態的的流程是是合法的的,但是是不能被被執行。end-sstatte|sstatte|nnodee|taask-nodde|pproccesss-sttatee|suuperr-sttatee|foork|joiin|ddeciisioon元素0.*流程定義的

2、的節點。注注意,沒沒有節點點的流程程是合法法的,但但是不能能被執行行。eventt元素0.*作為一個容容器服務務于動作作的流程程事件。actioon|sscriipt|creeatee-tiimerr|caanceel-ttimeer元素0.*全局定義的的的動作作,可以以在事件件和轉換換中引用用。注意意,為了了被引用用,這些些動作必必須指定定名稱。task元素0.*全局定義的的任務,可可以在動動作中使使用。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程定定義中的的委托類類所拋出出的所有有異常。node(自動節節點)這種節點和和Staate相相反,

3、也也稱自動動節點。當當業務程程序實例例執行到到這個節節點,不不會停止止執行。而而是會繼繼續往下下執行。如如果該節節點存在在多個離離開轉向向。那么么,就會會執行其其中的第第一個離離開轉向向,在NNodee狀態中中,不需需要外部部參與者者的參與與,業務務流程的的這個部部分是自自動的、即即時完成成的。名稱類型數量描述actioon|sscriipt|creeatee-tiimerr|caanceel-ttimeer事件1用于表示這這個節點點行為的的定制動動作。普通節點元元素請參考普通通節點元元素。startt-sttatee(開始始狀態)startt-sttatee是我們們整個流流程的開開始節點點,

4、所有有的流程程實例從從這里開開始。 名稱類型數量描述Name屬性可選的節點的名稱稱。Task元素0.11起始一個流流程實例例的任務務,或者者用來捕捕獲流程程發起者者Eventt元素0.*支持的事件件類型:noode-leaave。transsitiion元素0.*離開轉換,每每個離開開節點的的轉換必必須有一一個不同同的名稱稱。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。end-sstatte(結結束節點點)對于每一個個流程定定義都會會有一個個結束節節點,與與開始節節點對應應名稱類型數量描述Name屬性必

5、需的結束狀態的的名稱。eventt元素0.*支持的事件件類型:noode-entter。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。statee(狀態態)Statte節點點也叫手手工節點點,進入入到這種種節點,整整個流程程的執行行就會中中斷。直直到系統統外參與與者發起起繼續執執行的命命令,即即調用ssignnal或或endd方法,業業務程序序實例的的執行才才能夠繼繼續下去去。名稱類型數量描述name屬性必需的節點的名稱稱。asyncc屬性truee|faalsee,默默認是ffalsse如果設置為為tr

6、uue,這這個節點點將會異異步執行行。請參參考”異步執執行”章節。transsitiion元素0.*離開轉換。每每個離開開節點的的轉換必必須有一一個不同同的名稱稱,最多多只允許許所有離離開轉換換中的一一個沒有有名稱。第第一個轉轉換被指指定為默默認轉換換,當離離開節點點而沒有有指定轉轉換時,默默認轉換換發生。eventt元素0.*支持的事件件類型:noode-entter|nodde-lleavve。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。timerr元素0.*指定一個定定時器,用用來監視視節點中中的

7、一個個執行所所持續的的時間。task-nodde (任務節節點)其性質和nnodee節點一一樣,在在沒有ttaskk的時候候,也都都是自動動執行,不不等待。task-node被歸類為一個等待節點,是指在task-node中的task列表中的task沒有全部執行完之前,它會一直等待。Task可以在task-node節點下定義,也可以掛在process-definition節點下。最普遍的方式是在task-node節點下定義一個或多個任務。默認情況下,流程在task-node節點會處于等待狀態,直到所有的任務被執行完畢。Task的執行是按順序執行的,任務都完成后,token仍然不會指向后面的節點;

8、需要自己手動調用processInstance.signal()才會驅動流程到下面的節點。名稱類型數量描述signaal屬性可選的unsyynchhronnizeed|nneveer|ffirsst|ffirsst-wwaitt|laast|lasst-wwaitt,默默認是llastt。siggnall指定了了任務的的完成對對流程執執行繼續續的影響響。creatte-ttaskks屬性可選的yes|no|truue|ffalsse,默默認是ttruee。當需需要在運運行時通通過計算算來決定定哪個任任務將被被創建時時,可以以設置為為fallse,如如果這樣樣的話,在在nodde-eenteer

9、事件件上加一一個動作作,在動動作中創創建任務務,并且且把crreatte-ttaskks設置置為faalsee。end-ttaskks屬性可選的yes|no|truue|ffalsse,默默認是ffalsse。如如果設置置endd-taaskss為truue,在在離開節節點時,所所有打開開的任務務將被結結束。task元素0.*當執行到達達本節點點時所應應被創建建的任務務。 HYPERLINK l _普通節點元元素 普通節節點元素素請參考 HYPERLINK l _普通通節點元元素 普通節節點元素素。為了幫助讀讀者理解解tassk-nnodee節點的的siggnall屬性,這這里舉例例如下:對于

10、這樣的的流程定定義: 這里沒有定定義siignaal屬性性的值,這這就表明明當節點點中的三三個任務務都完成成后,流流程才進進入后面面的節點點當表明明tokken不不會在本本節點停停留,而而是直接接到后面面的節點點當表明明三個任任務都完完成后,token仍然不會指向后面的節點;需要自己手動調用processInstance.signal()才會驅動流程到下面的節點當表明明只要有有一個任任務完成成后,ttokeen就指指向后面面的節點點當表明當當第一個個任務實實例完成成時繼續續執行;當在aa節點入入口處沒沒有任務務創建時時,tookenn在a任務節節點處等等待,直直到任務務被創建建或完成成。當時,

11、這這是默認認值,和和不設置置siggnall屬性的的情況相相同。當時時,當最最后一個個任務實實例完成成時候繼繼續執行行下去。 當a這個任務節點沒有任務被建立時,任務節點等待直到任務被建立。fork(分支)一個forrk把一一個執行行路線分分割成多多個執行行路線. 默認認分支的的行為是是為每個個離開分分支轉換換建立一一個子令令牌,在令牌牌要到達達的分支支之間建建立一個個父母-子女關關系名稱類型數量描述name屬性必需的節點的名稱稱。asyncc屬性truee|faalsee,默默認是ffalsse如果設置為為truue,這這個節點點將會異異步執行行。請參參考”異步執執行”章節。transsiti

12、ion元素0.*離開轉換。每每個離開開節點的的轉換必必須有一一個不同同的名稱稱,最多多只允許許所有離離開轉換換中的一一個沒有有名稱。第第一個轉轉換被指指定為默默認轉換換,當離離開節點點而沒有有指定轉轉換時,默默認轉換換發生。eventt元素0.*支持的事件件類型:noode-entter|nodde-lleavve。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。timerr元素0.*指定一個定定時器,用用來監視視節點中中的一個個執行所所持續的的時間。join(聯合)默認聯合(joiin)假假設所有有來自同

13、同一個父父母的子子令牌聯聯合,當當在上使使用foork(分支)這個情情形就出出現了并并且所有有令牌分分支建立立,并且且到達同同一個聯聯合(jjoinn)。當當全部令令牌都進進入聯合合的時候候聯合就就結束了了, 然后聯聯合將檢檢查父母母-子女, 當所有有兄弟令令牌到達達聯合(joiin),父父母令牌牌將傳播播(唯一的的)離開轉轉換,當當還有兄兄弟令牌牌活動時時,聯合合的行為為將作為為等待狀狀態。名稱類型數量描述name屬性必需的節點的名稱稱。asyncc屬性truee|faalsee,默默認是ffalsse如果設置為為truue,這這個節點點將會異異步執行行。transsitiion元素0.*離

14、開轉換。每每個離開開節點的的轉換必必須有一一個不同同的名稱稱,最多多只允許許所有離離開轉換換中的一一個沒有有名稱。第第一個轉轉換被指指定為默默認轉換換,當離離開節點點而沒有有指定轉轉換時,默默認轉換換發生。eventt元素0.*支持的事件件類型:noode-entter|nodde-lleavve。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。timerr元素0.*指定一個定定時器,用用來監視視節點中中的一個個執行所所持續的的時間。對于Joiin節點點,我們們知道默默認是要要等到所所有分支支都到了了流程才

15、才能往下下繼續走走,要改改變這一一情況,我我們可以以通過給給該節點點加Acctioon的方方法改變變該Jooin節節點的DDisccrimminaatorr,就可可以使只只要有一一個分支支到達流流程就可可以繼續續執行的的效果了了decissionn(決策策)一個deccisiion用用以決定定在多個個執行路路徑中哪哪個才可可以被執執行。如如果你是是一個程程序員,把把它可以以理解成成swiitchh caase結結構即可可,一個個deccisiion能能夠具有有許多離離開的ttrannsittionn。 名稱類型數量描述handller元素要么指定“hhanddlerr”元素素,或者者在轉換換上

16、指定定條件。一個orgg.jbbpm.jpddl.DDef.DeccisiionHHanddlerr的實現現名稱。transsitiion元素0.*離開轉換。決決策的離離開轉換換可以被被擴展為為擁有一一個條件件,決策策會查找找條件計計算為ttruee的第一一個轉換換,沒有有條件的的轉換被被認為計計算為ttruee(為了了建模“ootheerwiise”分支)。請參考 HYPERLINK l _condition condition元素。 HYPERLINK et/fckeditor/editor/fckeditor.html?InstanceName=ctl00_ContentPlaceHol

17、der1_EntryEditor1_FCKEditor&Toolbar=Default l _普通節點元元素 普通節節點元素素請參考 HYPERLINK ryEditor1_FCKEditor&Toolbar=Default l _普通通節點元元素 普通節節點元素素。Handller所所指定的的DeccisiionHHanddlerr的實現現類里的的deccidee方法返返回一個個字符串串,表示示要執行行哪個ttrannsittionntranssitiion(轉換)轉換用來指指定節點點之間的的連接。transition元素放在node里面,那么這個transition就會從這個節點出離開。

18、名稱類型數量描述name屬性可選的轉換的名稱稱。注意意,每個個節點的的離開轉轉換必須須有一個個不同的的名稱。to屬性必需的目標節點的的分級名名稱,表表示將要要達到的的那個節節點名稱稱. actioon|sscriipt|creaate-timmer|canccel-timmer元素0.*發生轉換時時將要執執行的動動作。注注意,轉轉換的動動作無需需放入事事件(因因為只有有一個事事件)。excepptioon-hhanddlerr元素0.*一個異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。eventt(事件件)JBPM定定義了一一系列與與工作流流節點元元素相關關聯的

19、事事件,例例如,流流程實例例運行過過程中,可可以觸發發節點進進入(nnodee-ennterr)、節節點離開開 (nodde-lleavve)、流流程啟動動(prroceess-staart)、流流程結束束(prroceess-endd)、任任務創建建(taask-creeatee)、 任務分分派(ttaskk-asssiggn)、任任務啟動動(taask-staart)等等事件。在流程定義義時,JJBPMM的事件件均與aactiion綁綁定。事事件的觸觸發將導導致相應應acttionns的執執行。名稱類型數量描述type屬性必需的表示相對于于事件要要放置的的元素事事件類型型。actioon|

20、sscriipt|creeatee-tiimerr|canceel-ttimeer元素0.*在這個事件件上將要要執行的的動作列列表。actioon(動動作)一個acttionn是一段段javva代碼碼。在流流程執行行期間在在一些事事件之上上定義,這這樣會在在相關事事件觸發發時自動動在工作作流引擎擎上執行行。名稱類型數量描述name屬性必需的動作的名稱稱。當動動作被指指定名稱稱后,它它們可以以在流程程定義中中被查出出,這對對于運行行時動作作以及僅僅一次聲聲明動作作是有用用的。classs屬性或者用reef-nnamee,或者者用exxpreessiion。實現orgg.jbbpm.graaph.

21、deff.AcctioonHaandller接接口的類類的全名名。ref-nnamee屬性或者用cllasss。所引用動作作的名稱稱。如果果指定一一個引用用動作,則則本動作作不需要要再做處處理。expreessiion屬性或者指定一一個cllasss,或者者reff-naame。一個解決一一個方法法的jPPDL表表達式。acceppt-propaagatted-eveentss屬性可選的yes|no|truue|ffalsse,默默認是yyes|truue。如如果設置置為faalsee,則動動作僅在在本動作作元素的的觸發事事件上被被執行。更更多信息息,請參參考“ HYPERLINK l _事件

22、傳傳播 第9.55.4 事件傳傳播”。confiig-ttypee屬性可選的 HYPERLINK ontentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _配置類型型fieeld fiieldd| HYPERLINK l _配置類類型beean beean| HYPERLINK l _配置類類型coonsttrucctorr cconsstruuctoor| HYPERLINK ?InstanceName=ctl00_ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Defaul

23、t l _配置類類型coonfiigurratiion-prooperrty coonfiigurratiion-prooperrty。指定定動作對對象將被被怎樣創創建以及及本元素素的內容容怎樣象象配置信信息那樣樣被動作作對象所所使用。asyncc屬性truee|faalsee默認fallse,這這意味著著動作將將在當前前執行的的線程中中被執行行。如果果設置為為truue,一一個消息息將被發發送到命命令執行行器,并并且執行行器組件件將在一一個獨立立的事務務中同步步執行動動作。請請參考”異步執執行”章節。內容可選的actioon的內內容可以以被作為為你定制制動作實實現的配配置信息息,這是是考慮到

24、到可重用用的委托托類的創創建。有有關委托托配置的的更多信信息,請請參考“ HYPERLINK l _委托配配置 第16.2.33節委托托配置”。scrippt(腳腳本)Scrippt里是是動作執執行的bbeannsheell腳腳本.名稱類型數量描述name屬性可選的腳本動作的的名稱。當當動作被被指定名名稱后,它它們可以以在流程程定義中中被查出出,這對對于運行行時動作作以及僅僅一次聲聲明動作作是有用用的。Acceppt-proppagaatedd-evennts屬性可選的00.*yes|no|truue|ffalsse,默默認是yyes|truue。如如果設置置為faalsee,則動動作僅在在本

25、動作作元素的的觸發事事件上被被執行.expreessiion元素0.11beansshelll腳本本。如果果你沒有有指定 HYPERLINK l _variable vvariiablle元素素,可以以寫表達達式作為為腳本元元素的內內容(忽忽略exxpreessiion元元素標簽簽)。variaablee元素0.*腳本所需變變量。如如果沒有有指定變變量,則則當前令令牌的所所有變量量將被裝裝載到腳腳本,當當你想要要限制裝裝載到腳腳本中的的變量數數量時使使用vaariaablee。expreessiion(表表達式)Expreessiion里里可書寫寫Beaanshhelll腳本名稱類型數量描述內

26、容一個beaanshhelll腳本。variaablee(變量量)一個是變量量是一種種keyy-vaaluee對。它它與過程程實例(一一次過程程執行)相相關聯。Key是java.lang.string,value是任何java類型的任何pojo。所以任何是java類型,即使不給jbpm知道也能被應用到變量中。JBPM的流程變量在盡量模仿java.util.map的語義。這一點可以通過JBPM的API來了解。也就是說一個變量只能當它被插入時被賦值,任何java類型都可以作為變量中的value。 名稱類型數量描述name屬性必需的流程變量的的名稱。accesss屬性可選的默認是reead,wrii

27、te,用用逗號分分割的一一個訪問問列表。迄迄今為止止,使用用的訪問問僅為rreadd,wriite和和reqquirred。mappeed-nnamee屬性可選的默認是變量量的名稱稱。用來來指定變變量名稱稱被映射射的名稱稱,maappeed-nnamee的含義義依賴于于這個元元素所被被使用的的上下文文。對于于一個腳腳本,將將是一個個腳本變變量名稱稱;對于于一個任任務控制制器,將將是任務務表單參參數的標標簽;對對于一個個proocesss-sstatte,將將是在子子流程中中使用的的變量名名稱。handller(句柄)Handller是是在定義義一個ddeciisioon時需需要為其其定義一一個

28、DeecissionnHanndleer時采采用。名稱類型數量描述expreessiion屬性或者用cllasss一個jPDDL表達達式,返返回結果果被用ttoSttrinng()方法轉轉換為字字符串,結結果字符符串應該該與某個個離開轉轉換匹配配。classs屬性或者用reef-nnamee實現了orrg.jjbpmm.grraphh.noode.DeccisiionHHanddlerr接口的的類的全全名。Confiig-typee屬性可選的 HYPERLINK ault l _配置類型型fieeld fiieldd| HYPERLINK l _配置類類型beean beean| HYPERL

29、INK r/fckeditor.html?InstanceName=ctl00_ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _配置類類型coonsttrucctorr cconsstruuctoor| HYPERLINK CKEditor&Toolbar=Default l _配置類類型coonfiigurratiion-prooperrty coonfiigurratiion-prooperrty。指定定動作對對象將被被怎樣創創建以及及本元素素的內容容怎樣象象配置信信息那樣樣被動作作對象所所使用。內容可選的Acti

30、oon里的的內容可可以用來來幫助結結合我們們的業務務來處理理我們的的流程,同時我我們可以以在Acctioon里加加上業務務處理邏邏輯,以更好好的利用用流程.timerr(定時時器)定時器tiimerr可以被被用于ddeciisioon fforkk jooin nodde pproccesss-sttatee sttatee suuperr-sttatee taask-nodde,可可以設置置開始時時間duuedaate和和頻率rrepeeat,定定時器動動作可以以是所支支持的任任何動作作元素,如如acttionn或scrriptt。timerr 還有有一個很很重要的的屬性ccanccel-e

31、veent,這這個是ttimeer和tassk結合合時使用用的,任任務定時時器的ccanccel-eveent可可以被定定制。默默認情況況 下,當當任務被被結束時時(=完成)任任務上的的定時器器將被取取消,這這是通過過在定時時器上使使用caanceel-eevennt屬性性,流程程開發者者可以定定制諸如如tassk- asssignn或tassk-sstarrt。canncell-evventt支持多多個事件件,通過過在屬性性中指定定一個用用逗號分分割的列列表,可可以組合合canncell-evventt 的類類型。名稱類型數量描述name屬性可選的定時器的名名稱。如如果沒有有指定名名稱,則則

32、采用外外部的節節點名稱稱。注意意,每個個定時器器應該有有一個唯唯一的名名稱。duedaate屬性必需的所指定的定定時器創創建到定定時器執執行之間間的期限限(可以以用業務務時間來來表示)。repeaat屬性可選的duraatioon|yyes|truue當當一個定定時器在在預期時時間執行行后,“rrepeeat”可選項指定了在離開節點之前重復的執行定時器之間的期限。如果指定為true或false,則與duedate相同的期限被使用。transsitiion屬性可選的當定時器執執行、定定時器事事件觸發發后以及及執行動動作時時時所使用用的轉換換名稱。canceel-eevennt屬性可選的這個屬性只

33、只用在任任務的定定時器中中,它指指定了定定時器將將被取消消的事件件。默認認是taask-endd事件,但但是也可可以被設設置為如如tassk-aassiign或或tassk-sstarrt。canncell-evventt的類型型也可以以通過指指定一個個用逗號號分割的的列表被被組合。actioon|sscriipt|creatte-ttimeer|canceel-ttimeer元素0.*當定時器被被觸發時時所應被被執行的的動作。creatte-ttimeer(創創建定時時器)Creatte-ttimeer是定定時器的的創建名稱類型數量描述name屬性可選的定時器的名名稱。這這個名稱稱可被用用于

34、用一一個caanceel-ttimeer動作作取消定定時器。duedaate屬性必需的所指定的定定時器創創建到定定時器執執行之間間的期限限(可以以用業務務時間來來表示)。請請參考“ HYPERLINK itor/editor/fckeditor.html?InstanceName=ctl00_ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _期限 第14.1節期期限”中的語語法。repeaat屬性可選的duraatioon|yess|truue當一個個定時器器在預期期時間執執行后,“repeat”可選項指定了在離開節點之

35、前重復的執行定時器之間的期限。如果指定為true或yese,則與duedate相同的期限被使用。請參考“ HYPERLINK l _期限 第14.1節期限”的語法。transsitiion屬性可選的當定時器執執行、定定時器事事件觸發發后以及及執行動動作時時時(如果果要)所所獲取的的轉換名名稱。canceel-ttimeer(取取消定時時器)Canceel-ttimeer是定定時器的的取消名稱類型數量描述name屬性可選的要被取消的的定時器器的名稱稱。task(任務)Task 是是流流程定義義里的一一部分,它它決定了了tassk iinsttancce的創創建和分分配名稱類型數量描述name屬性

36、可選的任務的名稱稱。命名名的任可可以被引引用并且且可以通通過TaaskMMgmttDeffiniitioon被查查出。blockkingg屬性可選的yes|no|truue|ffalsse 如果bllockkingg設置為為truue,當當任務沒沒有結束束時節點點不能被被離開(必必須要通通過taaskIInsttancce.eend()方法法離開節節點);如果設設置為ffalsse(默默認),允允許用戶戶通過ssignnal繼繼續執行行和離開開節點。默默認設置置為faalsee,因為為通常是是由用戶戶接口來來強制阻阻塞。signaalliing屬性可選的yes|no|truue|ffalsse

37、,默默認是ttruee。如果果設置ssignnalllingg為fallse,則則任務沒沒有觸發發令牌繼繼續的能能力。duedaate屬性可選的延遲時間(任任務執行行的的延延遲時間間)。請請見業務務日歷中中的解釋釋。swimllanee屬性可選的引用一個 HYPERLINK l _swimlane sswimmlanne,如如果在任任務上指指定了一一個swwimllanee,則asssiggnmeent將將被忽略略。priorrityy屬性可選的highhestt,hiigh,norrmall,loow,lloweest之一。作作為選擇擇,可以以為prriorrityy指定任任何整數數,供參參

38、考:(higghesst=11,loowesst=55)。 HYPERLINK l _assignment assiggnmeent元素可選的描寫一個 HYPERLINK l _委委托 委托,該該委托將將在任務務被創建建時把任任務分配配給一個個參與者者。eventt元素0.*支持的事件件類型:taask-creeatee|taask-staart|tassk-aassiign|tassk-eend。為了了任務分分配,我我們特別別的為TTaskkInsstannce添添加了一一個非持持久化的的屬性pprevviouusAcctorrId。excepptioon-hhanddlerr元素0.*一個

39、異常處處理器列列表,用用于這個個流程節節點中的的委托類類所拋出出的所有有異常。timerr元素0.*指定一個監監視本任任務執行行期限的的一個定定時器。對對于任務務定時器器特殊的的是可以以指定ccanccel-eveent,canncell-evventt默認是是tassk-eend,但但是它可可以被自自定義如如tassk-aassiign或或tassk-sstarrt。contrrolller元素0.11指定流程變變量怎樣樣被轉換換為任務務表單參參數。任任務表單單參數有有用戶界界面使用用,用力力向用戶戶表現一一個任務務表單。swimllanee(泳道道)實際應用中中,一個個人是一一個流程程中多

40、個個Tassk的參參與者(acttor)的情況況是很常常見的。在在jbppm中通通過創建建一個sswimmlanne并且且把swwimllanee賦給一一個taask的的方式來來設置當當前taask的的參與者者(acctorr)。一一個業務務流程中中的swwimllanee可以被被看做為為一個參參與者的的參與者者對象的的名稱,當當然它不不一定是是固定的的某個人人,它可可以是一一個用戶戶組,一一個特定定用戶的的角色等等。首次次執行到到達一個個Tassk,賦賦給該TTaskk的一個個swiimlaane就就會算出出參與者者(acctorr)。名稱類型數量描述name屬性必需的泳道的名稱稱。泳道道可

41、以被被引用并并且可以以通過TTaskkMgmmtDeefinnitiion被被查出。assiggnmeent元素1.11指定泳道的的分配。這這個分配配在本泳泳道中的的第一個個任務實實例被創創建時完完成。assiggnmeent(委派)當流程執行行到某個個Tassk的時時候,引引時流程程引摯要要調用相相應的sswimmlanne或asssignnmennt將當當前的ttaskk分配(委委派)給給某個參參與者,外外部參與與者可以以是一個個人也可可以是某某個系統統等。名稱類型數量描述expreessiion屬性可選的由于歷史原原因,這這個屬性性的表達達式不是是 HYPERLINK l _表達式式 j

42、PPDL表表達式,而而是對jjBPMM身份組組件的一一個分配配表達式式。actorr-idd屬性可選的一個acttorIId,可可以與ppoolled-acttorss協同使使用。aactoor-iid被作作為 HYPERLINK l _表達達式 一個表表達式,因因此你可可以引用用一個固固定的aactoorIdd,如acctorr-idd=”bbobtthebbuiller”;或者你可以引用一個可以返回一個字符串的屬性或方法,如actor-id=”myVar.actorId”,這將調用任務實例變量“myVar”上的getActorId方法。Pooleed-actoors屬性可選的一個逗號分分割

43、的aactoorIdd列表,可可以與aactoor-iid協同同使用。一一個固定定的參與與者池可可以指定定如下:poooledd-acctorrs=”cchiccagoobullls,poiinteersiisteers”。 pooled-actors被作為 HYPERLINK or/fckeditor.html?InstanceName=ctl00_ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _表達式 一個表達式,因此你可以引用一個返回String、Collection、或一個逗號分割的池中的參與者列表的屬性或方法

44、。classs屬性可選的一個實現oorg.jbppm.ttaskkmgmmt.ddef.AsssignnmenntHaandller接接口的類類的全名名稱。confiig-ttypee屬性可選的 HYPERLINK l _配置類型型fieeld fiieldd| HYPERLINK ame=ctl00_ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _配置類類型beean beean| HYPERLINK l _配置類類型coonsttrucctorr cconsstruuctoor| HYPERLINK l _配置類類

45、型coonfiigurratiion-prooperrty coonfiigurratiion-prooperrty。指定定分配處處理器對對象(aassiignmmentt-haandller-objjectt)對象象將被怎怎樣創建建以及本本元素的的內容怎怎樣象配配置信息息那樣被被分配處處理器對對象所使使用。內容可選的assiggnmeent元元素的內內容可以以被作為為分配處處理器(AssignmentHandler)實現的配置信息,這是考慮到可重用的委托類的創建。contrrolller(控制器器)在任務執行行時,可可能需要要讀、寫寫流程變變量;在在任務完完成并提提交時,可可能需要要寫流程程

46、變量。為為此,jjBPMM提供了了任務變變量的概念念。在某某些情況況下,任任務變量量和流 程變量量并非簡簡單的一一一對應應關系,例例如,三三個流程程變量代代表三個個月的銷銷售額,任任務變量量只需要要它們的的平均值值。為實實現任務務與流程程實例之之間的信信息交流流,jBBPM設設置 了任務務控制器器機制。該該機制也也采用遞遞進模式式:首先先,jBBPM提提供基本本(默認認)的任任務控制制器;如如果不敷敷使用,二二次開發發人員可可以使用用自定義義的任務務控制器器。 jjBPMM的任務務控制器器機制在在流程變變量和任任務變量量之間架架起了一一座橋梁梁。名稱類型數量描述classs屬性可選的一個實現o

47、org.jbppm.ttaskkmgmmt.ddef.TasskCoontrrolllerHHanddlerr接口的的類的全全名稱。Confiig-typee屬性可選的 HYPERLINK l _配置類型型fieeld fiieldd| HYPERLINK ContentPlaceHolder1_EntryEditor1_FCKEditor&Toolbar=Default l _配置類類型beean beean| HYPERLINK l _配置類類型coonsttrucctorr cconsstruuctoor| HYPERLINK l _配置類類型coonfiigurratiion-proo

48、perrty coonfiigurratiion-prooperrty。指定定分配處處理器對對象(aassiignmmentt-haandller-objjectt)對象象將被怎怎樣創建建以及本本元素的的內容怎怎樣象配配置信息息那樣被被分配處處理器對對象所使使用。內容contrrolller元元素的內內容要么么是指定定的任務務控制處處理器的的配置信信息(如如果指定定了cllasss屬性),要要么必須須是一個個varriabble元元素列表表(如果果沒有指指定任務務控制器器)。variaablee元素0.*如果沒有通通過cllasss屬性指指定任務務控制處處理器,則則conntroolleer元

49、素素的內容容必須是是變量列列表。proceess-staate 子流程程proceess-staate是是JBPPM提供供的用來來處理子子流程的的節點,一一個prroceess-staate只只能對應應一個子子流程,究究竟指到到哪個子子流程可可以在pproccesss-sttatee的acttionn里指定定,當ttokeen執行行到指定定的子流流程時,子子流程就就已經啟啟動,不不用像啟啟動主流流程一樣樣手工啟啟動子流流程。其其它部分分的處理理就和普普通的流流程沒有有區別了了。名稱類型數量描述name屬性必需的名稱。Sub-pproccesss元素只能定義一一個子流程variaablee變量0

50、*Variaablee是用來來指定如如何把數數據從父父流程ccopyy到子流流程sub-pproccesss 子流流程名稱類型數量描述namee屬性必需的子流程的的名稱versiion屬性可選子流程的版版本。如如果沒有有指定該該屬性,默默認將會會采且該該子流程程的最后后一個版版本condiitioon 條條件名稱類型數量描述內容或或屬性表達式必需的condditiion元元素的內內容是一一個計算算結果為為布爾值值的jPPDL表表達式。決決策采用用第一個個表達式式處理結結果為ttruee的轉換換(按在在proocesssdeefinnitiion.xmll中的順順序),如如果沒有有條件處處理結果

51、果為trrue,則則采用默默認離開開轉換(也也就是第第一個)。excepptioon-hhanddlerr 異常常處理Jbpm的的異常處處理機制制僅僅集集中于jjavaa異常,流流程定義義本身的的執行不不會導致致什么異異常,只只有在執執行委托托類時才才會導致致異常。 在流程定義(process-definitions)添加的exception-handler對整個流程起作用、節點(nodes)上添加異常只對當前的節點起作用(同時如果在process-definitions里也設置了exception-handler那么將不會再執行process-definitions里的exception-h

52、andler),和轉換(transitions)添加exception-handler只對當前的transitions起作用(同時如果在process-definitions里也設置了exception-handler那么將不會再執行process-definitions里的exception-handler),可以指定一個異常處理(exception-handlers)清單,每個異常處理(exception-handler)有一個動作列表,當在委托類中發生異常時,會在流程元素的父層次搜索一個適當的異常處理(exception-handler),當它被搜索到,則異常處理(exception-h

53、andler)的動作將被執行。 注意,Jbpm的異常處理機制與java異常處理不完全相似。在java中,一個捕獲的異常可以影響控制流,而在Jbpm中,流程不會被Jbpm異常處理機制所改變。異常要么被捕獲,要么不捕獲,沒有被捕獲的異常被拋向客戶端(例如客戶端調用token.signal()),而被捕獲的異常則是通過Jbpm的exception-handler,對于被捕獲的異常,圖執行仍會繼續,就像沒有異常發生一樣。 在處理異常的動作中,可以使用Token.setNode(Node node)把令牌放入圖中的任何節點。名稱類型數量描述excepptioon-cclasss屬性可選的指定與本異異常處

54、理理器所匹匹配的jjavaa thhrowwablle類,如如果這個個沒有指指定這個個屬性,則則它匹配配所有異異常(jjavaa.laang.Thrrowaablee)。actioon元素1.*當異常被異異常處理理器捕獲獲時將要要執行的的動作列列表。二 HYPERLINK XPDDL之流流程定義義元模型型XPDL元元模型定定義了流流程定義義里所包包含的實實體、它它們的關關系以及及屬性,其其中屬性性不僅僅僅為了執執行需要要,很多多屬性是是為了統統計與監監控的需需要。2.1 包包(Paackaage)流程模型包包含許多多作用域域大于流流程定義義的實體體,例如如參與者者聲明、應應用程序序聲明和和相關

55、數數據元素素,它們們可能被被多個流流程定義義所引用用。為了了避免每每個流程程定義都都重復定定義這些些實體,XXPDLL引入包包的概念念,包作作為流程程定義的的容器,對對流程定定義按照照關聯性性進行分分組。在在包上定定義的實實體被其其包含的的流程定定義繼承承,同時時,包能能夠為所所屬流程程定義聲聲明一系系列的通通用屬性性,例如如作者、版版本號、狀狀態等。XPDL里里的包等等價于BBPMNN里的業業務流程程圖(BBusiinesss PProccesss Diiagrram)。2.2 泳泳道(SSwimmlannes)泳道被用來來對流程程定義和和活動進進行布局局。我們們使用泳泳道在流流程級別別上定

56、義義參與者者信息(部部門、公公司),在在活動級級別上定定義執行行者信息息(角色色、人員員)。我我們使用用一系列列非重疊疊的長方方形來描描述泳道道,這些些長方形形稱為池池(Poool),同同時,池池又被細細分為一一系列的的子泳道道(Laane)。如如下圖22-6所所示:圖 2-66泳道同樣的在下下圖中描描述了一一個包含含貸款應應用流程程的池。池池中沒有有道。流流程可以以是可重重用的子子流程或或內嵌的的子流程程。要注意遷移移(順序序流)可可以穿越越同一個個池中的的道。遷遷移可能能不會穿穿越池。2.3 流流程定義義(Prroceess Deffiniitioon)流程定義是是對流程程的建模模和描述述

57、,為流流程中的的其他實實體提供供上下文文信息。其其屬性包包括創建建時間、作作者、初初始化參參數、執執行優先先級、時時間約束束、仿真真信息等等。Xpdl22.1文文檔包含含對流程程集(包包)的流流程定義義。Xml文文檔不僅僅被模型型工具、模模擬工具具和執行行工具使使用,它它同樣為為bamm報表工工具提供供了基本本信息,特特別是為為OLAAP立體體報表技技術提供供了維度度和變量量信息。在這里我們們描述了了使用管管理工具具發送xxpdll流程定定義到分分析工具具并傳達達能捕捉捉執行的的詳細情情況的日日志事件件流的企企業流程程管理系系統。分分析工具具根據流流程定義義、參與與者和隊隊列信息息來構造造數據

58、庫庫和OLLAP立立方。分分析工具具處理事事件來更更新數據據庫中實實際和維維度上的的表,并并且利用用exccel和和(或)其其他擁有有的流程程以及企企業智能能工具立立體處理理事件來來完成對對切片和和切塊查查看數據據的交互互的準備備。一個可供選選擇的數數據展示示的方法法顯示了了流程定定義的視視覺環境境中選擇擇的數據據。這個個可以由由歷史展展示或動動畫執行行系統或或模擬運運行來實實現。2.4活動動(Acctivvityy)活動是流程程中的一一個步驟驟,一個個基本活活動具有有屬性。這這些屬性性提供了了在這一一步驟中中誰可以以執行這這個活動動、什么么應用或或Webb服務會會被調用用、正在在工作的的對象

59、的的哪些內內容被使使用了以以及(或或)被改改變了等等信息。參參與者(資資源)和和應用可可能會定定義在一一個流程程中,或或者被定定義在企企業流程程模型的的整個流流程集中中。工作作對象的的內容同同樣可以以定義在在一個流流程中或或整個模模型中。活活動有一一些其他他屬性更更進一步步定義了了它們的的特殊角角色或它它們是如如何實現現的一個個流程包包含一個個或多個個活動,活活動對應應著流程程里的一一個工作作單元。一一個典型型的活動動能被人人力資源源或計算算機所執執行。XPDL的的活動粒粒度比較較粗,分分為四類類,分別別對應BBPMNN里的任任務、子子流程、網網關和事事件。如如下圖22-7所所示:圖 2-77XPDDL活動動與BPPMN的的映射2.5轉移移線(TTrannsittionn)活動之間通通過轉移移線連接接。轉移移線包括括3個屬屬性:源源活動、目目標活動動和條件件。轉移移線可以以是有條條件的(設設置表達達式),也也可以是是無條件件的。XPDL的的轉移線線對應于于BPMMN里的的順序流流,如下下圖2-8所示示:圖 2-88XPDDL轉移移線對應應BPMMN里的的順序流流2.6 參參與者聲聲明(PPartticiipannt DDecllaraatioon)描述執行流流程和活活動的資資源。資資源可以以是單個個人、也也可以是是角色、部部門、還還可以是是自動執執行的機機器資源源(例如如打印機機

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論