﻿<?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-&lt;h2&gt;&lt;font color="green"&gt;生命科学领域的专业信息解决方案！&lt;/font&gt;&lt;/h2&gt;-随笔分类-jBPM</title><link>http://www.blogjava.net/rain1102/category/42951.html</link><description>&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;化学结构搜索，化学信息学，生物信息学，实验室信息学等
。&lt;/font&gt;&lt;br/&gt;&lt;font color="#3C1435"&gt;以高科技的生物、化学信息技术实现生命科学领域中专业数据的计算和管理、提高研发能力、增强在科研和成本效率方面的国际竞争力，为生物、化学、医药和学术机构提供一流的解决方案和技术咨询。&lt;/font&gt;&lt;br/&gt;
&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;子曰：危邦不入，乱邦不居。天下有道则见，无道则隐。&lt;/font&gt;&lt;font color="#3C1435"&gt;&lt;/font&gt;&lt;br/&gt;
</description><language>zh-cn</language><lastBuildDate>Tue, 29 Mar 2011 10:34:54 GMT</lastBuildDate><pubDate>Tue, 29 Mar 2011 10:34:54 GMT</pubDate><ttl>60</ttl><item><title>使用foreach实现会签</title><link>http://www.blogjava.net/rain1102/archive/2011/03/29/347167.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 29 Mar 2011 01:32:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2011/03/29/347167.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/347167.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2011/03/29/347167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/347167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/347167.html</trackback:ping><description><![CDATA[JBPM4.4中提供的foreach可以实现会签功能，流程定义如下：<br />
<img height="639" alt="" src="http://www.blogjava.net/images/blogjava_net/rain1102/jbpm/LDCC.png" width="509" border="0" /><br />
<p>&nbsp;</p>
<p><span style="color: #008000">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span></p>
<p><span style="color: #008000">&lt;process name="DCC" xmlns="http://jbpm.org/4.4/jpdl"&gt;<br />
&nbsp;&nbsp; &lt;start g="373,8,48,48" name="start1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="to Submit" to="Submit" g="-50,-18"/&gt;<br />
&nbsp;&nbsp; &lt;/start&gt;<br />
&nbsp;&nbsp; &lt;task assignee="#{executor}" g="353,121,92,52" name="Submit"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="-61,-18" name="to foreach1" to="foreach1"/&gt;<br />
&nbsp;&nbsp; &lt;/task&gt;<br />
&nbsp;&nbsp; &lt;foreach g="374,217,48,48" <span style="color: #ff0000">in="#{executors}" </span>name="foreach1" <span style="color: #ff0000">var="executor"</span>&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="-94,-18" name="to Collect Approve" to="Collect Approve"/&gt;<br />
&nbsp;&nbsp; &lt;/foreach&gt;<br />
&nbsp;&nbsp; &lt;task <span style="color: #ff0000">assignee="#{executor}" </span>g="354,303,92,52" name="Collect Approve"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="-41,-18" name="Approve" to="join1"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="538,329;535,143:-34,-9" name="Reject" to="Submit"/&gt;<br />
&nbsp;&nbsp; &lt;/task&gt;<br />
&nbsp;&nbsp; &lt;join g="377,405,48,48" name="join1" <span style="color: #ff0000">multiplicity="#{quorum}</span><span style="color: #ff0000">"</span>&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="-59,-18" name="to Librarian Curator" to="Librarian Curator"/&gt;<br />
&nbsp;&nbsp; &lt;/join&gt;<br />
&nbsp;&nbsp; &lt;task assignee="#{curator}" g="358,496,92,52" name="Librarian Curator"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="-42,-18" name="Approve" to="end1"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition g="231,527;224,148:-34,-18" name="Reject" to="Submit"/&gt;<br />
&nbsp;&nbsp; &lt;/task&gt;<br />
&nbsp;&nbsp; &lt;end g="382,602,48,48" name="end1"/&gt;<br />
&lt;/process&gt;</span></p>
<br />
这里executors是多个审批人帐号名字符串用逗号链接。这里quorum就是最终根据多人中有几个人通过，则就会进入下一步，用来起到决定作用。<img src ="http://www.blogjava.net/rain1102/aggbug/347167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2011-03-29 09:32 <a href="http://www.blogjava.net/rain1102/archive/2011/03/29/347167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jbpm4.2+tomcat6+oracle9i安装过程[转载]</title><link>http://www.blogjava.net/rain1102/archive/2009/12/03/304687.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 03 Dec 2009 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/12/03/304687.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/304687.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/12/03/304687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/304687.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/304687.html</trackback:ping><description><![CDATA[原文地址：http://blog.chinaunix.net/u/21752/showart_2097331.html<br />
<span style="font-weight: bold; color: rgb(153,1,2)">1.软件清单</span><br />
&nbsp;&nbsp; jdk1.6<br />
&nbsp;&nbsp; jbpm4.2<br />
&nbsp;&nbsp; tomcat6<br />
&nbsp;&nbsp; oracle9i<br />
&nbsp;&nbsp; ant1.7<br />
&nbsp;&nbsp; eclipse-jee-galileo-win32<br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">2.配置JDK1.6</span><br />
&nbsp;&nbsp; 在系统路径上添加<br />
&nbsp;&nbsp; JAVA_HOME=c:\java\jdk16(我的JDK1.6安装目录)<br />
&nbsp;&nbsp; CLASS_PATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;<br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">3.配置ANT</span><br />
&nbsp;&nbsp; 在系统路径上添加<br />
&nbsp;&nbsp; ANT_HOME=c:\java\ant<br />
&nbsp;&nbsp; path=%ANT_HOME%\bin<br />
<br />
4.配置数据库(使用Oracle,默认使用的是hsqldb)<br />
&nbsp;&nbsp; (1)将class12.jar复制到jbpm-4.2\lib目录下，否则找不到驱动<br />
&nbsp;&nbsp; (2)进入c:\jbpm-4.2\install\jdbc目录修改文件oracle.properties文件，设置你自己的oracle数据库名、用户名和密码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意jbpm-4.2的根目录名称不能更改，否则无法运行ANT<br />
&nbsp;&nbsp; (3)修改c:\jbpm-4.2\install\build.xml,修改为&lt;property name="database" value="oracle" /&gt; &lt;!-- {hsqldb | mysql | oracle | postgresql} --&gt;<br />
&nbsp;&nbsp; (4)进入c:\jbpm-4.2\install， 运行 ant create.jbpm.schema,将创建数据库脚本并在指定数据库中创建表<br />
&nbsp;&nbsp; <br />
<span style="font-weight: bold; color: rgb(153,1,2)">4.配置Tomcat</span><br />
&nbsp;&nbsp; (1)复制apache-tomcat-6.0.20.zip文件到c:\jbpm-4.2\install\downloads目录中<br />
&nbsp;&nbsp; (2)进入c:\jbpm-4.2\install，运行ant&nbsp; install.tomcat.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 完成后，在c:\jbpm-4.2目录下生成一个tomcat目录<br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">5.配置eclipse</span><br />
&nbsp;&nbsp; (1)复制eclipse-jee-galileo-win32.zip文件到c:\jbpm-4.2\install\downloads目录中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：eclipse的名称必须是eclipse-jee-galileo-win32<br />
&nbsp;&nbsp; (2)进入c:\jbpm-4.2\install，运行ant&nbsp; install.eclipse，运行时间较长<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 完成后，在c:\jbpm-4.2目录下生成一个eclipse目录<br />
&nbsp;&nbsp; 注意：如果没有不用ant配置eclipse，安装下面的GPD时，提示出错，点击确定后，GPD依然可以使用，不知道为什么。<br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">6.配置流程设计器GPD</span><br />
&nbsp;&nbsp;&nbsp; 启动eclipse,在Eclipse里添加更新站点的方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 帮助 --&gt; 安装新软件...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 添加...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 添加站点 对话框中，单击 压缩包...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 找到 install/src/gpd/jbpm-gpd-site.zip 并点击 '打开'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 确定 在 添加站点 对话框中，会返回到 '安装'对话框<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择出现的 jPDL 4 GPD 更新站点，全部选中<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 下一步.. 然后点击 完成<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接受协议<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当它询问的时候重启eclipse<br />
&nbsp;&nbsp; <br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">7.配置elcipse工程</span><br />
&nbsp;&nbsp; 配置jBPM：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 Window --&gt; Preferences<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 选择 JBoss jBPM --&gt; jBPM-4.2 --&gt; Runtime Locations<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 Add...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 Add Location 对话框中，输入一个名字，比如&nbsp; jBPM-4.2 然后点击 Search...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 Browse For Folder 对话框中，选择你的jbpm-4.2根目录，然后点击 OK<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点击 OK 在 Add Location 对话框中 <br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">8.定义一个用户库</span><br />
&nbsp; 用户库用来放置jBPM的库文件。 如果你创建一个新工程， 只需要将用户库全部添加到build path<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击窗口 --&gt; 属性（Windows --&gt; Preferences）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 选择Java --&gt; 创建路径 --&gt; 用户类库（Java --&gt; Build Path --&gt; User Libraries）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击新建（New）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类型名字jBPM Libraries<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击添加JARs（Add JARs...）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 找到jBPM安装程序下的lib目录<br />
&nbsp;&nbsp;&nbsp;&nbsp; 选择lib下的所有jar文件并点击打开（Open）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 选择jBPM Libraries作为入口<br />
&nbsp;&nbsp;&nbsp;&nbsp; 重新点击添加JARs（Add JARs）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在jBPM的安装程序的根目录下选择jbpm.jar文件<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击打开（Open）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在jbpm.jar下选择源码附件（Source attachment）作为入口<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击编辑（Edit）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在源码附件的配置（Source Attachment Configuration）对话框中，点击目录（External Folder...）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 找到jBPM安装程序下的src目录<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击选择（Choose）<br />
&nbsp;&nbsp;&nbsp;&nbsp; 点击两次'确定'（Ok）会关闭所有对话框<br />
<br />
<span style="font-weight: bold; color: rgb(153,1,2)">9.创建一个jbpm demo</span><br />
创建一个例子，并将工作流程定义保存到数据库中<br />
(1)创建一个java Project，起名&#8220; myjbpm &#8221;，然后就可以单击&#8220;完成&#8221;了<br />
(2)将c:\jbpm-4.2\examples\src中的所有配置文件复制到myjbpm工程中的根目录下<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm.cfg.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm.hibernate.cfg.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm.mail.properties<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm.mail.templates.examples.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logging.properties<br />
<br />
(3)修改jbpm.hibernate.cfg.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hibernate.cfg.xml 的默认设置是用 HSQL ，这是一个内存数据库，这种内存数据库用来代替项目实际所用的数据库来做单元测试挺不错的。不过我们这里是要试试用 MySQL 、 Oracle <br />
MySQL 的更改如下：<br />
&nbsp;&nbsp; &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.url"&gt;jdbc:mysql://localhost:3306/jbpm&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.username"&gt;root&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.password"&gt;123456&lt;/property&gt;<br />
<br />
Oracle 的更改如下：<br />
&nbsp;&nbsp; &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.OracleDialect&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.driver_class"&gt;oracle.jdbc.driver.OracleDriver&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.url"&gt;jdbc:oracle:thin:@192.168.123.10:1521:wxxrDB&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.username"&gt;xiong&lt;/property&gt;<br />
&nbsp;&nbsp; &lt;property name="hibernate.connection.password"&gt;xiong&lt;/property&gt;<br />
<br />
(4)定义流程<br />
&nbsp;&nbsp; 创建流程的定义文件是 pd.jpdl.xml，将下面代码复制到文件中<br />
------------------------------------------------------------------------------------------<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
<br />
&lt;process name="pd" xmlns="http://jbpm.org/4.0/jpdl"&gt;<br />
&nbsp;&nbsp; &lt;start name="start1" g="207,62,48,48"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="to state1" to="state1" g="-59,-17"/&gt;<br />
&nbsp;&nbsp; &lt;/start&gt;<br />
&nbsp;&nbsp; &lt;end name="end1" g="208,293,48,48"/&gt;<br />
&nbsp;&nbsp; &lt;state name="state1" g="185,155,92,52"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="to end1" to="end1" g="-47,-17"/&gt;<br />
&nbsp;&nbsp; &lt;/state&gt;<br />
&lt;/process&gt;<br />
------------------------------------------------------------------------------------------<br />
<br />
(5)布置jbpm<br />
<br />
import junit.framework.TestCase;<br />
import org.jbpm.api.Configuration;<br />
import org.jbpm.api.ExecutionService;<br />
import org.jbpm.api.HistoryService;<br />
import org.jbpm.api.ManagementService;<br />
import org.jbpm.api.ProcessEngine;<br />
import org.jbpm.api.RepositoryService;<br />
import org.jbpm.api.TaskService;<br />
<br />
public class ServicesTest extends TestCase {<br />
&nbsp;&nbsp; public void testObtainServicesAndDeployProcess() {<br />
&nbsp;&nbsp;&nbsp;&nbsp; Configuration configuration = new Configuration();<br />
&nbsp;&nbsp;&nbsp;&nbsp; ProcessEngine processEngine = configuration.buildProcessEngine();<br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; RepositoryService repositoryService = processEngine.getRepositoryService();<br />
&nbsp;&nbsp;&nbsp;&nbsp; ExecutionService executionService = processEngine.getExecutionService();<br />
&nbsp;&nbsp;&nbsp;&nbsp; TaskService taskService = processEngine.getTaskService();<br />
&nbsp;&nbsp;&nbsp;&nbsp; HistoryService historyService = processEngine.getHistoryService();<br />
&nbsp;&nbsp;&nbsp;&nbsp; ManagementService managementService = processEngine.getManagementService();<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; // 开始部署一个新的流程文件<br />
&nbsp;&nbsp;&nbsp;&nbsp; String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("pd.jpdl.xml").deploy();<br />
<br />
&nbsp;&nbsp; }<br />
}<br />
<br />
&nbsp;&nbsp; 无论是 MySQL 还是 Oracle ，<br />
&nbsp;&nbsp; jbpm4_deployment表，你会发现多了一条记录<br />
&nbsp;&nbsp; jbpm4_deployprop表会多了三条记录,对应id,key,version<br />
&nbsp;&nbsp; jbpm4_lob 表会多了一条记录,保存流程图<br />
<br />
<br />
参考文献：<br />
1.bestyanghui. JBPM4.1配置实用过程. http://blog.csdn.net/bestyanghui/archive/2009/10/12/4656914.aspx<br />
2.熊熊之家. jbpm4开发步骤. http://hi.baidu.com/freshman0502/blog/item/092bab19ea68a873dab4bd91.html<br /><img src ="http://www.blogjava.net/rain1102/aggbug/304687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-12-03 19:48 <a href="http://www.blogjava.net/rain1102/archive/2009/12/03/304687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>