activity会签功能的实现
来源:互联网 发布:矩阵的初等变换 编辑:程序博客网 时间:2024/06/07 09:44
1,利用activity的多实例节点方法实现会签功能
根据bpmn规范的要求,每个上级流程为每个实例创建分支时都要提供如下变量:
nrOfInstances:实例总数
nrOfActiveInstances:当前活动的,比如,还没完成的,实例数量。 对于顺序执行的多实例,值一直为1。
nrOfCompletedInstances:已经完成实例的数目。
可以通过execution.getVariable(x)
方法获得这些变量。
2,多实例节点实现方式
多实例节点实现方式分为并行(三个横线),顺序执行(三个竖线)两种方式。
3,XML
<userTask id="usertask2" name="总经理/副总经理/主管批准" activiti:assignee="${workUser}">
<multiInstanceLoopCharacteristics isSequential="true" activiti:collection="workUsers" activiti:elementVariable="workUser"><!--isSequential="true"顺序执行 isSequential="false" 并行执行 建议并行执行-->
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.6 }</completionCondition> <!-- 当任务完成量比例大于0.6的时候删除所有未执行的任务,通过当前节点继续执行流程 -->
</multiInstanceLoopCharacteristics>
</userTask>
4,java代码
public class TestMultiInstance {
@Test
public void testProcess() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
TaskService taskService = processEngine.getTaskService();
Deployment deploy = repositoryService.createDeployment()//
.name("会签测试")//添加部署的名称
.addClasspathResource("com/boxhill/safemanage/bpmn/activititest2.bpmn")//从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("com/boxhill/safemanage/bpmn/activititest2.bpmn")//从classpath的资源中加载,一次只能加载一个文件
.deploy();
System.out.println(deploy.getId() + " " + deploy.getName());
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("mulitiInstance", new MulitiInstanceCompleteTask());
List<String> workUsers = new ArrayList<String>();
workUsers.add("A");
workUsers.add("B");
workUsers.add("C");
variables.put("workUsers", workUsers);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("activititest2",variables);
//ProcessInstance pi = runtimeService.startProcessInstanceByKey("activititest2");
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pi.getId()).singleResult();
if (null == processInstance) {
System.out.println("流程完成.");
}
}
- activity会签功能的实现
- EBS WORKFLOW 审批会签功能的实现
- activiti工作流会签功能的实现
- jbpm4实现会签功能(转)
- Activiti 多实例实现会签功能
- Activiti 多实例实现会签功能
- jbpm4.4:会签的实现
- Jbpm流程如何实现“会签”的问题
- Activiti学习之 多实例实现会签功能
- JBPM会签实现
- 工作流实现会签
- JBPM4.4 实现并发(fork -join)和事件监听(event-Listenner) 实现会签功能
- 实现对Activity的定时关闭功能
- Android实现dialog功能的Activity
- 实现对Activity的定时关闭功能
- 会签
- 使用JBPM实现动态会签
- activiti 多实例实现会签
- outerHeight()与height()的区别
- GCC常用参数详解
- 阿里云构建千万级别架构演变之路
- WEBLOGIC 11G密码忘记,重新初始化密码方法
- PHP截取接口
- activity会签功能的实现
- elasticsearch could reserve enough space for object heap
- 一些对流程控制和函数的理解
- mysql查询优化建议
- 浅谈js中的call,apply,bind方法中的this指针
- -00-开始【OV5640】
- Hibernate学习-12:一级缓存
- Windows netstat 查看端口、进程占用
- yolo博客收集