﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-yyg1107-文章分类-jbpm</title><link>http://www.blogjava.net/yyg1107/category/9232.html</link><description>&lt;center&gt;这家伙很懒,什么都没有留下&lt;/center&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:14:03 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:14:03 GMT</pubDate><ttl>60</ttl><item><title>[转]一个JBPM工作流管理示例（三） </title><link>http://www.blogjava.net/yyg1107/articles/40483.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Tue, 11 Apr 2006 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/40483.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/40483.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/40483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/40483.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/40483.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">（二）Decision<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> kellerdu.jbpm.delegation; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.jbpm.delegation.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> kellerdu.jbpm.LogsFactory;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.commons.logging.Log;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> kellerdu.jbpm.Constants;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_237_912_Open_Image" onclick="this.style.display='none'; Codehighlighter1_237_912_Open_Text.style.display='none'; Codehighlighter1_237_912_Closed_Image.style.display='inline'; Codehighlighter1_237_912_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_237_912_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_237_912_Closed_Text.style.display='none'; Codehighlighter1_237_912_Open_Image.style.display='inline'; Codehighlighter1_237_912_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> ChiefDecision </span>
				<span style="COLOR: #0000ff">implements</span>
				<span style="COLOR: #000000"> DecisionHandler </span>
				<span id="Codehighlighter1_237_912_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_237_912_Open_Text">
						<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_266_272_Open_Image" onclick="this.style.display='none'; Codehighlighter1_266_272_Open_Text.style.display='none'; Codehighlighter1_266_272_Closed_Image.style.display='inline'; Codehighlighter1_266_272_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_266_272_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_266_272_Closed_Text.style.display='none'; Codehighlighter1_266_272_Open_Image.style.display='inline'; Codehighlighter1_266_272_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> ChiefDecision() </span>
						<span id="Codehighlighter1_266_272_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_266_272_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img id="Codehighlighter1_279_475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_279_475_Open_Text.style.display='none'; Codehighlighter1_279_475_Closed_Image.style.display='inline'; Codehighlighter1_279_475_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_279_475_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_279_475_Closed_Text.style.display='none'; Codehighlighter1_279_475_Open_Image.style.display='inline'; Codehighlighter1_279_475_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_279_475_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_279_475_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * 判断是否需要主管批准，决定下一个要进行的transition<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> executionContext ExecutionContext<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@return</span>
								<span style="COLOR: #008000"> String<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * @todo Implement this org.jbpm.delegation.DecisionHandler method<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_537_910_Open_Image" onclick="this.style.display='none'; Codehighlighter1_537_910_Open_Text.style.display='none'; Codehighlighter1_537_910_Closed_Image.style.display='inline'; Codehighlighter1_537_910_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_537_910_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_537_910_Closed_Text.style.display='none'; Codehighlighter1_537_910_Open_Image.style.display='inline'; Codehighlighter1_537_910_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> String decide(ExecutionContext executionContext) </span>
						<span id="Codehighlighter1_537_910_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_537_910_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Log log</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">LogsFactory.getLogInstance(</span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.getClass());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String ac</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">(String)executionContext.getVariable(Constants.USER_NAME);<br /><img id="Codehighlighter1_737_817_Open_Image" onclick="this.style.display='none'; Codehighlighter1_737_817_Open_Text.style.display='none'; Codehighlighter1_737_817_Closed_Image.style.display='inline'; Codehighlighter1_737_817_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_737_817_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_737_817_Closed_Text.style.display='none'; Codehighlighter1_737_817_Open_Image.style.display='inline'; Codehighlighter1_737_817_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(ac</span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">&amp;&amp;</span>
								<span style="COLOR: #000000">(ac.equals(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">dali</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">)</span>
								<span style="COLOR: #000000">||</span>
								<span style="COLOR: #000000">ac.equals(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">wang</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">)))</span>
								<span id="Codehighlighter1_737_817_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_737_817_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            log.info(ac</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">需要老板批准！</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">BossApprove</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_822_904_Open_Image" onclick="this.style.display='none'; Codehighlighter1_822_904_Open_Text.style.display='none'; Codehighlighter1_822_904_Closed_Image.style.display='inline'; Codehighlighter1_822_904_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_822_904_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_822_904_Closed_Text.style.display='none'; Codehighlighter1_822_904_Open_Image.style.display='inline'; Codehighlighter1_822_904_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #0000ff">else</span>
								<span id="Codehighlighter1_822_904_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_822_904_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            log.info(ac</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">需要先经主管批准</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">ChiefApprove</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">（三）fork<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> kellerdu.jbpm.delegation;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.jbpm.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.jbpm.delegation.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.jbpm.model.execution.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.util.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_196_1056_Open_Image" onclick="this.style.display='none'; Codehighlighter1_196_1056_Open_Text.style.display='none'; Codehighlighter1_196_1056_Closed_Image.style.display='inline'; Codehighlighter1_196_1056_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_196_1056_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_196_1056_Closed_Text.style.display='none'; Codehighlighter1_196_1056_Open_Image.style.display='inline'; Codehighlighter1_196_1056_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> DecidedJoin </span>
				<span style="COLOR: #0000ff">implements</span>
				<span style="COLOR: #000000"> JoinHandler </span>
				<span id="Codehighlighter1_196_1056_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_196_1056_Open_Text">
						<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_223_229_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_229_Open_Text.style.display='none'; Codehighlighter1_223_229_Closed_Image.style.display='inline'; Codehighlighter1_223_229_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_223_229_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_223_229_Closed_Text.style.display='none'; Codehighlighter1_223_229_Open_Image.style.display='inline'; Codehighlighter1_223_229_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> DecidedJoin() </span>
						<span id="Codehighlighter1_223_229_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_223_229_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img id="Codehighlighter1_236_480_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_480_Open_Text.style.display='none'; Codehighlighter1_236_480_Closed_Image.style.display='inline'; Codehighlighter1_236_480_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_236_480_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_480_Closed_Text.style.display='none'; Codehighlighter1_236_480_Open_Image.style.display='inline'; Codehighlighter1_236_480_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_236_480_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_236_480_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * fork，只要一个分支到达，即可进行下一步操作，同时取消其它同时进行的分支。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * 这里就是用户如果取消，请假就取消。如果用户请假批准，则用户不能取消。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> forkContext ForkContext<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@throws</span>
								<span style="COLOR: #008000"> ExecutionException<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * @todo Implement this org.jbpm.delegation.ForkHandler method<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_554_1054_Open_Image" onclick="this.style.display='none'; Codehighlighter1_554_1054_Open_Text.style.display='none'; Codehighlighter1_554_1054_Closed_Image.style.display='inline'; Codehighlighter1_554_1054_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_554_1054_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_554_1054_Closed_Text.style.display='none'; Codehighlighter1_554_1054_Open_Image.style.display='inline'; Codehighlighter1_554_1054_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> join(JoinContext joinContext) </span>
						<span style="COLOR: #0000ff">throws</span>
						<span style="COLOR: #000000"> ExecutionException </span>
						<span id="Codehighlighter1_554_1054_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_554_1054_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Iterator it</span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">joinContext.getConcurrentTokens().values().iterator();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Token arrivingToken </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> joinContext.getToken();<br /><img id="Codehighlighter1_712_939_Open_Image" onclick="this.style.display='none'; Codehighlighter1_712_939_Open_Text.style.display='none'; Codehighlighter1_712_939_Closed_Image.style.display='inline'; Codehighlighter1_712_939_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_712_939_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_712_939_Closed_Text.style.display='none'; Codehighlighter1_712_939_Open_Image.style.display='inline'; Codehighlighter1_712_939_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">while</span>
								<span style="COLOR: #000000">(it.hasNext())</span>
								<span id="Codehighlighter1_712_939_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_712_939_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            Token to</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000">(Token)it.next();<br /><img id="Codehighlighter1_809_929_Open_Image" onclick="this.style.display='none'; Codehighlighter1_809_929_Open_Text.style.display='none'; Codehighlighter1_809_929_Closed_Image.style.display='inline'; Codehighlighter1_809_929_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_809_929_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_809_929_Closed_Text.style.display='none'; Codehighlighter1_809_929_Open_Image.style.display='inline'; Codehighlighter1_809_929_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(to.getId().equals(arrivingToken.getId()))</span>
										<span id="Codehighlighter1_809_929_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_809_929_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: #008000">//</span>
												<span style="COLOR: #008000">取消其它执行的Token</span>
												<span style="COLOR: #008000">
														<br />
														<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
												</span>
												<span style="COLOR: #000000">                joinContext.getExecutionService().cancelToken(to.getId());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />         </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> reactivate the parent token.</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">          joinContext.reactivateToken( arrivingToken.getParent() );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div>
