工作流UserTask的使用
来源:互联网 发布:域名被通信局撤销 编辑:程序博客网 时间:2024/05/30 23:07
工作流流程图:
工作流配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <definitions id="definitions"
- xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
- xmlns:activiti="http://activiti.org/bpmn"
- targetNamespace="Examples">
- <process id="executionAndTaskListenerDelegation">
- <!-- 全局性 -->
- <extensionElements>
- <activiti:executionListener class="com.easyway.activiti.servicetask.FieldInjectedExecutionListener" event="start">
- <activiti:field name="fixedValue" stringValue="Yes, I am " />
- <activiti:field name="dynamicValue" expression="${sentenceGenerator.getSentence()}" />
- </activiti:executionListener>
- </extensionElements>
- <startEvent id="start" />
- <sequenceFlow id="flow1" sourceRef="start" targetRef="userTask" />
- <!-- 调用相关的工作流执行委托监听事件和任务监听事件-->
- <userTask id="userTask" name="Schedule meeting">
- <extensionElements>
- <activiti:executionListener event="start" delegateExpression="${myExecutionListenerBean}" />
- <activiti:taskListener event="create" delegateExpression="${myTaskListenerBean}" />
- </extensionElements>
- </userTask>
- <sequenceFlow id="flow3" sourceRef="userTask" targetRef="userTask3" />
- <!-- 调用相关的工作流执行监听事件-->
- <userTask id="userTask3">
- <extensionElements>
- <activiti:executionListener expression="${myPojo.myMethod(execution.event)}" event="end" />
- </extensionElements>
- </userTask>
- <sequenceFlow id="flow4" sourceRef="userTask3" targetRef="end" />
- <endEvent id="end" />
- </process>
- </definitions>
代码:
- package com.easyway.activiti.servicetask;
- import org.activiti.engine.runtime.ProcessInstance;
- /**
- * 1.全局性的:
- * <!-- 全局性 -->
- <extensionElements>
- <activiti:executionListener class="com.easyway.activiti.servicetask.FieldInjectedExecutionListener" event="start">
- <activiti:field name="fixedValue" stringValue="Yes, I am " />
- <activiti:field name="dynamicValue" expression="${sentenceGenerator.getSentence()}" />
- </activiti:executionListener>
- </extensionElements>
- 2.
- <userTask id="userTask" name="Schedule meeting">
- <extensionElements>
- <activiti:executionListener event="start" delegateExpression="${myExecutionListenerBean}" />
- <activiti:taskListener event="create" delegateExpression="${myTaskListenerBean}" />
- </extensionElements>
- </userTask>
- 3.
- <userTask id="userTask3">
- <extensionElements>
- <activiti:executionListener expression="${myPojo.myMethod(execution.event)}" event="end" />
- </extensionElements>
- </userTask>
- * @author longgangbai
- *
- * 2011-12-20 下午09:30:42
- */
- @ContextConfiguration("classpath:servicetaskSpringTest-context.xml")
- public class ExecutionAndTaskListenerDelegationExpressionTest extends SpringActivitiTestCase {
- @Deployment(resources={"diagrams/userTaskexecutionAndTaskListenerDelegationExpression.bpmn20.xml"})
- public void testExecutionAndTaskListenerDelegationExpression() {
- ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("executionAndTaskListenerDelegation");
- assertEquals("working", runtimeService.getVariable(processInstance.getId(), "executionListenerVar"));
- assertEquals("working", runtimeService.getVariable(processInstance.getId(), "taskListenerVar"));
- }
- }
- package com.easyway.activiti.servicetask;
- import org.activiti.engine.delegate.DelegateExecution;
- /**
- * @author longgangbai
- *
- * 2011-12-20 下午10:55:06
- */
- public class FieldInjectedExecutionListener implements ExecutionListener {
- private Expression fixedValue;
- private Expression dynamicValue;
- /* (non-Javadoc)
- * @see org.activiti.engine.delegate.ExecutionListener#notify(org.activiti.engine.delegate.DelegateExecution)
- */
- @Override
- public void notify(DelegateExecution execution) throws Exception {
- execution.setVariable("var", fixedValue.getValue(execution).toString() + dynamicValue.getValue(execution).toString());
- }
- }
- package com.easyway.activiti.servicetask;
- import org.activiti.engine.delegate.DelegateExecution;
- /**
- *
- * @author longgangbai
- *
- * 2011-12-20 下午09:32:45
- */
- public class ActivitiExecutionListenerBean implements ExecutionListener {
- public void notify(DelegateExecution execution) throws Exception {
- execution.setVariable("executionListenerVar", "working");
- }
- }
0 0
- 工作流UserTask的使用
- 工作流Activiti的学习总结(十)Activiti手动执行的应用(UserTask)
- 13.activiti工作流-用户任务(userTask,即用户操作的任务)
- jbpm工作流的使用
- 使用工作流的目的
- activiti工作流的使用
- Activity工作流元件的使用
- Activiti工作流引擎的使用
- 使用工作流接口对工作流的表进行查询
- 最近使用shark作工作流的体会
- 16.3 使用工作流的用户编程
- Plone的一个简单工作流使用示例
- YAWL工作流软件的介绍和使用
- 通达OA2015-工作流前端触发器的使用
- 工作流中的UEL表达式的使用
- 项目中使用的git工作流
- Activiti 工作流引擎的初步使用
- android 处理多线程 UserTask
- requests 使用代理验证
- MySQL 日常小结
- 为什么java接口中可以有default或者static修饰的方法?
- 一点累积----JAVA(1)----for-each 形式
- day11——python 多线程之线程锁
- 工作流UserTask的使用
- [bzoj1083][并查集][最小生成树]繁忙的都市
- Swift 函数和闭包
- Android线程与进程
- MFC绘图类(CDC,CPaintDC,CClientDC,CWindowDC)简介
- [课本划重点]深入理解jvm-第3章 垃圾收集器与内存分配策略(3)
- 软硬合一燃爆金秋,TCL 9月曲面狂欢节买硬件送1.7亿免费内容
- jQurey 中$.on和$.bind的差别
- 工作流中的UEL表达式的使用