Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7577902 建立时间:2006年5月29日 |

| |
[JBoss]Jboss jBPM中swimlane、actor和role概念的理解 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:35:38 |
jbpm没有role的概念。actor,我认为就是一个具体人所具有的所有角色的集合,是roles, 不是
role。一个actor可以具有多个role。比如请假流程中,如果部门经理请假,他发起请假流程的actor就是包含请假者和部门经理两个角色。
swimlnae就是判断当前actor在节点中扮演什么角色。比如在请假流程的部门经理批准节点,swimlane就会判断当前开启服务的actor是
否是部门经理,如果是就交由他处理当前节点。 欢迎讨论。 |
|
[JBoss]jBPM的type问题,big bug! 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:34:31 |
对应用户自己定义的非string类型的变量,jBPM是先将变量转换成二进制object
流,然后再转换成string类型存储在数据库中,取变量的过程与之相反。由于转换成string涉及到编码格式问题,如GBK、ISO等,而编码格式涉
及到操作系统、数据库、jvm等多方面的影响,jbpm目前还没有解决这个问题,因此在使用非string类型变量的时候,jbpm会出错。这个问题
tom(jbpm创始人)正在解决。 这个问题,似乎将变量按二进制存储更好些,这样就不会涉及编码格式问题。 另外一种方法是使用统一的编码格式,改写后的org.jbpm.delegation.serializerSerializableSerializer如下: public class SerializableSerializer implements Serializer {
public |
|
[JBoss]jBPM工作流程定义 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:33:59 |
对jBPM来讲,工作流由一些节点和用户定义的Hander组成。一个工作流从start-state开始,中间经过若干个节点(state、fork、milestone、process-state、decision和join),最后结束于 |
|
[JBoss]一个JBPM工作流管理示例(二) 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:33:13 |
Action指明的是当前状态要执行的一些额外的操作,如记录log、发邮件等。 (1)Swimline的delegation要做的就是判别当前Actor的身份。 package kellerdu.jbpm.delegation;
import org.jbpm.delegation.*; import kellerdu.jbpm.LogsFactory; import org.apache.commons.logging.Log;
public class BossSwimlane implements AssignmentHandler { public BossSwimlane() { }
/** * 当前的状态有哪个actor来具体负责处理,选择是老板的actor来处理。 |
|
[JBoss]一个JBPM工作流管理示例(一) 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:32:46 |
示例: 在某一公司中,部门员工要休假的话需要部门主管的批准。如果休假天数大于10天的话,在部门主管的同意后,还必须上级主管批准。如果是部门主管要休假只要上级主管批准即可。在休假被批准之前,申请人可以撤销休假申请。 每
个员工还有多少天休假必须管理起来,在员工提交休假申请时要检查申请天数是否超过可用天数。申请批准后,要在可用天数里减去申请天数。每次休假申请结束之
后,不管通过未通过或是否取消,都必须记录下来。主管在批复申请之后,系统要将批复结果Email给申请人。对于大于10天的申请,如果部门主管已批准同
意而上级主管还未批准,这时申请人撤销申请后,系统应发Email通知部门主管申请已撤销。 processdefinition.xml如下: <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSPY v2004 rel. 3 U (http://www.x |
|
[JBoss]Jboss JBPM 学习点滴 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:31:32 |
(一)JBPM在Mysql 4.0以下运行有问题,主要是select语句的问题。 (二)JBPM 数据库默认的字符段是255个字符,有时需要修改,比如存储文件的时候。JBPM数据库默认的字段类型的定义有时候不一定适合需要,要手工进行修改。 (三)对于工作流定义文件-processdifinition.xml的中文问题解决方案如下: (1)xml的Encoding设定成”GBK“ (2)对于MySQL,hibernate相应的driver设定成:jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK (3)文字在显示的时候要用toGBK转换才能正确显示。 (4)对于Oracle来讲,Hibernate使用的C3P0连接池有问题,可用最新的C3P0代替。如果XML定义文件采用UTF8定义,显示时可不用做GBK转换。 |
|
[JBoss]一个JBPM工作流管理示例(四) 软件技术, 电脑与网络
lhwork 发表于 2006/6/30 15:30:58 |
(一) 开始一个请假流程 //user是请假人的actorId ExecutionService es=JbpmServiceFactory.getInstance().openExecutionService(user); HashMap vs=new HashMap(); //一些参数 vs.put(Constants.REQUEST_STATUS,String.valueOf(0)); vs.put(Constants.REQUEST_RETURN_INF |
|
|