<img src ="http://www.blogjava.net/yyg1107/aggbug/40483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-04-11 16:11 <a href="http://www.blogjava.net/yyg1107/articles/40483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]一个JBPM工作流管理示例（二） </title><link>http://www.blogjava.net/yyg1107/articles/40482.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Tue, 11 Apr 2006 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/40482.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/40482.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/40482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/40482.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/40482.html</trackback:ping><description><![CDATA[Action指明的是当前状态要执行的一些额外的操作，如记录log、发邮件等。<br />（1）Swimline的delegation要做的就是判别当前Actor的身份。<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> kellerdu.jbpm.delegation;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.jbpm.delegation.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> kellerdu.jbpm.LogsFactory;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.apache.commons.logging.Log;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_194_759_Open_Image" onclick="this.style.display='none'; Codehighlighter1_194_759_Open_Text.style.display='none'; Codehighlighter1_194_759_Closed_Image.style.display='inline'; Codehighlighter1_194_759_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_194_759_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_194_759_Closed_Text.style.display='none'; Codehighlighter1_194_759_Open_Image.style.display='inline'; Codehighlighter1_194_759_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> BossSwimlane </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> AssignmentHandler </span><span id="Codehighlighter1_194_759_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_194_759_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_222_228_Open_Image" onclick="this.style.display='none'; Codehighlighter1_222_228_Open_Text.style.display='none'; Codehighlighter1_222_228_Closed_Image.style.display='inline'; Codehighlighter1_222_228_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_222_228_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_222_228_Closed_Text.style.display='none'; Codehighlighter1_222_228_Open_Image.style.display='inline'; Codehighlighter1_222_228_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> BossSwimlane() </span><span id="Codehighlighter1_222_228_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_222_228_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_235_567_Open_Image" onclick="this.style.display='none'; Codehighlighter1_235_567_Open_Text.style.display='none'; Codehighlighter1_235_567_Closed_Image.style.display='inline'; Codehighlighter1_235_567_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_235_567_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_235_567_Closed_Text.style.display='none'; Codehighlighter1_235_567_Open_Image.style.display='inline'; Codehighlighter1_235_567_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_235_567_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_235_567_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * 当前的状态有哪个actor来具体负责处理，选择是老板的actor来处理。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * 如果王林是老板，那么他请假可以用他的名称来开始一个请假流程，当他检查他需要批示的<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * 请假时，使用actorId=boss来找出所有的批示。这时selectActor返回的值就是一个常量“boss”<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> assignmentContext AssignmentContext<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000"> String<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * @todo Implement this org.jbpm.delegation.AssignmentHandler method<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_636_757_Open_Image" onclick="this.style.display='none'; Codehighlighter1_636_757_Open_Text.style.display='none'; Codehighlighter1_636_757_Closed_Image.style.display='inline'; Codehighlighter1_636_757_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_636_757_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_636_757_Closed_Text.style.display='none'; Codehighlighter1_636_757_Open_Image.style.display='inline'; Codehighlighter1_636_757_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String selectActor(AssignmentContext assignmentContext) </span><span id="Codehighlighter1_636_757_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_636_757_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Log log </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LogsFactory.getLogInstance(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.getClass());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        log.info(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">任务分配给老板</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">boss</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />===================================<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">ackage kellerdu.jbpm.delegation;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.jbpm.delegation.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> kellerdu.jbpm.LogsFactory;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.apache.commons.logging.Log;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_194_635_Open_Image" onclick="this.style.display='none'; Codehighlighter1_194_635_Open_Text.style.display='none'; Codehighlighter1_194_635_Closed_Image.style.display='inline'; Codehighlighter1_194_635_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_194_635_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_194_635_Closed_Text.style.display='none'; Codehighlighter1_194_635_Open_Image.style.display='inline'; Codehighlighter1_194_635_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> ChiefSwimlane </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> AssignmentHandler </span><span id="Codehighlighter1_194_635_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_194_635_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_223_229_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_229_Open_Text.style.display='none'; Codehighlighter1_223_229_Closed_Image.style.display='inline'; Codehighlighter1_223_229_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_223_229_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_223_229_Closed_Text.style.display='none'; Codehighlighter1_223_229_Open_Image.style.display='inline'; Codehighlighter1_223_229_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ChiefSwimlane() </span><span id="Codehighlighter1_223_229_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_223_229_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_236_442_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_442_Open_Text.style.display='none'; Codehighlighter1_236_442_Closed_Image.style.display='inline'; Codehighlighter1_236_442_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_236_442_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_442_Closed_Text.style.display='none'; Codehighlighter1_236_442_Open_Image.style.display='inline'; Codehighlighter1_236_442_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_236_442_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span><span id="Codehighlighter1_236_442_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * selectActor<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span><span style="COLOR: #808080">@see</span><span style="COLOR: #008000"> BossSwimlane<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000"> assignmentContext AssignmentContext<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span><span style="COLOR: #808080">@return</span><span style="COLOR: #008000"> String<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * @todo Implement this org.jbpm.delegation.AssignmentHandler method<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_511_633_Open_Image" onclick="this.style.display='none'; Codehighlighter1_511_633_Open_Text.style.display='none'; Codehighlighter1_511_633_Closed_Image.style.display='inline'; Codehighlighter1_511_633_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_511_633_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_511_633_Closed_Text.style.display='none'; Codehighlighter1_511_633_Open_Image.style.display='inline'; Codehighlighter1_511_633_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String selectActor(AssignmentContext assignmentContext) </span><span id="Codehighlighter1_511_633_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_511_633_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       Log log </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LogsFactory.getLogInstance(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.getClass());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        log.info(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">任务分配给上级主管</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">chief</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.blogjava.net/yyg1107/aggbug/40482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-04-11 16:09 <a href="http://www.blogjava.net/yyg1107/articles/40482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]一个JBPM工作流管理示例（一） </title><link>http://www.blogjava.net/yyg1107/articles/40481.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Tue, 11 Apr 2006 08:07:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/40481.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/40481.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/40481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/40481.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/40481.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<div class="postcontent">示例：<br />在某一公司中，部门员工要休假的话需要部门主管的批准。如果休假天数大于10天的话，在部门主管的同意后，还必须上级主管批准。如果是部门主管要休假只要上级主管批准即可。在休假被批准之前，申请人可以撤销休假申请。<br />每个员工还有多少天休假必须管理起来，在员工提交休假申请时要检查申请天数是否超过可用天数。申请批准后，要在可用天数里减去申请天数。每次休假申请结束之后，不管通过未通过或是否取消，都必须记录下来。主管在批复申请之后，系统要将批复结果Email给申请人。对于大于10天的申请，如果部门主管已批准同意而上级主管还未批准，这时申请人撤销申请后，系统应发Email通知部门主管申请已撤销。 <br />  processdefinition.xml如下：<br /><b><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">&lt;?</span><span style="COLOR: #000000">xml version</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> encoding</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">?&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> edited with XMLSPY v2004 rel. </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"> U (http:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">www.xmlspy.com) by keller (zju) --&gt;</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;!</span><span style="COLOR: #000000">DOCTYPE process</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">definition PUBLIC<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">-//jBpm/jBpm Mapping DTD 2.0//EN</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://jbpm.org/dtd/processdefinition-2.0.dtd</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">process</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">definition  name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RequestLeave</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">swimlane name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">requester</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">申请者</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">swimlane</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">swimlane name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">chief</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">部门主管</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.ChiefSwimlane</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">swimlane</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">swimlane name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">boss</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">上级主管</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.BossSwimlane</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">swimlane</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">start</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">state name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">request</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> swimlane</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">requester</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BeginRequest</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">start</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">state</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">fork name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BeginRequest</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RequesterCancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">IsChief</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">fork</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">decision name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">IsChief</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.ChiefDecision</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ChiefApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">  to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ChiefApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">decision</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">state name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RequesterCancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">assignment swimlane</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">requester</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">cancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 将请假的状态改变为“取消”</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.RequestCancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">state</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">state name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ChiefApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">assignment swimlane</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">chief</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">approve</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">NeedBossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 将请假的状态改变为“主管批准”</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.ChiefApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">disapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 将请假的状态改变为“主管否决”</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.ChiefDisapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">state</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">state name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">assignment swimlane</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">boss</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">approve</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 将请假的状态改变为“老板批准”</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.BossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">disapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 将请假的状态改变为“老板否决”</span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.BossDisapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">state</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">decision name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">NeedBossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 请假天数大于10天的要老板批准  </span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.NeedBossApproveDecision</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">need</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">BossApprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">notNeed</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">decision</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">join name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Decided</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">有一个先到达即进行父Token</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.DecidedJoin</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DoSomething</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">join</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">decision name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">DoSomething</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    根据请求的状态决定。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    （</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">）“主管或者老板批准”－‘approve’：修改员工休假的总天数，设定发给用户E</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Mail的信息。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    （</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">）“主管或者老板否决”</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">“disapprove”：设定发给用户E－Mail的信息。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    （</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">）“撤销”</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">cancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">－设定发给用户E－Mail的信息。如果主管批准，要发给主管消息说明已经撤销。<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">description</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.delegation.DoSomethingDecision</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">disapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Finished</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.Disapprove</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">approve</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Finished</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.Approve</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">transition name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">cancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> to</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Finished</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.Cancel</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />   </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">transition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">decision</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">end</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">state name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Finished</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action event</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">process-end</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;!--</span><span style="COLOR: #000000"> 发送E－Mail消息给申请者，记录请假日志 </span><span style="COLOR: #000000">--&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">delegation </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">kellerdu.jbpm.action.ProcessEndAction</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> </span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">process</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">definition</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br /></b>Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=242438</div>
		</div>
