首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

工作流UserTask的应用

2012-08-01 
工作流UserTask的使用工作流流程图:??工作流配置:?xml version1.0 encodingUTF-8?definitions id

工作流UserTask的使用

工作流流程图:

?

?

工作流配置:

<?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 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 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) */@Overridepublic 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");  }}

?


多谢夸奖,略知一二。

热点排行