流程中的Task节点(上)
来源:互联网 发布:python 多线程 sleep 编辑:程序博客网 时间:2024/06/06 02:28
内容
使用变量
指定任务分配者
指定任务候选人
任务变量
1。 变量
流程变量在流程外部,可以通过ExcutionService提供的方法进行访问
缺省情况下,变量会创建在顶级的流程实例中
流程变量可以动态创建
Jbpm支持的变量类型:
java.lang.String、java.lang.Long、java.lang.Double、
java.util.Date、java.lang.Boolean、java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer、
java.lang.Float、byte[]、char[]、
hibernate entity with a long it 、
hibernate entity with a string id 、
serializable
2。指定任务分配者
1。使用assignee
2。用法
assignee=“username”
assignee=“#{username}.
测试未指定任务分配者:
流程定义:
<task assignee="#{username}" g="159,176,92,52" name="check">
<transition g="-23,-13" name="reject" to="modify"/>
<transition name="approval" to="inform" g="-59,-17"/>
</task>
测试代码:
ProcessInstance processInstance = executionService.startProcessInstanceByKey("dishpub");
在流程启动时未加入流程中,报下列错误:
org.jbpm.api.JbpmException: script evaluation error: javax.el.PropertyNotFoundException: Cannot find property username
正确:
Map<String,Object> variables=new HashMap<String,Object>();
variables.put("username","zhujh");
ProcessInstance processInstance = executionService.startProcessInstanceByKey("dishpub",variables);
3。指定任务候选人
1。任务可以分配给一组用户
使用 candidate-groups,candidate-users
用法类似于assignee
用法
candidate-groups =“groupname”
candidate-groups =“#{groupname}”
例子:
流程定义:
<task candidate-groups="manager" g="159,176,92,52" name="check">
<transition g="-23,-13" name="reject" to="modify"/>
<transition name="approval" to="inform" g="-59,-17"/>
</task>
测试代码:
public class dishpubTest extends JbpmTestCase {
String deploymentId;
String manager;
protected void setUp() throws Exception {
super.setUp();
deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("org/dishweb/process/dishpub.jpdl.xml")
.deploy();
//创建用户
identityService.createUser("zjh", "zhujh", "zhu");
//创建用户组
manager=identityService.createGroup("manager");
//将用户和用户组关联
identityService.createMembership("zjh", manager);
}
protected void tearDown() throws Exception {
repositoryService.deleteDeploymentCascade(deploymentId);
//删除用户
identityService.deleteUser("zjh");
//删除用户组
identityService.deleteGroup(manager);
super.tearDown();
}
public void testServicesTest() {
ProcessInstance processInstance = executionService.startProcessInstanceByKey("dishpub");
List<Task> taskList=taskService.findGroupTasks("zjh");
System.out.println(taskList.size());
}
长度为1
2。candidate-groups =“#{groupname}”
Map<String,Object> variables=new HashMap<String,Object>();
variables.put("managerGroup", "manager");
ProcessInstance processInstance = executionService.startProcessInstanceByKey("dishpub",variables);
可以将任务分配给多个人,需要人员和组绑定关系,其中一个执行完毕流程执行完毕
//创建用户
identityService.createUser("zjh", "zhujh", "zhu");
identityService.createUser("lh", "zhujh", "zhu");
//创建用户组
manager=identityService.createGroup("manager");
//将用户和用户组关联
identityService.createMembership("zjh", manager);
identityService.createMembership("lh", manager);
- 流程中的Task节点(上)
- Hadoop源码流程分析4-Task节点执行任务
- 流程中的节点分支到达方式设置
- Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
- Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
- jbpm-task节点
- gradle中的task(一)
- Activiti中的关于子流程中的并发节点标记处理
- jBPM4.4开发(三)-----------task任务节点
- [spark] Task执行流程
- Linux suspend 流程介绍(2)之 freeze task
- JavaScript中的Node(节点)
- spark中的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系。
- WebView流程分析(上)
- Jbpm 流程节点
- 自定义流程节点View
- ROS编写节点流程
- 权限控制 流程节点
- ASP.Net中类似Servlet的东西
- hive安装与配置
- android 铃声设置流程讲解
- POJ1745解题报告
- CCNA实验十九 静态与默认路由
- 流程中的Task节点(上)
- J2ME电话薄源代码重新整理
- 配置Apache,支持WAP OTA [转]
- 【转】关于Java多线程的思考
- 10.21.2010吉他课笔记
- System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同。
- FILE__,__LINE__,FUNCTION__实现代码跟踪(转载)
- 用JQuery异步加载PartialView
- SQL Server日志清空方法