服务热线
135-6963-3175
开始结束事件为ExecutionListener(event=start,end)
任务事件可以为TaskListener(event=create,assignment,complete,all)或ExecutionListener(event=start,end)
监听器类型:
create: 任务创建且所有任务属性设置完全之后触发。
assignment: 任务分配给某个班里人之后触发,并在create之后。
complete: 任务完成时触发,在运行时任务数据被删除之前触发(act_ru_task表数据清之前)。
xml表现形式
<activiti:executionListener event="start" class="com.xx.xx"/> <activiti:executionListener event="start" expression="${name}"/> <userTask id="task1" name="用户任务"> <extensionElements> <activiti:taskListener event="complete" class="com.task.listener.taskForUserTaskComplete"/> </extensionElements> </userTask> <activiti:taskListener event="create" expression="#{expression}"></activiti:taskListener> <activiti:taskListener event="create" delegateExpression="${someJavaDelegateBean}"></activiti:taskListener>
1、Class
TaskListener
public class MyTaskListener implements TaskListener{ private static final long serialVersionUID = 1L; public void notify(DelegateTask delegateTask) { // TODOAuto-generated method stub delegateTask.setAssignee("赵六"); // 指定办理人 } }
ExecutionListener:
public class ExectuionListenerDemoimplements Serializable, ExecutionListener { privatestatic final long serialVersionUID = 8513750196548027535L; @Override publicvoid notify(DelegateExecution execution) throws Exception { System.out.println("流程监听器"); } }
2、Expression
通过表达式来实现监听执行,可指定调用的方法。
<activiti:taskListener event="create" expression="#{myService.doSomething()}"></activiti:taskListener>
会调用myService的doSomething方法。
3、Delegate expression
引用一个JavaDelegate来调用java bean。
delegateExpression是引用一个JavaDelegate实现bean,具体的操作在这个bean中定义,默认一个execute方法。
比如
@Service("someJavaDelegateBean"); public class ToUppercase implements JavaDelegate { public void execute(DelegateExecution execution) throws Exception { String var = (String) execution.getVariable("input"); var = var.toUpperCase(); execution.setVariable("input", var); } }
<activiti:taskListener event="create" delegateExpression="${someJavaDelegateBean}"></activiti:taskListener>
4.Alfresco execution script: 外部定义的执行脚本
5.Alfresco task script:外部定义的任务脚本
Fields: 值域
可以作为参数值传给上面指定的执行对象。
Field Name: 值域名称
String Value:值域值
Expression:值域表达式
<activiti:field name="text1"> <activiti:expression>${genderBean.getGenderString(gender)}</activiti:expression> </activiti:field>