会签描述:多个人对同一环节进行审核,只要有一个不通过,则打回给提交人。
设计原理:在任务节点,根据会签人员个数生成任务实例,
流程图:
Processdefinition.xml
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="" name="countersign">
<start-state name="start-state">
<transition to="user"></transition>
</start-state>
<task-node name="countersign" create-tasks="false" signal="first-wait">
<task name="eachcounter"></task>
<event type="node-enter">
<action class="com.action.CountersignHandler"></action>
</event>
<transition to="join1" name="N">
<action class="com.action.CounterDecisionHandler"></action>
</transition>
<transition to="join1" name="Y"></transition>
</task-node>
<task-node name="user">
<task></task>
<transition to="countersign" name="submit"></transition>
</task-node>
<join name="join1">
<transition to="decision"></transition>
</join>
<decision name="decision" expression="#{decision}">
<transition to="end" name="Y"></transition>
<transition to="user" name="N"></transition>
</decision>
<end-state name="end"></end-state>
</process-definition>
类CountersignHandler:
package com.action;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.graph.node.TaskNode;
import org.jbpm.taskmgmt.def.Task;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
public class CountersignHandler implements ActionHandler{
/**
*为每一位用户生成任务实例
*/
@Override
public void execute(ExecutionContext executionContext) throws Exception {
// TODO Auto-generated method stub
//phase 1: 生成用户,可以从数据库读,也可以从流程变量中读。
//String []actors={"a","b","c"};
Collection actors=new ArrayList();
actors.add("a");
actors.add("b");
actors.add("c");
//设定流程变量,
executionContext.getContextInstance().setVariable("decision", "Y");
//phase 2:根据用户的个数,创建子token。
Token token=executionContext.getToken();
List forkedTokens = new ArrayList();//子token
Iterator actorIter = actors.iterator();
while(actorIter.hasNext()){
- 大小: 19.5 KB
分享到:
相关推荐
【jbpm4.3 会签的实现】 在企业级工作流管理系统中,会签...在实际项目中,结合测试(如压缩包中的"test"目录中的测试用例)和持续学习(如"sofocus"可能包含的相关文档或讨论),将进一步加深对jbpm会签机制的理解。
通过学习"CountersignDemo"这个实例,你可以深入了解JBPM4.4的会签实现,包括如何设计流程、创建自定义活动、编写工具类以及如何在实际应用中部署和使用。这将有助于提升你对业务流程管理的理解,使你能更好地为企业...
在本篇中,我们将深入探讨如何在jBPM4.4中实现自定义会签功能,同时包含加签和减签功能。 首先,我们需要了解什么是会签。会签是指在流程中涉及多个审批人的场景,每个审批人都需要对流程中的某个任务进行操作,...
本文将深入探讨如何在jbPM中实现会签以及加签、减签功能,并提供相关实践指导。 1. **会签概念与实现** 会签是指在流程中设置一个环节,需要多个参与者依次或同时进行审批。jbPM通过定义工作流模型,利用task节点...
在jbpm中,"fork & join"机制是实现并行处理和流程控制的关键概念,尤其在处理会签(多个审批人同时参与审批)等场景时显得尤为重要。 "fork"在jbpm中指的是流程分支,当流程到达一个fork节点时,流程会分裂为多个...
在这个实例中,我们将探讨如何在JBPM4.3中实现基于Spring的会签功能。会签是一种常见的业务流程操作,需要多个参与者依次或同时对同一文档或任务进行审批,所有参与者的签名都得到确认后,流程才能继续进行。这通常...
在jbpm中实现会签,主要涉及到以下几个关键知识点: 1. **工作流模型**:jbpm使用BPMN(Business Process Model and Notation)标准来定义流程模型。BPMN提供了一套图形化的符号,用于描绘业务流程,其中包括并行...
在本教程中,我们将深入探讨jbpm中的会签和串签功能,以及如何进行流程部署、启动流程、任务提交、查询已办和待办任务。 首先,让我们了解流程部署的概念。在jbpm中,流程部署是将一个流程定义文件(通常是.bpmn或....
jbpm-3_2_2-Api jbpm 著名工作流引擎
此外,会议管理也是jBPM在OA系统中应用的一个典型场景,通过jBPM可以实现会议的预约、通知、记录等功能,大大提高了会议组织的效率和质量。 #### 结论 综上所述,jBPM作为一种先进的工作流引擎,为办公自动化系统...
任务管理允许用户领取、完成任务,并提供会签功能,即多个用户可以参与到同一任务的处理中,这对于企业中的协作至关重要。 在"jbpm4web"这个压缩包中,我们可以期待找到一个基于jbpm4构建的Web应用程序实例。这个...
在具体实现中,可能涉及的技术点包括: - **事务管理**:确保会签过程的原子性,防止数据不一致。 - **异常处理**:捕获和处理可能出现的异常,如参与者未响应、网络问题等。 - **权限控制**:根据用户角色和权限...
在这个“jbpm4.4流程图”中,我们关注的是如何通过图形化的方式来理解和操作这些流程。 流程图在jbpm中扮演着至关重要的角色,它们提供了一个直观的方式来描绘业务流程的各个步骤和决策点。`subjbpm.png`可能是一个...
此外,jBPM4还支持与规则引擎(如Drools)的无缝集成,实现了业务规则与流程的统一管理。 ### 2. 安装与环境配置 要开始使用jBPM4,首先需要安装以下基础环境: - **Java Development Kit (JDK)**:确保你的系统上...
在实际的项目开发中,利用JBPM特有的事件处理机制,可以有效地实现任务回退、任务催办和会签任务等特殊工作流的需求。这样不仅可以提高开发效率,还能保证工作流的灵活性,满足不同项目的实际需要。 总的来说,JBPM...
尽管JBPM和Activiti在全球范围内拥有较高的市场占有率,但在国内的实际应用中却面临一些挑战: 1. **API复杂性**:复杂的API使得开发者上手难度较大,尤其是在面对中国特有的业务场景时。 2. **本地化支持**:由于...
【jbpm工作流程详解】 jbpm,全称为Java Business Process ...尽管在应对某些特定的中国业务场景时可能需要额外的定制,但通过对其特性和机制的深入理解,开发者可以有效利用jbpm实现符合中国国情的流程自动化。