﻿<?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-大博的BLOG</title><link>http://www.blogjava.net/swboo/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 07 Oct 2008 12:12:07 GMT</lastBuildDate><pubDate>Tue, 07 Oct 2008 12:12:07 GMT</pubDate><ttl>60</ttl><item><title>JBPM3.2.2表关系详尽解释与全面分析</title><link>http://www.blogjava.net/swboo/articles/187659.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Fri, 21 Mar 2008 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/swboo/articles/187659.html</guid><wfw:comment>http://www.blogjava.net/swboo/comments/187659.html</wfw:comment><comments>http://www.blogjava.net/swboo/articles/187659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swboo/comments/commentRss/187659.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swboo/services/trackbacks/187659.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: （转载请注明，谢谢大家支持原创）JBPM表关系说明1 流程配置类数据库表：1.1 JBPM_PROCESSDEFINITION：流程模版表                                    关系表                                    外键存在表                        ...&nbsp;&nbsp;<a href='http://www.blogjava.net/swboo/articles/187659.html'>阅读全文</a><img src ="http://www.blogjava.net/swboo/aggbug/187659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swboo/" target="_blank">大博的BLOG</a> 2008-03-21 11:37 <a href="http://www.blogjava.net/swboo/articles/187659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JBOSS群集EJB3实例</title><link>http://www.blogjava.net/swboo/articles/151452.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Tue, 09 Oct 2007 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/swboo/articles/151452.html</guid><wfw:comment>http://www.blogjava.net/swboo/comments/151452.html</wfw:comment><comments>http://www.blogjava.net/swboo/articles/151452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swboo/comments/commentRss/151452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swboo/services/trackbacks/151452.html</trackback:ping><description><![CDATA[今天终于搞定了在JBOSS中群集EJB3中的无状态会话BEAN,心里总算松了一口2个月以来的长气,现在发出来给想无一样苦恼的人一个光明的大路<br />
<br />
环境<br />
MyEclipse5.5<br />
JBoss4.2.0<br />
测试目的:群集EJB3<br />
首先我门先启动JBOSS.下面我用%JBOSS%来代替JBOSS的跟目录<br />
在%JBOSS%\bin目录下先创建一个RUN.BAT的快捷方式然后,鼠标右击属性给新做的快捷方式加2个参数第1个参数是-C ALL 目的是让他启动ALL服务,第2个参数是-B 192.168.0.60都开出来了把是本机IP只有加了IP在可以让他被在局域内部被访问到.我做的是3台计算机的群集,所以3太机子上的JBOSS都的这么写注意写对IP.然后启动JBOSS OK环境就算OK了然后开始写EJB3<br />
写远程接口<br />
<br />
<p>public interface HelloRemote extends Serializable {</p>
<p>&nbsp;public String getString(int i);<br />
<br />
然后写本地接口<br />
</p>
<p>@Stateless<br />
@Clustered&nbsp;&nbsp;&nbsp;&nbsp; //EJB3群集的标签<br />
@Remote(HelloRemote.class)<br />
public class HelloRemoteService implements HelloRemote {</p>
<p>&nbsp;public String getString(int i) {<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;System.out.println("我被执行了第"+i+"次");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;return null;<br />
&nbsp;}</p>
<p>}</p>
EJB写的很简单就是在服务器上打一句话而已,完了将EJB3打成JAR包部署到<br />
%JBOSS%\server\all\farm目录下,注意在这个目录发布完后,其他机子上同时会响应及其他机子上也会发布完成这个JAR包.下面开始运行这个EJB,当然要重新在局域网内找一台机子做客户端调用.<br />
首先在那台机子上将刚才的JAR包导入项目中完了写测试代码<br />
Public class EJBFactory {<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public static Object getEJB(String jndipath) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Properties props = new Properties();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.provider.url", "192.168.0.149:1099,192.168.0.60,192.168.0.51:1099");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("jnp.disableDiscovery", "true");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.provider.url", "192.168.0.251:3700");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitialContext ctx = new InitialContext(props);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ctx.lookup(jndipath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NamingException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
看清楚我写了3个IP地址,这样做的好处是随便那个机子挂掉其他机子一样可以运行<br />
测试代码<br />
<p>public class Test {<br />
public static void main(String[] args) {<br />
&nbsp;<br />
&nbsp;HelloRemote helloRemote =(HelloRemote)EJBFactory.getEJB("HelloRemoteService/remote");<br />
&nbsp;for(int i=0;i&lt;10;i++){<br />
&nbsp;&nbsp;helloRemote.getString(i);<br />
&nbsp;}<br />
}<br />
}<br />
运行测试代码我门可以发现在3台服务器上他会打印出结果.这是JBOSS自己的负载平衡功能帮助我门实现的,呵呵写完了,这简单的实现我郁闷了2个月,郁闷~~~呵呵希望能给研究EJB3集群的朋友一点帮助<br />
QQ58194033有问题我门可以继续探讨</p>
 <img src ="http://www.blogjava.net/swboo/aggbug/151452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swboo/" target="_blank">大博的BLOG</a> 2007-10-09 17:04 <a href="http://www.blogjava.net/swboo/articles/151452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个完整的基于JBPM3.1.4工作流引擎的WEB请假流程例子------第二部分发布工作流</title><link>http://www.blogjava.net/swboo/articles/131156.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Wed, 18 Jul 2007 14:18:00 GMT</pubDate><guid>http://www.blogjava.net/swboo/articles/131156.html</guid><wfw:comment>http://www.blogjava.net/swboo/comments/131156.html</wfw:comment><comments>http://www.blogjava.net/swboo/articles/131156.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/swboo/comments/commentRss/131156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swboo/services/trackbacks/131156.html</trackback:ping><description><![CDATA[<p>&nbsp;发布工作流很简单咯,我们用JUNIT测试用例来发布,至于如何呢看下面代码把,里面注释很清楚<br><br>public class ManyShenpiIssue extends TestCase {<br>&nbsp;public void testIssueDefinition() throws FileNotFoundException<br>&nbsp;{<br><span style="COLOR: #339966">&nbsp;&nbsp;//从JBPM.CFG.XML取得JBPM配置</span><br>&nbsp;&nbsp;JbpmConfiguration config = JbpmConfiguration.getInstance();<br><span style="COLOR: #339966">&nbsp;&nbsp;//创建一个JBPM容器</span><br>&nbsp;&nbsp;JbpmContext jbpmContext = config.createJbpmContext();<br><span style="COLOR: #339966">&nbsp;&nbsp;//由processdefinition.xml生成想对应的流程定义类processDefinition</span><br>&nbsp;&nbsp;InputStream is = new FileInputStream("process/shenpi/processdefinition.xml");<br>&nbsp;&nbsp;ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(is);<br><span style="COLOR: #339966">&nbsp;&nbsp;//利用容器的方法将流程定义数据部署在数据库上</span><br>&nbsp;&nbsp;jbpmContext.deployProcessDefinition(processDefinition);<br>&nbsp;<span style="COLOR: #339966">&nbsp;//关闭jbpmContext</span><br>&nbsp;&nbsp;jbpmContext.close();<br>&nbsp;&nbsp;<br>&nbsp;}</p>
<p>}<br>工作流在着就算发布完成了,很简单对不对呀<br>现在大家对引擎的概念还是很模糊对不对,没事下面的内容我会做详细解释</p>
<img src ="http://www.blogjava.net/swboo/aggbug/131156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swboo/" target="_blank">大博的BLOG</a> 2007-07-18 22:18 <a href="http://www.blogjava.net/swboo/articles/131156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3.0初看</title><link>http://www.blogjava.net/swboo/articles/130065.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Fri, 13 Jul 2007 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/swboo/articles/130065.html</guid><wfw:comment>http://www.blogjava.net/swboo/comments/130065.html</wfw:comment><comments>http://www.blogjava.net/swboo/articles/130065.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/swboo/comments/commentRss/130065.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swboo/services/trackbacks/130065.html</trackback:ping><description><![CDATA[<div>当EJB3.0加hibernate和标记语言后,哇哦,用起来太爽了夜,和在学校学的EJB2.1完全不一样了哦,不说看看代码就知道了</div>
<div>先写一个接口LOOK什么都不用继承的</div>
<div><font face=宋体>public interface QueryDAO {<br>&nbsp;&nbsp;&nbsp; public String ExecuteQuery(int index);<br>&nbsp;&nbsp;&nbsp; public void initdate();&nbsp;&nbsp;&nbsp;<br>}</font></div>
<div>然后看看实体类的写法一个字酷</div>
<div>
<p><font face=宋体>@SuppressWarnings("serial")<br>@Entity<br>@Table(name="DictionaryCatalog")<br>public class DictionaryCatalogEntity implements Serializable {<br>&nbsp;private Integer catalogId;<br>&nbsp;private String catalogName;<br>&nbsp;private String cataMemo;<br>&nbsp;private DictionaryTypeEntity dte;<br>&nbsp;private Set&lt;DirectoryData&gt; dce;<br>&nbsp;<br>&nbsp;@ManyToOne(cascade=CascadeType.ALL ,fetch=FetchType.LAZY,optional=false)<br>&nbsp;@JoinColumn(name="id")<br>&nbsp;public DictionaryTypeEntity getDte() {<br>&nbsp;&nbsp;return dte;<br>&nbsp;}<br>&nbsp;public void setDte(DictionaryTypeEntity dte) {<br>&nbsp;&nbsp;this.dte = dte;<br>&nbsp;}<br>&nbsp;@OneToMany(cascade=CascadeType.ALL ,fetch=FetchType.LAZY,mappedBy="dataId")<br>&nbsp;@OrderBy(value="dataId desc")<br>&nbsp;public Set&lt;DirectoryData&gt; getDce() {<br>&nbsp;&nbsp;return dce;<br>&nbsp;}<br>&nbsp;<br>&nbsp;public void setDce(Set&lt;DirectoryData&gt; dce) {<br>&nbsp;&nbsp;this.dce = dce;<br>&nbsp;}<br>&nbsp;@Id<br>&nbsp;@GeneratedValue<br>&nbsp;public Integer getCatalogId() {<br>&nbsp;&nbsp;return catalogId;<br>&nbsp;}<br>&nbsp;public void setCatalogId(Integer catalogId) {<br>&nbsp;&nbsp;this.catalogId = catalogId;<br>&nbsp;}<br>&nbsp;<br>&nbsp;@Column(name="catalogName" , nullable=true ,length=50)<br>&nbsp;public String getCatalogName() {<br>&nbsp;&nbsp;return catalogName;<br>&nbsp;}<br>&nbsp;public void setCatalogName(String catalogName) {<br>&nbsp;&nbsp;this.catalogName = catalogName;<br>&nbsp;}<br>&nbsp;@Column(name="cataMemo" ,nullable=true ,length=50)<br>&nbsp;public String getCataMemo() {<br>&nbsp;&nbsp;return cataMemo;<br>&nbsp;}<br>&nbsp;public void setCataMemo(String cataMemo) {<br>&nbsp;&nbsp;this.cataMemo = cataMemo;<br>&nbsp;}</font></p>
<p><font face=宋体>}</font></p>
<p>呵呵连数据库都自己生成了,你门说酷不</p>
<p>完了是会话BEAN</p>
<p><font face=宋体>@Stateless<br>@Remote ({QueryDAO.class})<br>public class QueryDAOBean implements QueryDAO {<br>&nbsp;&nbsp;&nbsp; @PersistenceContext<br>&nbsp;&nbsp;&nbsp; protected EntityManager em;</font></p>
<p><font face=宋体>&nbsp;&nbsp;&nbsp; public void initdate() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query query = em.createQuery("select count(p) from Person p");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object result = query.getSingleResult();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result == null || Integer.parseInt(result.toString()) == {&nbsp;&nbsp;&nbsp;</font><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p><font face=宋体>}<br>查询基本是上是写完了,看是不是很类似HIBERNATE的查询语言呵呵,但是EJB又封装了哈，现在EJB终于可以和SPRING想抗衡了哦,呵呵)</font></p>
<p>(此例子3个类没有任何关系,所以大家看看如何写就好咯,呵呵.后面我会写个例子让大家参考的)</p>
</div>
<img src ="http://www.blogjava.net/swboo/aggbug/130065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swboo/" target="_blank">大博的BLOG</a> 2007-07-13 13:35 <a href="http://www.blogjava.net/swboo/articles/130065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个完整的基于JBPM3.1.4工作流引擎的WEB请假流程例子------第一部分环境准备与工作流定义</title><link>http://www.blogjava.net/swboo/articles/129958.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Thu, 12 Jul 2007 15:10:00 GMT</pubDate><guid>http://www.blogjava.net/swboo/articles/129958.html</guid><wfw:comment>http://www.blogjava.net/swboo/comments/129958.html</wfw:comment><comments>http://www.blogjava.net/swboo/articles/129958.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/swboo/comments/commentRss/129958.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/swboo/services/trackbacks/129958.html</trackback:ping><description><![CDATA[<p style="FONT-FAMILY: Arial">-----本文原作者:孙文博,发于<a href="http://www.blogjava.net/swboo">http://www.blogjava.net/swboo</a>为了让更多人了解如要转载请说明,谢谢大家支持原创.<br><br>对于刚开始接触JBPM的朋友来说,理解工作流引擎着个概念来说是要费工夫的(本人很苯,也是理解了好久才知道引擎的意思的).现在网上大多数的JBPM例子都是使用的是JUNIT来说明问题的,但是对于一些没有从事过JAVA或的刚开始从事JAVA开发的朋友来说,无疑是很有难度的,所以我在这里写一个WEB的例子来教大家JBPM的的使用,以及引擎的含义,好了接下来让咱们开始.<br><br><br><strong>1环境准备<br></strong>至于如何配置ＪＢＰＭ环境我就不说了，要是不会请去看陈刚老师的ＢＬＯＧ上面很详细（<a href="http://www.blogjava.net/chengang/category/12967.html">http://www.blogjava.net/chengang/category/12967.html</a>）我在这里只做如何将ＪＢＰＭ和ＷＥＢ组合起来<br><strong><br>1.1使用环境　</strong><br><span style="COLOR: #ff0000"></span><font color=#ff0000>JDK1.5<br></font>Tomcat5.5.9<br>JBPM3.1.4<br>数据库mssql2000<br><br><strong>1.2创建一个ＷＥＢ项目，不说了用过eclipse的人都知道如何创建</strong><br><br><br><strong>1.3创建一个流程定义，就是在web项目中添加Process Definition</strong><br><br><strong>1.4流程定义代码 <br></strong><span style="BACKGROUND-COLOR: #c0c0c0">注明:下面我将流程写如流程定义文件当中要是想使用请删除里面的流程说明部分</span><br>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</p>
<p style="FONT-FAMILY: Arial">开始结点<br>&lt;process-definition<br>&nbsp; xmlns=""&nbsp; name="shenpi"&gt;<br><span style="COLOR: #800080">流程开始结点</span><br>&nbsp;&nbsp; &lt;start-state name="start"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task name="startrequest"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;controller&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #339966">&nbsp;设置请假人的<span style="COLOR: #339966">流</span>程变量</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable name="name"&gt;&lt;/variable&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #339966">设置请假天数的流程变量</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable name="countday"&gt;&lt;/variable&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #339966">&nbsp;&nbsp;设置审批请假角色的流程变量<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable name="roles"&gt;&lt;/variable&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/controller&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/task&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;event type="node-leave"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #339966">&nbsp;当离开开始结点后处理的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="startleave" class="com.jbpm.handler.StartLeave"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/event&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="" to="shenpi"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/transition&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp; &lt;/start-state&gt;<br><br><span style="COLOR: #800080">审批结点</span><br>&nbsp;&nbsp; &lt;task-node name="shenpi"&gt;<br><span style="COLOR: #339966">审批任务</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;task name="whoshenpi"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;controller&gt;<br><span style="COLOR: #339966">设置是否通过的流程变量</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable name="shifoutongguo"&gt;&lt;/variable&gt;<br><span style="COLOR: #339966">保存该谁审批的流程变量</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;variable name="who"&gt;&lt;/variable&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/controller&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/task&gt;<br><span style="COLOR: #339966">用来处理进入审批结点的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;event type="node-enter"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="com.jbpm.handler.ShenpiEnter"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/event&gt;<br><span style="COLOR: #339966">用来处理离开审批结点的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;event type="node-leave"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="com.jbpm.handler.ShenpiLeave"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/event&gt;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="" to="decision1"&gt;&lt;/transition&gt;<br>&nbsp;&nbsp; &lt;/task-node&gt;<br><br><span style="COLOR: #800080">设置下一个人审批的结点<br></span>&nbsp;&nbsp; &lt;node name="whocheck"&gt;<br><span style="COLOR: #339966">设置下一个审批人的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;action class="com.jbpm.handler.WhoCheckAction"&gt;<br>&nbsp;&nbsp; &nbsp;&lt;/action&gt;<br><span style="COLOR: #339966">设置离开此结点的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;event type="node-leave"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="whocheckleave" class="com.jbpm.handler.WhoCheckLeave"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/event&gt;<br><span style="COLOR: #339966">设置进入此结点的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;event type="node-enter"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="whocheckenter" class="com.jbpm.handler.WhoCheckEnter"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/event&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="" to="decision2"&gt;&lt;/transition&gt;<br>&nbsp;&nbsp; &lt;/node&gt;<br><br><span style="COLOR: #800080">判断是否审批人是否通过的结点</span><br>&nbsp;&nbsp; &lt;decision name="decision1"&gt;<br><span style="COLOR: #339966">判断此业务流程的类<br></span>&nbsp;&nbsp;&nbsp;&nbsp; &lt;handler class="com.jbpm.decision.IsGoDecisionHandler"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="end" to="end"&gt;<br><span style="COLOR: #339966">判断流程是否通过的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action class="com.jbpm.handler.ProcessEnd"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/transition&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="go" to="whocheck"&gt;&lt;/transition&gt;<br>&nbsp;&nbsp; &lt;/decision&gt;<br><br><span style="COLOR: #800080">判断是否审批人是否是最后一个人的结点</span><br>&nbsp;&nbsp; &lt;decision name="decision2"&gt;<br><span style="COLOR: #339966">判断是否通过的类</span><span style="COLOR: #339966"><br></span>&nbsp;&nbsp; &lt;handler class="com.jbpm.decision.IsGoDecisionHandler"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="end" to="end"&gt;<br><span style="COLOR: #339966">判断是够是最后一个人的类</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action class="com.jbpm.handler.ProcessEnd"&gt;&lt;/action&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/transition&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transition name="go" to="shenpi"&gt;&lt;/transition&gt;<br>&nbsp;&nbsp; &lt;/decision&gt;<br><br><span style="COLOR: #800080">&nbsp;&nbsp;&nbsp;流程结束结点</span><br>&nbsp;&nbsp; &lt;end-state name="end"&gt;<br><span style="COLOR: #339966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;判断是否通过的变量</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;controller&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variable name="shifoutongguo" access="read"&gt;&lt;/variable&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/controller&gt;&nbsp;&nbsp; &nbsp;&nbsp;<br>&nbsp;&nbsp; &lt;/end-state&gt;<br>&lt;/process-definition&gt;</p>
<p style="FONT-FAMILY: Arial"><br><br><strong>1.5流程说明<br></strong>本流程定义了一个请假流程其中员工提出申请开始一个请假流程,然后主管审批,此例子我设置了3个chief来处理,只要里面一个不通过流程就结束了.</p>
(太晚了明天继续)2007.7.12 
<img src ="http://www.blogjava.net/swboo/aggbug/129958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/swboo/" target="_blank">大博的BLOG</a> 2007-07-12 23:10 <a href="http://www.blogjava.net/swboo/articles/129958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>