锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1)par鍖?br />
static ProcessDefinition auctionProcess =
ProcessArchive.parse("org/jbpm/tdd/auction.par");
娉ㄦ剰,蹇呴』鍦╟lasses鐨刼rg/jbpm/tdd/鐩綍涓嬫湁涓涓猘uction.par鏂囦歡
2)xml鏂囦歡鏂瑰紡
static ProcessDefinition auctionProcess =
JpdlXmlReader.parseFromResource("org/jbpm/tdd/auction.xml");
娉ㄦ剰,蹇呴』鍦╟lasses鐨刼rg/jbpm/tdd/鐩綍涓嬫湁涓涓猘uction.xml鏂囦歡
3)鏂囨湰鏂瑰紡
static ProcessDefinition auctionProcess = JpdlXmlReader.parse(
"<process-definition>" +
" <start-state name='start'>" +
" <transition to='auction'/>" +
" </start-state>" +
" <state name='auction'>" +
" <transition to='end'/>" +
" </state>" +
" <end-state name='end'/>" +
"</process-definition>");
榪欑鏂瑰紡鐨勬湰璐ㄥ拰xml鏂囦歡瑙f瀽鏂瑰紡鏄竴鏍風殑.
jBPM錛屽叏縐版槸Java Business Process Management錛屾槸涓縐嶅熀浜?/span>J2EE鐨勮交閲忕駭宸ヤ綔嫻佺鐞嗙郴緇熴?/span>jBPM鏄叕寮婧愪唬鐮侀」鐩紝瀹冧嬌鐢ㄨ閬靛驚 Apache License銆?/span>jBPM鍦?/span>
jBPM鏈澶х殑鐗硅壊灝辨槸瀹冪殑鍟嗗姟閫昏緫瀹氫箟娌℃湁閲囩敤鐩墠鐨勪竴浜涜鑼冿紝濡?/span>WfMC´s XPDL, BPML, ebXML, BPEL4WS絳夛紝鑰屾槸閲囩敤浜嗗畠鑷繁瀹氫箟鐨?/span>Process defiJBoss jBPM nition language (jPdl)銆?/span>jPdl璁や負涓涓晢鍔℃祦紼嬪彲浠ヨ鐪嬩綔鏄竴涓?/span>UML鐘舵佸浘銆?/span>jPdl灝辨槸璇︾粏瀹氫箟浜嗚繖涓姸鎬佸浘鐨勬瘡涓儴鍒嗭紝濡傝搗濮嬨佺粨鏉熺姸鎬侊紝鐘舵佷箣闂寸殑杞崲絳夈?/span>
jBPM鐨勫彟涓涓壒鑹叉槸瀹冧嬌鐢?/span>Hibernate鏉ョ鐞嗗畠鐨勬暟鎹簱銆?/span>Hibernate鏄洰鍓?/span>Java棰嗗煙鏈濂界殑涓縐嶆暟鎹寔涔呭眰瑙e喅鏂規銆傞氳繃Hibernate錛?/span>jBPM灝嗘暟鎹殑綆$悊鑱岃兘鍒嗙鍑哄幓錛岃嚜宸變笓娉ㄤ簬鍟嗗姟閫昏緫鐨勫鐞嗐?/span>
1. JPDL鐨勬祦紼嬪畾涔夊厓绱?/span>
1) 絎竴灞傦細GraphElement
榪欎釜瀹規槗鐞嗚В,鍥犱負鍦ㄧ敾嫻佺▼瀹氫箟鏃?/span>,姣忎釜鎷栨媺鐨勫璞¢兘鏄竴涓?/span>graph鐨勫厓绱犮?/span>GraphElement鏈夊洓涓睘鎬э細
(1)processDefine 琛ㄧず褰撳墠鍏冪礌灞炰簬鍝釜嫻佺▼瀹氫箟
(2)events 琛ㄧず鍙互鎺ユ敹鍝簺event
(3)name 鍚嶅瓧
(4)exceptionHandlers 寮傚父澶勭悊綾婚泦鍚?/span>(List)
2) 絎簩灞傦細node銆?/span>processDefinition銆?/span>Transition銆?/span>Task
瀹冧滑閮界戶鎵胯嚜GraphElement
(1)processDefinition琛ㄧず嫻佺▼瀹氫箟(implements NodeCollection),瀹冩湁涓嬮潰鐨勫睘鎬?/span>:name銆?/span>version銆?/span>nodes銆?/span>startState銆?/span>nodes琛ㄧず嫻佺▼涓墍鏈夌殑node錛?/span>startState鐢ㄤ簬鍚姩嫻佺▼鏃舵壘鍒伴鑺傜偣銆?/span>
(2)Transition琛ㄧず杞Щ錛屽畠鏈変笁涓睘鎬э細from(Node)錛?/span>to(Node)錛?/span>supportedEventTypes琛ㄧず鏀寔鐨?/span>event綾誨瀷
(3)node琛ㄧず鑺傜偣錛屽畠鏈夊洓涓睘鎬э細leaving transitions銆?/span>arriving transitions銆?/span>action銆?/span>superState銆?/span>
(4)Task 瀹氫箟浠誨姟
3) 絎笁灞傦細鍚勭涓嶅悓鐨?/span>node
瀹冧滑閮界戶鎵胯嚜node銆?/span> Decision銆?/span>EndState銆?/span>Fork銆?/span>Join銆?/span>Merge銆?/span>Milestone銆?/span> InterleaveEnd銆?/span>InterleaveStart銆?/span>ProcessState銆?/span>State銆?/span>