﻿<?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-shzhlo-随笔分类-JBPM 转自陈刚的文章</title><link>http://www.blogjava.net/shzhlo/category/44174.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 03 Mar 2010 01:58:43 GMT</lastBuildDate><pubDate>Wed, 03 Mar 2010 01:58:43 GMT</pubDate><ttl>60</ttl><item><title>[导入]jBPM开发入门指南(5) </title><link>http://www.blogjava.net/shzhlo/archive/2010/03/03/314361.html</link><dc:creator>施</dc:creator><author>施</author><pubDate>Wed, 03 Mar 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shzhlo/archive/2010/03/03/314361.html</guid><wfw:comment>http://www.blogjava.net/shzhlo/comments/314361.html</wfw:comment><comments>http://www.blogjava.net/shzhlo/archive/2010/03/03/314361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shzhlo/comments/commentRss/314361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shzhlo/services/trackbacks/314361.html</trackback:ping><description><![CDATA[前篇说起要讲在JBPM中实现用户权限，但这段时间比较忙，一直拖着。这里先把jbpm自带的websale例子放上来，大伙先将就看看。这个例子我已经把它抽取了出去，网页部份丢弃了。在看的时候主要看WebsaleTest.java，看看它的用户权限是怎么用的。<br /><br />几个重点：<br />(1) jBPM没有角色的概念!!! 很多人把ActorID理解成角色，那是相当错误的。jBPM只有参与者的概念，也就是ActorID，它可以是用户ID，也可以是角色ID，也可以什么都不是。你要自己去把用户角色等东东和ActorID映射起来。不过一般我们把ActorID设置成角色，但jbpm websale却是设置成用户的。<br />(2)用户信息的入口是JbpmContext，里面有一个setActorID方法。你用户登录时候，把一些用户信息set进去。<br />(3)泳道概念：你去看看UML中的带泳道的活动图，那就是象一个游泳池里的泳道一样。<br /><br /><br />安装提示：<br />&#160;&lt;classpathentry kind="con" path="JBPM/jBPM 3.1.2"/&gt;<br />.classpath的这一句很可能和你电脑的设置不符，这是jbpm插件的一个设置，指向jbpm的HOME目录，以便找到jbpm的jar包。你按照你电脑上的设置相应修改一下这一行。<br /><br /><br />websale的eclipse项目ZIP包：<a href="/Files/chengang/chen-jbpm_websale.zip">http://www.blogjava.net/Files/chengang/chen-jbpm_websale.zip</a><img src ="http://www.blogjava.net/chengang/aggbug/70069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chengang/" target="_blank">陈刚</a> 2006-09-16 19:09 <a href="http://www.blogjava.net/chengang/archive/2006/09/16/70069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/chengang/archive/2006/09/16/70069.html'>http://www.blogjava.net/chengang/archive/2006/09/16/70069.html</a> <img src ="http://www.blogjava.net/shzhlo/aggbug/314361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shzhlo/" target="_blank">施</a> 2010-03-03 09:36 <a href="http://www.blogjava.net/shzhlo/archive/2010/03/03/314361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]jBPM开发入门指南(4) </title><link>http://www.blogjava.net/shzhlo/archive/2010/03/03/314362.html</link><dc:creator>施</dc:creator><author>施</author><pubDate>Wed, 03 Mar 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shzhlo/archive/2010/03/03/314362.html</guid><wfw:comment>http://www.blogjava.net/shzhlo/comments/314362.html</wfw:comment><comments>http://www.blogjava.net/shzhlo/archive/2010/03/03/314362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shzhlo/comments/commentRss/314362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shzhlo/services/trackbacks/314362.html</trackback:ping><description><![CDATA[		<h2 style="MARGIN: 12pt 0cm">
				<span lang="EN-US">
						<font face="Arial">7</font>
				</span>
				<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">　</span>
				<span lang="EN-US">
						<font face="Arial">jBPM</font>
				</span>
				<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">的客户端开发</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有了前面的</span>
				<span lang="EN-US">HelloWorld</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">后台流程，我们就要开始客户端程序了。正如前面提到的，本文不写</span>
				<span lang="EN-US">JSP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，而改采用</span>
				<span lang="EN-US">JUnit</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的形式，输出则用</span>
				<span lang="EN-US">System.out.println</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。举一反三，知道在方法中输入及用</span>
				<span lang="EN-US">println</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输出，在</span>
				<span lang="EN-US">JSP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">SWING</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等</span>
				<span lang="EN-US">GUI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">界面还不是一样嘛。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个</span>
				<span lang="EN-US">JUnit</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端，我们就借用创建项目时自动生成的</span>
				<span lang="EN-US">SimpleProcessTest.java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了，改写后如下：</span>
		</p>
		<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0cm; BACKGROUND: #fff4e9; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div">
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">package</span>
										</b>
										<span lang="EN-US">com.sample;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">junit.framework.TestCase;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">org.jbpm.JbpmConfiguration;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">org.jbpm.JbpmContext;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">org.jbpm.context.exe.ContextInstance;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">org.jbpm.graph.def.ProcessDefinition;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">import</span>
										</b>
										<span lang="EN-US">org.jbpm.graph.exe.ProcessInstance;</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<font face="Courier New">
										<b>
												<span lang="EN-US" style="COLOR: #7f0055">public</span>
										</b>
										<span lang="EN-US">
												<b>
														<span style="COLOR: #7f0055">class</span>
												</b>SimpleProcessTest <b><span style="COLOR: #7f0055">extends</span></b> TestCase {</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>JbpmConfiguration <span style="COLOR: #0000c0">config</span> = JbpmConfiguration.<i>getInstance</i>();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>JbpmContext <span style="COLOR: #0000c0">ctx</span> = <span style="COLOR: #0000c0">config</span>.createJbpmContext();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// helloworld</span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">对应于</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">jbpm_processdefinition</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">表的</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">name</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">字段值，也即</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">processdefinition.xml</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">的</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">name</font>
								</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">这个值得取比较耗时，实际项目里最好和&#8220;数据库的</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">JDBC</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">连接&#8221;一样，让它共享，不要频繁打开关闭。</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>ProcessDefinition <span style="COLOR: #0000c0">processDefinition</span> = <span style="COLOR: #0000c0">ctx</span>.getGraphSession().findLatestProcessDefinition(<span style="COLOR: #2a00ff">"helloworld"</span>);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">public</span>
												</b>
												<b>
														<span style="COLOR: #7f0055">void</span>
												</b>testNewRequest() {</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">long</span>
												</b>id = newRequest();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>System.<i><span style="COLOR: #0000c0">out</span></i>.println(<span style="COLOR: #2a00ff">"id="</span> + id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>checkNewRequest(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>confirmRequest(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>checkconfirmRequest(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #0000c0">ctx</span>.close();<span style="COLOR: #3f7f5f">// </span></font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">关闭</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">jbpm</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">容器</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>}</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="COLOR: #3f5fbf">/**</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</span>
								<span style="COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">创建一个请假单</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
												<b>
														<span style="COLOR: #7f9fbf">@return</span>
												</b>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*/</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>
												<b>
														<span style="COLOR: #7f0055">long</span>
												</b>newRequest() {</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">创建一个新流程</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ProcessInstance pi = <span style="COLOR: #0000c0">processDefinition</span>.createProcessInstance();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">取得流程的数据环境</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ContextInstance ci = pi.getContextInstance();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">创建一张请假单</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ci.setVariable(<span style="COLOR: #2a00ff">"name"</span>, <span style="COLOR: #2a00ff">"</span></font>
								</span>
								<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?>
								<st1:personname w:st="on">
										<span style="COLOR: #2a00ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">陈刚</span>
								</st1:personname>
								<font face="Courier New">
										<span lang="EN-US" style="COLOR: #2a00ff">www.chengang.com.cn"</span>
										<span lang="EN-US">);</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ci.setVariable(<span style="COLOR: #2a00ff">"day"</span>, 2);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(<b><span style="COLOR: #7f0055">null</span></b>, ci.getVariable(<span style="COLOR: #2a00ff">"note"</span>));</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">请假申请结束，转到下一个流程结点</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>pi.signal();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">return</span>
												</b>pi.getId();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>}</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="COLOR: #3f5fbf">/**</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</span>
								<span style="COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">检查请假单的数据</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
												<b>
														<span style="COLOR: #7f9fbf">@param</span>
												</b>
												<span style="COLOR: #3f5fbf">id</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*/</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>
												<b>
														<span style="COLOR: #7f0055">void</span>
												</b>checkNewRequest(<b><span style="COLOR: #7f0055">long</span></b> id) {</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">从数据库提取原流程</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ProcessInstance pi = <span style="COLOR: #0000c0">ctx</span>.loadProcessInstance(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">取得流程的数据环境</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ContextInstance ci = pi.getContextInstance();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">创建一张请假单</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(<span style="COLOR: #2a00ff">"</span></font>
								</span>
								<st1:personname w:st="on">
										<span style="COLOR: #2a00ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">陈刚</span>
								</st1:personname>
								<font face="Courier New">
										<span lang="EN-US" style="COLOR: #2a00ff">www.chengang.com.cn"</span>
										<span lang="EN-US">, ci.getVariable(<span style="COLOR: #2a00ff">"name"</span>));</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(Integer.<i>valueOf</i>(2), ci.getVariable(<span style="COLOR: #2a00ff">"day"</span>));</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(<span style="COLOR: #2a00ff">"</span></font>
								</span>
								<span style="COLOR: #2a00ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">我要请假</span>
								<font face="Courier New">
										<span lang="EN-US" style="COLOR: #2a00ff">"</span>
										<span lang="EN-US">, ci.getVariable(<span style="COLOR: #2a00ff">"note"</span>));</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">当前是结点为</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">confirm</font>
								</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(pi.getRootToken().getNode().getName(), <span style="COLOR: #2a00ff">"confirm"</span>);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">流程还没结束</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertFalse</i>(pi.hasEnded());</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>}</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="COLOR: #3f5fbf">/**</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New">
										<font size="2">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</font>
						</span>
						<span style="COLOR: #3f5fbf; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">
								<font size="2">审批<st1:personname w:st="on">陈刚</st1:personname>的请假申请</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*</span>
												<b>
														<span style="COLOR: #7f9fbf">@param</span>
												</b>
												<span style="COLOR: #3f5fbf">id</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<span style="mso-spacerun: yes">&#160;</span>
												<span style="COLOR: #3f5fbf">*/</span>
										</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>
												<b>
														<span style="COLOR: #7f0055">void</span>
												</b>confirmRequest(<b><span style="COLOR: #7f0055">long</span></b> id) {</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ProcessInstance pi = <span style="COLOR: #0000c0">ctx</span>.loadProcessInstance(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ContextInstance ci = pi.getContextInstance();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">不通过</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ci.setVariable(<span style="COLOR: #2a00ff">"note"</span>, <span style="COLOR: #2a00ff">"</span></font>
								</span>
								<span style="COLOR: #2a00ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">不准请假，继续加班</span>
								<font face="Courier New">
										<span lang="EN-US" style="COLOR: #2a00ff">"</span>
										<span lang="EN-US">);</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">审批结束，到下一个流程结点</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>pi.signal();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>}</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>
												<b>
														<span style="COLOR: #7f0055">private</span>
												</b>
												<b>
														<span style="COLOR: #7f0055">void</span>
												</b>checkConfirmRequest(<b><span style="COLOR: #7f0055">long</span></b> id) {</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ProcessInstance pi = <span style="COLOR: #0000c0">ctx</span>.loadProcessInstance(id);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>ContextInstance ci = pi.getContextInstance();</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// ConfirmAction</span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">类在</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">signal</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">后执行，所以覆盖了经理的审批意见</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(<span style="COLOR: #2a00ff">"</span></font>
								</span>
								<span style="COLOR: #2a00ff; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">准假</span>
								<font face="Courier New">
										<span lang="EN-US" style="COLOR: #2a00ff">"</span>
										<span lang="EN-US">, ci.getVariable(<span style="COLOR: #2a00ff">"note"</span>));</span>
								</font>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">当前是结点为</span>
								<span lang="EN-US" style="COLOR: #3f7f5f">
										<font face="Courier New">end</font>
								</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertEquals</i>(pi.getRootToken().getNode().getName(), <span style="COLOR: #2a00ff">"end"</span>);</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<font size="2">
								<span lang="EN-US">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<span style="COLOR: #3f7f5f">// </span>
										</font>
								</span>
								<span style="COLOR: #3f7f5f; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">流程结束了</span>
						</font>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>
												<i>assertTrue</i>(pi.hasEnded());</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-tab-count: 1">&#160;&#160;&#160; </span>}</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">}</font>
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">这个例子还是很简单，而且关键是缺少用户、组、权限等工作流系统必须的东西，不过没关系。下面的内容我将完成一个更完整的实例。</span>
<img src ="http://www.blogjava.net/chengang/aggbug/65608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chengang/" target="_blank">陈刚</a> 2006-08-24 18:15 <a href="http://www.blogjava.net/chengang/archive/2006/08/24/65608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/chengang/archive/2006/08/24/65608.html'>http://www.blogjava.net/chengang/archive/2006/08/24/65608.html</a> <img src ="http://www.blogjava.net/shzhlo/aggbug/314362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shzhlo/" target="_blank">施</a> 2010-03-03 09:36 <a href="http://www.blogjava.net/shzhlo/archive/2010/03/03/314362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]jBPM开发入门指南(3) </title><link>http://www.blogjava.net/shzhlo/archive/2010/03/03/314363.html</link><dc:creator>施</dc:creator><author>施</author><pubDate>Wed, 03 Mar 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shzhlo/archive/2010/03/03/314363.html</guid><wfw:comment>http://www.blogjava.net/shzhlo/comments/314363.html</wfw:comment><comments>http://www.blogjava.net/shzhlo/archive/2010/03/03/314363.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shzhlo/comments/commentRss/314363.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shzhlo/services/trackbacks/314363.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 5
				
				　安装
				
						jBPM
				
				的
				
						Eclipse
				
				开发插件
		
		
				有个辅助工具开发起来方便一点，只不过现在
				jBPM
				的开发工具插件功能还不算太强，也就一个&#8220;项目创建向导&#8221;的功能，让你：
		
		
				（1）不用再去配置
				cla...&nbsp;&nbsp;<a href='http://www.blogjava.net/chengang/archive/2006/08/23/65346.html'>阅读全文</a><img src ="http://www.blogjava.net/chengang/aggbug/65346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chengang/" target="_blank">陈刚</a> 2006-08-23 19:26 <a href="http://www.blogjava.net/chengang/archive/2006/08/23/65346.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/chengang/archive/2006/08/23/65346.html'>http://www.blogjava.net/chengang/archive/2006/08/23/65346.html</a> <img src ="http://www.blogjava.net/shzhlo/aggbug/314363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shzhlo/" target="_blank">施</a> 2010-03-03 09:36 <a href="http://www.blogjava.net/shzhlo/archive/2010/03/03/314363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]jBPM开发入门指南(2) </title><link>http://www.blogjava.net/shzhlo/archive/2010/03/03/314364.html</link><dc:creator>施</dc:creator><author>施</author><pubDate>Wed, 03 Mar 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shzhlo/archive/2010/03/03/314364.html</guid><wfw:comment>http://www.blogjava.net/shzhlo/comments/314364.html</wfw:comment><comments>http://www.blogjava.net/shzhlo/archive/2010/03/03/314364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shzhlo/comments/commentRss/314364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shzhlo/services/trackbacks/314364.html</trackback:ping><description><![CDATA[		<h2 style="MARGIN: 12pt 0cm">
				<span lang="EN-US">
						<font face="Arial">4 </font>
				</span>
				<span style="FONT-FAMILY: 黑体; mso-ascii-font-family: Arial">数据库初始化</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要数据库支持，</span>
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">会把自己的一个初始化数据存储到数据库，同时工作流的数据也是存储到数据库中的。</span>
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来做为自己的存储层，因此只要是</span>
				<span lang="EN-US">Hibernate</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持的数据库，</span>
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也就支持。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">本文先以</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为例，然后再以</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为例，来谈谈</span>
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的数据库初始化操作。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="a0" style="MARGIN: 6pt 0cm">
				<font size="2">
						<font style="BACKGROUND-COLOR: #dddddd">
								<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">注：在上面的</span>
								<span lang="EN-US">JBoss</span>
								<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">自带的示例中，并没有设置数据库，那是因为</span>
								<span lang="EN-US">jBPM</span>
								<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">默认使用的是内存数据库</span>
								<span lang="EN-US">hsqldb</span>
								<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">。</span>
						</font>
				</font>
		</p>
		<h3 style="MARGIN: 12pt 0cm 6pt">
				<span lang="EN-US">
						<font face="宋体, MS Song" size="3">4.1<span style="mso-spacerun: yes">&#160; </span>MySQL</font>
				</span>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="4" style="MARGIN: 6pt 0cm; TEXT-INDENT: 21pt">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">、首先安装</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的安装比较简单，网上也有很多文章，本文不再赘述。本指南所用</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本为</span>
				<span lang="EN-US">MySQL 4.1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">for windows</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）。再找一个</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端，目的是方便查看数据库中的数据，本文推荐使用</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网站上免费提供的&#8220;</span>
				<span lang="EN-US">MySQL Query Brower</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;，当然你用其他的客户端也行，比如</span>
				<span lang="EN-US">MySQL-Front</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="4" style="MARGIN: 6pt 0cm; TEXT-INDENT: 21pt">
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">、建库</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中创建一个库，库名：</span>
				<span lang="EN-US">jbpm</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="4" style="MARGIN: 6pt 0cm; TEXT-INDENT: 21pt">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">、生成建表的</span>
				<span lang="EN-US">SQL</span>
				<span style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">语句并建表</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
				<span lang="EN-US">jbpm-starters-kit-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的子目录</span>
				<span lang="EN-US">jbpm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">改名为</span>
				<span lang="EN-US">jbpm.3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，否则在执行下面的</span>
				<span lang="EN-US">ant</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">命令时会报如</span>
				<span lang="EN-US">jbpm.3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录不存在的错误：</span>
		</p>
		<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0cm; BACKGROUND: #fff4e9; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div">
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">D:\jbpm-starters-kit-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate>\jbpm-db\build.xml:361: The following error occurred while executing this line:</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">D:\jbpm-starters-kit-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate>\jbpm-db\build.xml:68: Basedir D:\jbpm-starters-kit-3.1.1\jbpm.3 does not exist</font>
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">DOS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">窗下，进入</span>
				<span lang="EN-US">D:\jbpm-starters-kit-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate>\jbpm-db</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录，执行如下命令：</span>
		</p>
		<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0cm; BACKGROUND: #fff4e9; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div">
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">ant mysql.scripts</font>
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">执行成功后，在</span>
				<span lang="EN-US">D:\jbpm-starters-kit-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate>\jbpm-db\build\mysql\scripts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录里生成了四个</span>
				<span lang="EN-US">sql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，它们做什么用的一看名字就知道了。在</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">客户端中执行&#8220;</span>
				<span lang="EN-US">mysql.create.sql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;脚本，这样将在</span>
				<span lang="EN-US">jbpm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">库中创建一个个的数据表。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<h3 style="MARGIN: 12pt 0cm 6pt">
				<span lang="EN-US">
						<font face="宋体, MS Song" size="3">4.2<span style="mso-spacerun: yes">&#160; </span>Oracle</font>
				</span>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先安装好</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器。我们公司有现存的</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器，也提供给了我一个属于我自己的用户名，一登录就可以任意在我的库之下创建表了。所以这一步就省了，没有的自个先装好吧。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">访问</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">推荐用&#8220;</span>
				<span lang="EN-US">PLSQL Developer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;。不过要连接</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还要在本机上装上</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自己的客户端程序，里面提供了</span>
				<span lang="EN-US">JDBC</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">包和一些配置。要连接服务器还得配置一下，我一般都是不用</span>
				<span lang="EN-US">GUI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而直接改</span>
				<span lang="EN-US">tnsnames.ora</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，在我的电脑里此文件的目录地址是：</span>
				<span lang="EN-US">D:\oracle\ora92\network\ADMIN\tnsnames.ora</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，内容如下</span>
				<span lang="EN-US">(</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">两面有两个配置了</span>
				<span lang="EN-US">)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
		</p>
		<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 0cm; BACKGROUND: #fff4e9; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div">
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2"># TNSNAMES.ORA Network Configuration File: E:\oracle\ora92\network\admin\tnsnames.ora</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2"># Generated by Oracle configuration tools.</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">WXXRDB_192.168.3.2 =</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160; </span>(DESCRIPTION =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>(ADDRESS_LIST =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.2)(PORT = 1521))</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>(CONNECT_DATA =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(SID = wxxrDB)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(SERVER = DEDICATED)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160; </span>)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<o:p>
										<font face="Courier New" size="2">&#160;</font>
								</o:p>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font face="Courier New" size="2">WXXRDB_192.168.4.2 =</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160; </span>(DESCRIPTION =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>(ADDRESS_LIST =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.2)(PORT = 1521))</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>(CONNECT_DATA =</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(SID = wxxrDB)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>(SERVER = DEDICATED)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>)</font>
								</font>
						</span>
				</p>
				<p class="a" style="MARGIN: 0cm 0cm 0pt">
						<span lang="EN-US">
								<font size="2">
										<font face="Courier New">
												<span style="mso-spacerun: yes">&#160; </span>)</font>
								</font>
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前面都是</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的一些知识，不会的</span>
				<span lang="EN-US">Google</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一下吧。最后配置好后，用</span>
				<span lang="EN-US">PLSQL Developer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入你的用户名和密码联接到</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，就算</span>
				<span lang="EN-US">OK</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参考上面</span>
				<span lang="EN-US">MySQL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的步骤，基本一样：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">（1）<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
				<span lang="EN-US">jbpm</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">改名为</span>
				<span lang="EN-US">jbpm.3</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">（2）<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">再执行</span>
				<span class="Char">
						<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-family: 'Times New Roman'">
								<font face="Courier New">ant oracle.scripts</font>
						</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">（3）<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用</span>
				<span lang="EN-US">jbpm-db\build\oracle\scripts</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录的</span>
				<span lang="EN-US">oracle.create.sql</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">脚本，在</span>
				<span lang="EN-US">Oracle</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中生成</span>
				<span lang="EN-US">jBPM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的所有表。在&#8220;</span>
				<span lang="EN-US">PLSQL Developer</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;中可以新建一个</span>
				<span lang="EN-US">Command Windows</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">窗口然后输入命令：</span>
				<span lang="EN-US">@D:\jbpm-starters-kit-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">3.1.1</st1:chsdate>\jbpm-db\build\oracle\scripts\oracle.create.sql</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0">
				<span lang="EN-US">
						<o:p>&#160;<br /><br /><font face="宋体"><strong>作者简介<br /></strong>陈刚，广西桂林人，著作有《Eclipse从入门到精通》<br />您可以通过其博客了解更多信息和文章：</font><a href="http://www.ChenGang.com.cn"><font face="宋体" color="#000033">http://www.ChenGang.com.cn</font></a></o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/chengang/aggbug/65132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chengang/" target="_blank">陈刚</a> 2006-08-22 18:44 <a href="http://www.blogjava.net/chengang/archive/2006/08/22/65132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/chengang/archive/2006/08/22/65132.html'>http://www.blogjava.net/chengang/archive/2006/08/22/65132.html</a> <img src ="http://www.blogjava.net/shzhlo/aggbug/314364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shzhlo/" target="_blank">施</a> 2010-03-03 09:36 <a href="http://www.blogjava.net/shzhlo/archive/2010/03/03/314364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]jBPM开发入门指南(1)</title><link>http://www.blogjava.net/shzhlo/archive/2010/03/03/314365.html</link><dc:creator>施</dc:creator><author>施</author><pubDate>Wed, 03 Mar 2010 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/shzhlo/archive/2010/03/03/314365.html</guid><wfw:comment>http://www.blogjava.net/shzhlo/comments/314365.html</wfw:comment><comments>http://www.blogjava.net/shzhlo/archive/2010/03/03/314365.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shzhlo/comments/commentRss/314365.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shzhlo/services/trackbacks/314365.html</trackback:ping><description><![CDATA[		<div class="Section1" style="LAYOUT-GRID:  15.6pt none">
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">工作流虽然还在不成熟的发展阶段，甚至还没有一个公认的规范标准。但其应用却已经在快速展开，这说明市场对工作流框架的需求是急迫而巨大的。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">我们公司的后台短信管理系统涉及短信编发、领导层层审核等操作，这是一个比较典型的工作流系统。过去我们用的工作流引擎是</span>
						<span lang="EN-US">shark</span>
						<span style="FONT-FAMILY: 宋体">，然后在使用后发现其过于庞大，后台数据库操作频繁而未进行优化，直接导致的后果就是前台操作缓慢。于是经研究决定，将工作流引擎由</span>
						<span lang="EN-US">shark</span>
						<span style="FONT-FAMILY: 宋体">换成</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">之前是一个开源软件，后加入</span>
						<span lang="EN-US">JBoss</span>
						<span style="FONT-FAMILY: 宋体">组织。正好我们公司也是用</span>
						<span lang="EN-US">JBoss</span>
						<span style="FONT-FAMILY: 宋体">的。不过</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">并没有绑定在</span>
						<span lang="EN-US">JBOSS</span>
						<span style="FONT-FAMILY: 宋体">上，</span>
						<span lang="EN-US">Tomcat</span>
						<span style="FONT-FAMILY: 宋体">等也可以使用它。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的正处在不断发展中，做为开源软件的特点，其设计变化往往很大。所以一些过去的资料可能已经不适用了。于是作者根据自己的使用经验，重新整理出这份文档，以备学习参考。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 楷体_GB2312">注：本文使用的</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 楷体_GB2312">版本为</span>
						<span lang="EN-US">3.1.1</span>
				</p>
				<h2>
						<span style="FONT-FAMILY: 黑体">环境准备</span>
				</h2>
				<h3>
						<span lang="EN-US">1</span>、安装<span lang="EN-US">JDK</span></h3>
				<p class="MsoNormal">
						<span style="FONT-FAMILY: 宋体">所有</span>
						<span lang="EN-US">JAVA</span>
						<span style="FONT-FAMILY: 宋体">开发第一个需要安装的，没什么好说的。记得把系统变量</span>
						<span lang="EN-US">JAVA_HOME</span>
						<span style="FONT-FAMILY: 宋体">设上。</span>
				</p>
				<h3>
						<span lang="EN-US">2</span>、安装<span lang="EN-US">Ant</span></h3>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">Ant</span>
						<span style="FONT-FAMILY: 宋体">是使用</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">必须的一个工具。</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">中的很多操作都要用到</span>
						<span lang="EN-US">Ant</span>
						<span style="FONT-FAMILY: 宋体">。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">安装方法：</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">（</span>
						<span lang="EN-US">1</span>
						<span style="FONT-FAMILY: 宋体">）先下载：</span>
						<span lang="EN-US">
								<a href="http://archive.apache.org/dist/ant/binaries/">http://archive.apache.org/dist/ant/binaries/</a>
						</span>
						<span style="FONT-FAMILY: 宋体">，选一个如：</span>
						<span lang="EN-US">apache-ant-1.6.5-bin.zip</span>
						<span style="FONT-FAMILY: 宋体">。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">（</span>
						<span lang="EN-US">2</span>
						<span style="FONT-FAMILY: 宋体">）解压到</span>
						<span lang="EN-US">D:\ant</span>
						<span style="FONT-FAMILY: 宋体">（当然其他目录也可以）。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">（</span>
						<span lang="EN-US">3</span>
						<span style="FONT-FAMILY: 宋体">）设置如下系统变量：</span>
						<span lang="EN-US">ANT_HOME=d:\ant</span>
						<span style="FONT-FAMILY: 宋体">。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">（</span>
						<span lang="EN-US">4</span>
						<span style="FONT-FAMILY: 宋体">）把</span>
						<span lang="EN-US">%ANT_HOME%\bin</span>
						<span style="FONT-FAMILY: 宋体">加入到系统变量</span>
						<span lang="EN-US">PATH</span>
						<span style="FONT-FAMILY: 宋体">中。</span>
				</p>
				<h3>
						<span lang="EN-US">3</span>、安装<span lang="EN-US">Eclipse</span></h3>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体">不是开发</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">必须的工具，但它是对</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">开发很有帮助的工具，特别是</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">提供了一个</span>
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体">插件用来辅助开发</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">。关于</span>
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体">的安装不赘述了，本文用的版本是：</span>
						<span lang="EN-US">Eclipse3.2</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">
						</span>&#160;</p>
				<h2>
						<span style="FONT-FAMILY: 黑体">安装</span>
						<span lang="EN-US">jBPM</span>
				</h2>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的下载地址：</span>
						<span lang="EN-US">
								<a href="http://www.jboss.com/products/jbpm/downloads">http://www.jboss.com/products/jbpm/downloads</a>
						</span>
						<span style="FONT-FAMILY: 宋体">　</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">JBoss jBPM</span>
						<span style="FONT-FAMILY: 宋体">是</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的软件包</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">JBoss jBPM Starters Kit</span>
						<span style="FONT-FAMILY: 宋体">　是一个综合包，它包括了</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">软件包、开发插件、一个配置好了的基于</span>
						<span lang="EN-US">JBoss</span>
						<span style="FONT-FAMILY: 宋体">的</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">示例、一些数据库配置文件示例。</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">JBoss jBPM Process Designer Plugin</span>
						<span style="FONT-FAMILY: 宋体">　是辅助开发</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的</span>
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体">插件。</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">JBoss jBPM BPEL Extension jBPM</span>
						<span style="FONT-FAMILY: 宋体">关于</span>
						<span lang="EN-US">BPEL</span>
						<span style="FONT-FAMILY: 宋体">的扩展包</span>
				</p>
				<p class="a1">
						<span style="FONT-FAMILY: 宋体">本指南选择下载：</span>
						<span lang="EN-US">JBoss jBPM Starters Kit</span>
						<span style="FONT-FAMILY: 宋体">。下载后解压到</span>
						<span lang="EN-US">D:\jbpm-starters-kit-3.1</span>
						<span style="FONT-FAMILY: 宋体">，目录下含有五个子目录：</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">jbpm</span>
						<span style="FONT-FAMILY: 宋体">　</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的软件包</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">jbpm-bpel </span>
						<span style="FONT-FAMILY: 宋体">只含有一个网页</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">jbpm-db </span>
						<span style="FONT-FAMILY: 宋体">各种数据库</span>
						<span lang="EN-US">hibernate</span>
						<span style="FONT-FAMILY: 宋体">配置文件示例，有些还包含了相应的</span>
						<span lang="EN-US">jdbc</span>
						<span style="FONT-FAMILY: 宋体">驱动程序。</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">jbpm-designer</span>
						<span style="FONT-FAMILY: 宋体">　辅助开发</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的</span>
						<span lang="EN-US">Eclipse</span>
						<span style="FONT-FAMILY: 宋体">插件，具体在</span>
						<span lang="EN-US">jbpm-gpd-feature</span>
						<span style="FONT-FAMILY: 宋体">子目录中</span>
				</p>
				<p class="a1">
						<span lang="EN-US" style="FONT-SIZE: 7.5pt; FONT-FAMILY: Wingdings">l<span style="FONT: 7pt 'Times New Roman'">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span>
						<span lang="EN-US">jbpm-server</span>
						<span style="FONT-FAMILY: 宋体">　一个已经配置好了的基于</span>
						<span lang="EN-US">JBoss</span>
						<span style="FONT-FAMILY: 宋体">的</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">示例</span>
						<span lang="EN-US">.</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">
						</span>&#160;</p>
				<h2>
						<span style="FONT-FAMILY: 黑体">感觉下工作流</span>
				</h2>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">前面我们说了，在</span>
						<span lang="EN-US">JBoss jBPM Starters Kit</span>
						<span style="FONT-FAMILY: 宋体">的</span>
						<span lang="EN-US">jbpm-server</span>
						<span style="FONT-FAMILY: 宋体">目录是一个已经配置好的了</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">示例，那么让我们来感觉一下</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">做出的东西吧。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">
						</span>&#160;</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">双击</span>
						<span lang="EN-US">jbpm-server</span>
						<span style="FONT-FAMILY: 宋体">目录下的</span>
						<span lang="EN-US">start.bat</span>
						<span style="FONT-FAMILY: 宋体">文件，启动</span>
						<span lang="EN-US">JBoss</span>
						<span style="FONT-FAMILY: 宋体">服务。这时会打开一个</span>
						<span lang="EN-US">DOS</span>
						<span style="FONT-FAMILY: 宋体">窗口，启动完成后，日志会不断输出，其中最后一句是&#8220;</span>
						<span lang="EN-US">13:55:39,937 DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd)</span>
						<span style="FONT-FAMILY: 宋体">&#8221;，这表示</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">在开始工作了，它不断进行轮询。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">打开网页：</span>
						<span lang="EN-US">
								<a href="http://localhost:8080/jbpm/">http://localhost:8080/jbpm/</a>
						</span>
						<span style="FONT-FAMILY: 宋体">　得到如下画面</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">&#160;<img height="191" alt="20060713_image001.jpg" src="http://www.blogjava.net/images/blogjava_net/chengang/jbpm/20060713_image001.jpg" width="554" border="0" /></span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">这是一个已经用</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">开发好的用户定单流程，具有下单、审核、估价等流程。它所用的数据库是一个内置的数据库。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">以</span>
						<span lang="EN-US">cookie monster</span>
						<span style="FONT-FAMILY: 宋体">用户登录，选择&#8220;</span>
						<span lang="EN-US">create new web sale order</span>
						<span style="FONT-FAMILY: 宋体">&#8221;可以创建一个定单。如下图所示，在图左边是填写的定单情况，右边一整个定货流程的示意图，红色框表示流程进行到哪一步了。填写好定单好，选择&#8220;</span>
						<span lang="EN-US">Save and Close Task</span>
						<span style="FONT-FAMILY: 宋体">&#8221;，完成定单提交。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">&#160;<img height="326" alt="20060713_image002.jpg" src="http://www.blogjava.net/images/blogjava_net/chengang/jbpm/20060713_image002.jpg" width="553" border="0" /></span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">选择右上角的&#8220;</span>
						<span lang="EN-US">Login as another user</span>
						<span style="FONT-FAMILY: 宋体">&#8221;以另外一个用户名</span>
						<span lang="EN-US">ernie</span>
						<span style="FONT-FAMILY: 宋体">登录。这时可以看到</span>
						<span lang="EN-US">ernie</span>
						<span style="FONT-FAMILY: 宋体">用户的任务列表中多了一项。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">&#160;<img height="302" alt="20060713_image003.jpg" src="http://www.blogjava.net/images/blogjava_net/chengang/jbpm/20060713_image003.jpg" width="489" border="0" /></span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">点进去后，显示如下画面。这个示例对中文的支持不好，全都显示成了</span>
						<span lang="EN-US">unicode</span>
						<span style="FONT-FAMILY: 宋体">码了。不管这什么多，反正知道是这么回事就行了。在</span>
						<span lang="EN-US">comment</span>
						<span style="FONT-FAMILY: 宋体">项填写意见，选</span>
						<span lang="EN-US">OK</span>
						<span style="FONT-FAMILY: 宋体">按钮，进入到下一步。如果选择</span>
						<span lang="EN-US">more info needed</span>
						<span style="FONT-FAMILY: 宋体">按钮，则打回给</span>
						<span lang="EN-US">cookie monster</span>
						<span style="FONT-FAMILY: 宋体">用户修改定单。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span lang="EN-US">&#160;<img height="271" alt="20060713_image004.jpg" src="http://www.blogjava.net/images/blogjava_net/chengang/jbpm/20060713_image004.jpg" width="553" border="0" /></span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">下面的流程，这里就不再赘述了。在这个很标准的工作流示例中，我们基本可以看到</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的应用范围还是比较广的。而且从这个示例，我们是看不出有</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的，也就是说</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">在后台起着作用。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">从这个例子，还看不出</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的优势。不过，如果在一个流程不确定，经常需要变动的项目中，</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">的好处将会显然出来。应用</span>
						<span lang="EN-US">jBPM</span>
						<span style="FONT-FAMILY: 宋体">后，改变流程只需改变流程描述文件，这将在后面的内容提到。</span>
				</p>
				<p class="MsoNormal" style="TEXT-INDENT: 0cm">
						<span style="FONT-FAMILY: 宋体">这是一个已做好的示例，接下来我们将仿造这个实例来开发一个请假流程。<br /><br /><strong>作者简介</strong><br />陈刚，广西桂林人，著作有《Eclipse从入门到精通》<br />您可以通过其博客了解更多信息和文章：<a href="http://www.chengang.com.cn/"><font color="#000033">http://www.chenGang.com.cn</font></a></span>
				</p>
		</div>
<img src ="http://www.blogjava.net/chengang/aggbug/57986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chengang/" target="_blank">陈刚</a> 2006-07-13 15:03 <a href="http://www.blogjava.net/chengang/archive/2006/07/13/57986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div><br>文章来源:<a href='http://www.blogjava.net/chengang/archive/2006/07/13/57986.html'>http://www.blogjava.net/chengang/archive/2006/07/13/57986.html</a> <img src ="http://www.blogjava.net/shzhlo/aggbug/314365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shzhlo/" target="_blank">施</a> 2010-03-03 09:36 <a href="http://www.blogjava.net/shzhlo/archive/2010/03/03/314365.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>