最近正在使用Activiti5.4实现系统中的流程,在发文流程中有会签,研究了两天终于搞定了,现分享出来,以免其他兄弟们走弯路了,其中有不对的欢迎拍砖。
1、会签节点策略配置
2、流程定义文件中会签节点的配置
<userTask id="usertask2" name="会签" activiti:assignee="${hqr}">
<extensionElements>
<activiti:taskListener event="create" delegateExpression="${counterSignTaskListener}"></activiti:taskListener>
<activiti:taskListener event="complete" delegateExpression="${counterSignTaskListener}"></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="assigneeList" activiti:elementVariable="hqr">
<completionCondition>${signVoteResult != 2 }</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
3、counterSignTaskListener代码
package com.flowcenter.listener.task;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import com.flowcenter.common.service.ISignTaskRuleService;
/**
* 会签人工任务TaskListener
* @author ShiHukui
*
*/
public class CounterSignTaskListener implements TaskListener {
/**
* 注入会签规则业务层
*/
private ISignTaskRuleService signTaskRuleService;
public void setSignTaskRuleService(ISignTaskRuleService signTaskRuleService) {
this.signTaskRuleService = signTaskRuleService;
}
public void notify(DelegateTask delegateTask) {
// 事件名称
String eventName = delegateTask.getEventName();
// 任务相关信息
String taskId = delegateTask.getId();
String taskKey = delegateTask.getTaskDefinitionKey();
String procDefId = delegateTask.getProcessDefinitionId();
String procInstId = delegateTask.getProcessInstanceId();
// 获取当前UUID
String signTaskUUID = (String)delegateTask.getVariable("signTaskUUID");
// create 事件
if("create".equals(eventName)) {
// 获取审核人列表
String assigneeList = delegateTask.getVariable("assigneeList").toString();
System.out.println("会签人为:"+assigneeList);
// 保存会签人员信息
signTaskRuleService.saveSignTaskAssignees(taskId ,
taskKey ,
delegateTask.getName() ,
procInstId ,
procDefId,
delegateTask.getAssignee(),
signTaskUUID ,
assigneeList);
}
// complete 事件
else if("complete".equals(eventName)) {
// 获取投票结果和意见
String voteResult = (String) delegateTask.getVariable("voteResult");
String voteOpinion = (String) delegateTask.getVariable("voteOpinion");
// 填充审核人投票信息
int result = signTaskRuleService.saveSignTaskAssigneeVote(taskId, taskKey, procDefId, procInstId, voteResult, voteOpinion , signTaskUUID);
System.out.println("会签结果为(0:打回,1:通过,2:会签进行中):"+result);
delegateTask.setVariable("signVoteResult", result);
}
}
}
4、流程图
- 大小: 6.8 KB
- 大小: 23.8 KB
分享到:
相关推荐
下面我们将详细探讨如何在Activiti-5.4中实现会签以及相关的技术细节。 首先,理解会签的概念。在工作流中,会签是指一个任务可以被分配给多个用户或组,每个参与者都可以独立完成任务,而无需等待其他人的操作。在...
本文将详细探讨Activiti Engine 5.4版本,特别是其核心组件`activiti-engine-5.4.jar`,以及如何在项目中进行依赖和应用。 一、Activiti Engine概述 Activiti Engine是Alfresco公司推出的一款轻量级工作流引擎,它...
在 `activiti-engine-5.4-sources.jar` 中,流程定义被存储在数据库中,由 RepositoryService 管理。这些定义包含了流程图、泳道、任务节点、事件、网关等元素,定义了流程的执行逻辑。 4. **流程实例(Process ...
赠送jar包:activiti-engine-5.21.0.jar; 赠送原API文档:activiti-engine-5.21.0-javadoc.jar; 赠送源代码:activiti-engine-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-engine-5.21.0.pom; 包含...
activiti-6.0.0.zip 工作流官网包 (如果没有积分可以直接Q我:499384808,免费分享) 1. database里放着各种数据库的建表、删表、升级语句数据库包括db2、h2、hsql、mssql、mysql、oracle、postgres 2. libs 相关...
赠送jar包:activiti-json-converter-5.21.0.jar; 赠送原API文档:activiti-json-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-json-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
6. **版本控制**:在 activiti-5.22.0 中,你可以管理不同版本的流程定义,方便在流程改进或迭代时回滚到早期版本。 7. **安全性**:Activiti Explorer 支持基于角色的访问控制,确保只有授权的用户可以访问和操作...
总结来说,activiti-explorer-eclipse项目为Eclipse开发人员提供了一站式的解决方案,以便他们在IDE内实现和管理基于Activiti的工作流程。通过这个项目,开发者不仅可以更高效地设计流程,还可以在本地环境中便捷地...
赠送jar包:activiti-image-generator-5.21.0.jar; 赠送原API文档:activiti-image-generator-5.21.0-javadoc.jar; 赠送源代码:activiti-image-generator-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
这个“Activiti-APP最全汉化包”是专门为Activiti的应用程序界面提供了完整的中文本地化支持,使得国内用户在使用过程中能够更加方便地理解和操作。 在 Activiti 的应用中,汉化包的重要性不言而喻。对于非英语背景...
赠送jar包:activiti-json-converter-5.21.0.jar; 赠送原API文档:activiti-json-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-json-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
activiti-app6.0汉化版,对界面进行汉化,流程设计器里的英文无法汉化,没有对应的国际化文件
activiti6的流程设计汉化,解压后将里面的activiti-app放入tomcat中运行就可以了。默认使用的H2,如果要使用mysql等其它数据库需要修改activiti-app\WEB-INF\classes\META-INF\activiti-app包下的activiti-app....
在部署和运行Activiti App之前,用户需要配置数据库连接信息,通常是在` activiti-app.properties` 或其他配置文件中。 7. **权限与角色管理**:Activiti App 提供了角色和权限的管理功能,允许管理员设置不同的...
赠送jar包:activiti-common-rest-5.21.0.jar; 赠送原API文档:activiti-common-rest-5.21.0-javadoc.jar; 赠送源代码:activiti-common-rest-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-common-rest-...
赠送jar包:activiti-bpmn-model-5.21.0.jar; 赠送原API文档:activiti-bpmn-model-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-model-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-bpmn-model-...
赠送jar包:activiti-image-generator-5.21.0.jar; 赠送原API文档:activiti-image-generator-5.21.0-javadoc.jar; 赠送源代码:activiti-image-generator-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
标题中的 "activiti-5.22.0zip下载" 指的是Activiti的一个特定版本——5.22.0的压缩包文件,通常包含了该版本的所有源码、库文件、文档和示例。 在Activiti 5.22.0中,主要包含以下几个关键知识点: 1. **Activiti...
赠送jar包:activiti-crystalball-5.21.0.jar; 赠送原API文档:activiti-crystalball-5.21.0-javadoc.jar; 赠送源代码:activiti-crystalball-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-crystalball-...