浠婂ぉ鏁寸悊浠g爜錛屽彂鐜頒竴涓幓騫村啓鐨勭畝鍗曠殑宸ヤ綔嫻佸紩鎿庯紝鍩轟簬petri緗戯紙鍙傝冭繖閲岀殑絎旇)錛屽疄鐜頒簡欏哄簭銆佸茍琛屻佸驚鐜拰閫夋嫨鍥涚璺敱錛岃祫婧愪篃瀹炵幇浜嗕漢宸ラ┍鍔ㄥ拰瀹氭椂銆佸歡榪熸椂闂撮┍鍔紱鐩墠鍙疄鐜頒簡灝嗗伐浣滄祦鏁版嵁淇濆瓨鍦ㄥ唴瀛樼殑鐗堟湰錛岀劧鍚庡氨鎹㈠伐浣滐紝鎶樿吘鐫灝卞繕浜嗚繖涓簨鍎匡紝鏈潵鏄鍒掑姞鍏ユ暟鎹簱瀛樺偍鐨勩傚敖綆″彧鏄釜toy錛屽彲鑳藉宸ヤ綔嫻佹劅鍏磋叮錛屾垨鑰呮兂鑷繁瀹炵幇涓涓帺鐜╃殑鏈嬪弸鏈夊弬鑰冧環鍊鹼紝鏀懼埌浜唃oogle code涓婏紝svn鍦板潃錛?br />
http://insectworkflow.googlecode.com/svn/trunk/
婧愮爜涓湁鍦╡xample鍖呬笅緇欎簡涓鍋囩殑渚嬪瓙錛屾祦紼嬪畾涔夋枃浠跺氨鏄痯rocesses鍖呬笅鐨刲eave.xml錛屽疄鐜板ぇ姒傛槸榪欎箞涓祦紼嬶細
濉啓鍋囧崟-銆嬫彁浜ゅ亣鍗?and-split鑺傜偣-銆嬮」鐩粡鐞嗗鎵?銆媋nd-join鑺傜偣-銆嬬粨鏉?br />
-銆嬮儴闂ㄧ粡鐞嗗鎵?銆?br />
鍏朵腑欏圭洰緇忕悊瀹℃壒鍜岄儴闂ㄧ粡鐞嗗鎵規槸騫惰璺敱銆倄ml閰嶇疆澶ф榪欐牱錛?br />
<node type="and-split" name="and-split" id="2">
<inputs>
<place id="3" />
</inputs>
<outputs>
<place id="4" />
<place id="5" />
</outputs>
</node>
<node name="dept_manager_confirm" id="3">
<resource class="com.google.code.insect.workflow.impl.Group" id="2"
name="dept_manager">
</resource>
<conditions type="and">
<condition
class="com.google.code.insect.workflow.impl.NullHandler" value="false"
variable-name="LeaveInfo" />
</conditions>
<handler
class="com.google.code.insect.workflow.example.leave.SendRemindHandler" />
<inputs>
<place id="4" />
</inputs>
<outputs>
<place id="6" />
</outputs>
</node>
<node name="project_manager_confirm" id="4">
<resource class="com.google.code.insect.workflow.impl.Group" id="3"
name="project_manager">
</resource>
<conditions type="and">
<condition
class="com.google.code.insect.workflow.impl.NullHandler" value="false"
variable-name="LeaveInfo" />
</conditions>
<handler
class="com.google.code.insect.workflow.example.leave.SendRemindHandler" />
<inputs>
<place id="5" />
</inputs>
<outputs>
<place id="7" />
</outputs>
</node>
<node type="and-join" name="and-join" id="5">
<handler
class="com.google.code.insect.workflow.example.leave.ResultHandler" />
<inputs>
<place id="6" />
<place id="7"></place>
</inputs>
<outputs>
<place id="8" />
</outputs>
</node>
鍏朵腑鐨刾lace灝辨槸鍚勪釜Transition鐨勮緭鍏ユ垨鑰呰緭鍑哄簱鎵錛屾墍璋搉ode鍏跺疄灝辨槸鍙樿縼錛坱ransition)錛屾瘡涓彉榪佸搴斾竴涓猦andler錛屾墽琛屽叿浣撶殑涓氬姟鎿嶄綔錛屾瘮濡傝繖閲岀殑com.google.code.insect.workflow.example.leave.SendRemindHandler 鐢ㄤ簬鍙戦佹彁閱掓秷鎭粰緇忕悊浠?br />
鍏蜂綋璋冪敤鍜屽伐浣滈」鐨勪漢宸ヨЕ鍙戯細
//鍒濆鍖栧伐浣滄祦綆$悊鍣?/span>
WorkFlowManager wm = new BasicWorkflowManager();
wm.setConfiguration(new DefaultConfiguration());
//鍚姩涓涓渚?/span>
Token token = wm.startWorkFlow("leave");
token.setAttribute("LeaveInfo", leaveInfo);
//鎻愪氦鍋囧崟
wm.doAction(token.getId(), this.dennis, "緇欓瀵煎彂閫佹秷鎭細"
+ leaveInfo.getStaff_name() + "鐢寵璇峰亣錛岃鎵瑰噯!");
//灝唗oken鐨刬d浼犻掔粰鍚庣畫鑺傜偣鍋氬鐞嗐傘倀oken鐨刬d灝辨槸妗堜緥id
processes鍖呬笅闈㈢殑嫻佺▼瀹氫箟鏂囦歡鍜宼est鍖呬笅鐨凾estUnit錛屽垎鍒祴璇曚簡鍥涚璺敱鍜屽畾鏃躲佸歡鏃惰Е鍙戯紝鏈夊叴瓚g殑鍙互鐪嬩竴涓嬨?br />

]]>