jbmp3
文章平均质量分 52
chongqingnantian
这个作者很懒,什么都没留下…
展开
-
一、流程定义的一些基本概念
1、jbpm的主要工作:定义流程、执行流程。 2、一个流程定义的示例 3、流程定义中用到的一些组件原创 2012-10-30 17:29:44 · 184 阅读 · 0 评论 -
十六、流程相关的用例图、流程图
部署流程: 删除流程定义: 查看流程图片: 创建公文: 删除公文: 提交公文: 查询待审公文列表:...原创 2012-11-08 17:29:08 · 315 阅读 · 0 评论 -
十七、Decision节点和DecisionHandler的使用
<?xml version="1.0" encoding="UTF-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="test6"> <start-state name="开始"> <transition原创 2012-11-09 16:15:12 · 580 阅读 · 0 评论 -
十八、自定义VariableResolver
<decision name="decision1" expression="#{days gt 10 ? '提交给李四审批':'提交给王五审批'}">在上面中days变量默认是从ContextInstance中读取,我们也可以自定义获取变量的规则。 public class MyVariableResolver extends JbpmVariableResolver {...原创 2012-11-09 16:50:16 · 118 阅读 · 0 评论 -
十九、会签(通过PooledActors或者在一个TaskNode中定义多个Task)来实现
如何实现多人会签,而且只要其中一个人审批通过就继续往下?实现方法一:利用pooled-actors,可以使用pooled-actors定义多个参与者,并使用findPooledTaskInstances来查找这种定义的任务实例,其中任意一个人审批通过并提交之后,其他人将看不到这个任务实例。 任务分配模式: <?x...原创 2012-11-09 17:15:16 · 121 阅读 · 0 评论 -
二十、如何给角色分配任务
实现AssignmentHandler接口,在接口的实现方法中,查询角色下面的用户,并将任务实例分配给这些用户即可。 <?xml version="1.0" encoding="UTF-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="test11"> <st原创 2012-11-13 11:12:49 · 179 阅读 · 0 评论 -
二十一、如何在Jbpm的各种Handler中访问spring的bean
import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.access.BeanFactoryLocator;import org.springframework.beans.factory.access.BeanFactoryReferenc...原创 2012-11-13 11:42:00 · 101 阅读 · 0 评论 -
二十二、如何给角色分配任务,而且拥有此角色的用户均需审批通过之后才能继续往下?...
解决方法:* 在一个node-enter事件中,我们自己来接管TaskInstance的创建过程,并给每个TaskInstance设置actorId* 在定义流程的时候,指定create-tasks="no",告诉JBPM不要自动创建TaskInstance* 在定义流程的时候,指定signal="last"(或不指定,因为默认就是这个取值) <?xm...原创 2012-11-13 14:18:48 · 140 阅读 · 0 评论 -
二十三、如何给角色分配任务,而且拥有此角色的用户只要有一个用户审批通过就可以继续往下...
解决方案:首先,是基于前一个解决方案,我们自己来给每个用户创建任务实例:在一个node-enter事件中,我们自己来接管TaskInstance的创建过程,并给每个TaskInstance设置actorId。其次,在流程定义中定义signal="first"和end-tasks="yes"即可。end-tasks="yes"表示离开该节点时,该节点没被完成的任务实例...原创 2012-11-13 14:41:41 · 210 阅读 · 0 评论 -
二十四、如何给角色分配任务,而且拥有此角色的用户必需要通过n个人的审批之后才能继续往下?...
解决方案:1、 在一个node-enter事件中,我们自己来接管TaskInstance的创建过程,并给每个TaskInstance设置actorId2、 设置signal="last"或保持默认3、 定义task-end事件处理器TaskEndActionHandler,在这个TaskEndActionHandler里,判断当前已经有多...原创 2012-11-15 21:33:45 · 155 阅读 · 0 评论 -
二十五、将JBPM集成到基于SSH的OA系统中
具体步骤如下:原创 2012-11-15 22:43:40 · 93 阅读 · 0 评论 -
二十六、JbpmFacade简单实现
public class JbpmFacadeImpl extends AbstractManager implements JbpmFacade { private JbpmConfiguration jbpmConfiguration; public long addProcessInstance(String processName, Docume...原创 2012-11-16 10:30:15 · 73 阅读 · 0 评论 -
十五、从中间的TaskNode节点出发如何得到下一步可选路径列表
在上一节中说到:Set<Transition> list = instance.getRootToken().getAvailableTransitions();适合于从开始节点往下选择流向,但是如果当前节点不是开始节点时且流程中有fork节点时,该方法就不一定行,原因如下:当流程走到fork节点时,rootToken是指向fork节点的,用之前的方法运行得到如下:...原创 2012-11-06 16:12:02 · 85 阅读 · 0 评论 -
十四、从起点(StartState)出发,如何得知下一步可选的路径列表
<process-definition name="test3"> <start-state name="开始"> <!-- 流转条件,从ContextInstance中取days变量 --> <transition name="流向李四审批" to="李四审批" condition="原创 2012-11-06 11:59:02 · 107 阅读 · 0 评论 -
十三、Fork和Join节点的基本用法
<?xml version="1.0" encoding="UTF-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="test2"> <start-state name="开始"> <transition原创 2012-11-06 10:48:20 · 450 阅读 · 0 评论 -
二、流程执行的基本概念[流程实例、Token等]
1、流程实例的概念2、流程执行的原理原创 2012-11-01 11:00:58 · 91 阅读 · 0 评论 -
三、JBPM流程引擎核心调度过程
其中execute()方法,针对不同的节点,内容就不一样,比如:fork节点:根据有几个transition,就生成几个subToken,分别指向那几个transition,然后为rootToken的childs属性添加刚刚那个几个transitionjoin节点:判断所有subToken是否都到达此节点,如果都到达,则把它们的父token指向该join节点的下一个节点,否则等...原创 2012-11-01 15:00:59 · 148 阅读 · 0 评论 -
四、公文流转的基本过程
1、公文流程的过程原创 2012-11-01 15:08:08 · 469 阅读 · 0 评论 -
五、创建JBPM所需要的表
1、创建hibernate配置文件<hibernate-configuration><session-factory> <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <pro...原创 2012-11-01 21:12:18 · 73 阅读 · 0 评论 -
十、查询某个用户的公文列表
private void printTask(JbpmContext context,String actorId){ List<TaskInstance> list = context.getTaskMgmtSession().findTaskInstances(actorId); for (TaskInstance taskInstanc...原创 2012-11-05 10:27:55 · 82 阅读 · 0 评论 -
六、定义流程
1、流程定义 2、生成的代码如下:<?xml version="1.0" encoding="UTF-8"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="test"> <start-state name="开始">原创 2012-11-05 10:28:37 · 94 阅读 · 0 评论 -
七、部署流程
测试代码如下: //部署流程定义:根据流程定义文件,解释得到流程定义对象,把流程定义持久化到数据库。 @Test public void createJbpmTabTest(){ //默认从classpath中查找名为hibernate.cfg.xml的配置文件 JbpmConfiguration co...原创 2012-11-05 10:28:48 · 92 阅读 · 0 评论 -
八、创建公文
1、创建公文对象public class Document { private Long id; private String title; private Long processInstanceId; 2、@Test public void createJbpmTabTest(){ ...原创 2012-11-05 10:29:00 · 137 阅读 · 0 评论 -
九、提交公文
//将公文提交到第一个环节 @Test public void createJbpmTabTest(){ JbpmContext context = null; try { //默认从classpath中查...原创 2012-11-05 10:29:09 · 92 阅读 · 0 评论 -
十二、查询公文流转到哪个节点
//得到流程流转到的当前节点 @Test public void createJbpmTabTest(){ JbpmContext context = null; try { //默认从classpath中查找名为hibernate.cf...原创 2012-11-06 10:43:15 · 231 阅读 · 0 评论 -
十一、流程流转
提交公文到下一个节点(本节点不是开始节点)private void nextNode(JbpmContext context,String actorId,Long docId){ List<TaskInstance> list = context.getTaskMgmtSession().findTaskInstances(actorId); ...原创 2012-11-06 10:43:32 · 112 阅读 · 0 评论 -
二十七、jbpm回退
要实现JBPM的任务回退很简单,只要对JBPM中的2个表进行修改,这2个表分别是: jbpm_token和jbpm_taskinstance,对应类是org.jbpm.graph.exe.Token和 org.jbpm.taskmgmt.exe.TaskInstance. 修改方法: 将已经完成的任务实例jbpm_taskinst...原创 2012-11-16 10:56:37 · 144 阅读 · 0 评论