<img src ="http://www.blogjava.net/yyg1107/aggbug/40481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-04-11 16:07 <a href="http://www.blogjava.net/yyg1107/articles/40481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一个工作流的例子</title><link>http://www.blogjava.net/yyg1107/articles/40461.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Tue, 11 Apr 2006 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/40461.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/40461.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/40461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/40461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/40461.html</trackback:ping><description><![CDATA[不管怎么说,终于动手做了个小例子,迈出了第一步<br /><font color="#ff3300">http://passport.mofile.com/cn/register/step1.do?referuser=yyg1110</font><br /><p><font color="#000000">2872851048222890</font></p><img src ="http://www.blogjava.net/yyg1107/aggbug/40461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-04-11 14:32 <a href="http://www.blogjava.net/yyg1107/articles/40461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Seam 1.0 beta 2 发布-Java EE 5开发框架</title><link>http://www.blogjava.net/yyg1107/articles/38406.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Fri, 31 Mar 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/38406.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/38406.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/38406.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/38406.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/38406.html</trackback:ping><description><![CDATA[
		<div class="center">
				<h4>摘要:</h4>Seam 1.0 beta 2 发布了。Seam是一款基于EJB3.0和JSF的Java EE 5开发框架，它通过把JSF与EJB3.0组件合并在一起，从而为开发基于Web的企业应用程序提供一个最新的模式。 </div>
		<div class="right">
				<div class="help">
						<h4>Seam是一款基于EJB3.0和JSF的Java EE 5开发框架，它通过把JSF与EJB3.0组件合并在一起，从而为开发基于Web的企业应用程序提供一个最新的模式。Seam可以让你把EJB组件直接绑定到JSF页面。Seam很大程度上依赖于标注(annotations)而不是书写Java代码来构建应用程序。Seam还可帮助你把jBPM流程定义直接地集成到你的应用程序中。<br /><br />新的特性包括：<br /></h4>
				</div>
		</div>
		<div class="overflow" id="text">
				<div id="quote">workspace management (with automatic breadcrumb generation, if using the Seam conversational model), business process modeling with jBPM integration<br />reverse generation capability from the Hibernate Tools project</div>
				<br />
				<br />官方站点:<a href="http://www.jboss.com/products/seam" target="_new">http://www.jboss.com/products/seam</a><br /><br />Jobss论坛:<a href="http://www.matrix.org.cn/topic.shtml?forumId=24" target="_new">http://www.matrix.org.cn/topic.shtml?forumId=24</a><br /> <br />from:  <a href="http://www.matrix.org.cn/resource/news/506_Seam+EJB+JSF.html">http://www.matrix.org.cn/resource/news/506_Seam+EJB+JSF.html</a></div>
