开始结束元素事件监听器:
ExecutionListener(event=start,end)
任务元素事件监听器:
TaskListener(event=create,assignment,complete,all)
ExecutionListener(event=start,end)
监听器类型:
create: 任务创建且所有任务属性设置完全之后触发。
assignment: 任务分配给某个班里人之后触发,并在create之后。
complete: 任务完成时触发,在运行时任务数据被删除之前触发(act_ru_task表数据清之前)。
<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>
在eclipse activiti插件中设置视图如下:
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>
持续更新。。。。