<img src ="http://www.blogjava.net/yyg1107/aggbug/38406.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-03-31 10:20 <a href="http://www.blogjava.net/yyg1107/articles/38406.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]JBoss jBPM 3.1 发布- 开源工作流引擎</title><link>http://www.blogjava.net/yyg1107/articles/38393.html</link><dc:creator>young</dc:creator><author>young</author><pubDate>Fri, 31 Mar 2006 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/yyg1107/articles/38393.html</guid><wfw:comment>http://www.blogjava.net/yyg1107/comments/38393.html</wfw:comment><comments>http://www.blogjava.net/yyg1107/articles/38393.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yyg1107/comments/commentRss/38393.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yyg1107/services/trackbacks/38393.html</trackback:ping><description><![CDATA[
		<div class="center">
				<h4>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">摘要:</font>
				</h4>
				<font style="BACKGROUND-COLOR: #ffffff" color="#000080">JBoss 宣布 发布jBPM 3.1 版本。JBoss jBPM是一个灵活的、可扩展的工作流管理系统。它使用简单、强大的语言来描述业务流程，把每个流程相关文件打成一个文件包，叫做流程档案(par,process archive)，作为JBoss jBPM运行服务器的输入。 </font>
		</div>
		<div class="right">
				<div class="help">
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">
						</font> </div>
		</div>
		<!-- end of summary line -->
		<div class="overflow" id="text">
				<font style="BACKGROUND-COLOR: #ffffff">
						<font color="#000080">
								<strong>JBoss 宣布 发布jBPM 3.1 版本。</strong>
								<br />
								<br />JBoss jBPM是一个灵活的、可扩展的工作流管理系统。它使用简单、强大的语言来描述业务流程，把每个流程相关文件打成一个文件包，叫做流程档案(par,process archive)，作为JBoss jBPM运行服务器的输入。JBoss jBPM通过使用JBoss jBPM流程定义语言（jPdl），在管理人员与开发人员之间架起沟通的桥梁。这使得软件项目经理可以更多控制他们软件开发工作量。在装载流程档案(par)之后，用户或者系统可以一步一步地执行这个流程。JBoss jBPM负责维护流程的状态、日志和执行所有自动的动作。JBoss jBPM将工作流应用开发的便利性和优秀的企业应用集成（EAI）能力结合了起来。JBoss jBPM包括一个web应用程序和调度器。JBoss jBPM可以使用在最简单的环境，比如一个ant 任务，也可以扩展到一个集群的J2EE应用。<br /><br />jBPM是基于"面向图形编程"搭建的。背后最基本的思想，代码只有不到120行。<br /><br />jBPM支持以下几种语言：<br /></font>
				</font>
				<div id="quote">
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">jPDL: a language with clean Java integration and superb task management features.<br />BPEL: (alpha stage) a service orchestration language based on WSDL and XML.<br />Pageflow: In JBoss SEAM, we have a simple graph based approach (with Eclipse plugin support) for defining pageflows.</font>
				</div>
				<br />
				<br />
				<font style="BACKGROUND-COLOR: #ffffff" color="#000080">官方提到的更新：<br /></font>
				<div id="quote">
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">Asynchronous continuations (see user's guide, in 'Asynchronous continuations')<br />Configuration framework (see user's guide, in 'Configuration')<br />Task instance variables (see user's guide, 'Task Management' section 'Task controllers')<br />Externalized the hibernate queries: (see user's guide, 'Customizing queries')<br />Added support for JSF-like expressions in actions and assignments: (see user's guide, 'Expressions').<br />TaskInstanceFactory replaced the task instance class configuration (see user's guide, 'Task Management' section 'Customizing task instances')</font>
				</div>
				<div>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">
						</font> </div>
				<div>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">
						</font> </div>
				<div>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">下载：<br /></font>
						<a href="http://sourceforge.net/project/showfiles.php?group_id=70542&amp;package_id=145174&amp;release_id=393399" target="_new">
								<font style="BACKGROUND-COLOR: #ffffff" color="#000080">http://sourceforge.net/project/showfiles.php?group_id=70542&amp;package_id=145174&amp;release_id=393399</font>
						</a>
						<br />
						<br />
						<a href="http://www.matrix.org.cn/topic.shtml?forumId=24" target="_new">
								<span style="COLOR: green">
										<font style="BACKGROUND-COLOR: #ffffff" color="#000080">Jboss论坛</font>
								</span>
						</a>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">：</font>
						<a href="http://www.matrix.org.cn/topic.shtml?forumId=24" target="_new">
								<font style="BACKGROUND-COLOR: #ffffff" color="#000080">http://www.matrix.org.cn/topic.shtml?forumId=24</font>
						</a>
						<font style="BACKGROUND-COLOR: #ffffff" color="#000080">
								<br />
								<br />
								<br />from:   <a href="http://www.matrix.org.cn/resource/news/513_JBoss+jBPM.html">http://www.matrix.org.cn/resource/news/513_JBoss+jBPM.html</a></font>
				</div>
		</div>
<img src ="http://www.blogjava.net/yyg1107/aggbug/38393.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yyg1107/" target="_blank">young</a> 2006-03-31 09:34 <a href="http://www.blogjava.net/yyg1107/articles/38393.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>