Activiti总结内容
常用方法汇总
sequenceFlow id='test' sourceRef='' targetRef=''
serviceTask id='serviceTaskId' activiti:expression='#{beanName.method}'
自动调用beanName对应的bean的method方法
<bean id='beanName' class='com.cn.xwL.Teyst'>
这个bean还需要在ProcessEngineConfiguration中进行配置
--部署一个流程图
repositoryService.createDeploy().addClasspathResource(resourceName).deploy();
--开启一个流程
runtimeService.startProcessInstanceByKey("processId");
--获得一个流程实例也是用runtimeService
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(findTaskById(taskId).getProcessInstanceId())
.singleResult();
-- Task对象可以转化成TaskEntity
TaskEntity taskEntity = (TaskEntity) taskService.createTaskQuery().taskId(taskId).singleResult();
-- 节点ID
String activityId = taskEntity.getTaskDefinitionKey();
-- 流程定义ID
String definitionId = taskEntity.getProcessDefinitionId();
-- 取得 流程定义对象
ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService)
.getDeployedProcessDefinition(taskEntity.getProcessDefinitionId());
-- 获得所有节点定义
List<ActivityImpl> activityList = processDefinition.getActivities();
-- 根据节点ID,获取对应的活动节点
ActivityImpl activityImpl = ((ProcessDefinitionImpl) processDefinition).findActivity(activityId);
-- 获得某个节点流出的顺序流信
List<PvmTransition> pvmTransitionList = activityImpl.getOutgoingTransitions();
--获得一个任务
Task task = taskService.createTaskQuery().singleResult();
--获得表单信息
StartFormData sfd = FormService.getStartFormData(processDefinitionId) ;
TaskFormData tfd = FormService.getTaskFormData(taskId) ;
--可以获得配置好的表单地址
String formKey = tfd.getFormKey();
-- 查询taskId节点发起的任务集合
List<Task> tasks = taskService.createTaskQuery().parentTaskId(taskId)
.taskDescription("jointProcess").list();
--参数集合 并完成任务
HashMap<String, Object> variables = new HashMap<String, Object>();
taskService.complete(taskId,variables);
--查询流程实例中已经完成的任务集合 按完成时间降序排序
List<HistoricActivityInstance> historicActivityInstances = historyService
.createHistoricActivityInstanceQuery().activityType("userTask")
.processInstanceId(processInstance.getId())
.activityId(activityId).finished()
.orderByHistoricActivityInstanceEndTime().desc().list();
顺序流 sequenceFlow sourceRef targetRef
分支 排他分支 带X的菱形 不带X的菱形 都可以表示排他分支
<exclusiveGateway id='exclusive'>
<parallelGateway id='fork'> 都是有两个并行分支 分别表示拆分和合并 会签就是并行分支
<parallelGateway id='join'>
<sequenceFlow id='' sourceRef='exclusive' targetRef=''>
<conditionExpression xsi:type="tFormalExpression">${input==1}</conditionExpression> input表示从上一个节点所传的参数
</sequenceFlow>
<userTask id='' activiti:assignee="user1"> assignee是直接分配给某人 而 <userTask id=='' activiti:candidateUsers='user1,user2'> 是指定user1和user2为候选人两个都可以完成任务
activiti:candidateGroups指定任务候选组
同样可以在任务上面添加任务监听器 <activiti:taskListener event='create' class='XXX'>
public class XXX implements TaskListener{
public void notify(DelegateTask delegateTask){
delegateTask.setAssignee("");
delegateTask.setCandidateUsers();
}
}
java服务任务
serviceTask (用来调用外部类) 必须实现JavaDelegate或ActivitiBehavior类
<serviceTask id='' name='' activiti:class="xx.xx.xx.XXX" 或 activiti:delegateExpression="${beanName}">
exclusiveGateway
parallelGateway
指定人和候选人有区别 指定就是叫确定某个人
public class MyBehavior implements ActivityBehavior{
public void execute(ActivitiExecution execution){
String varValue = (String)execution.getVariable("var");
PvmTransition transition = execution.getActivity().findOutgoingTransition("name");
-- 执行某个顺序流
execution.take(transition);
}
}
任务监听器只能适用与用户任务(userTask) <extensionElements>的标签中
<activiti:taskListener event='' class=''>
event属性必须要有 选项有 create assignment complete
子流程的所有信息都必须在subProcess标签中实现
可以通过callActiviti标签把子流程嵌入到相应的流程当中
表单数据(FormData) 分别包括
StartFormData sfd = FormService.getStartFormData()
和
TaskFormData tfd = FormService.getTaskFormData(taskid);
外部表单可以通过<userTask activiti:formKey='xxxx.html' 来定义
可以通过TaskFormData.getFormKey()方法来获取
历史相关对象
HistoricProcessInstance --
流程实例历史信息
HistoricActivitiInstance --
节点实例历史信息(包括任务实例)
HistoricTaskInstance --
任务实例历史信息
HistoricDetails --
流程中所使用的变量信息
历史信息配置
<bean id='processEngineConfiguration'>
<property name='history' value='audit'/>
</bean>
Activiti 学习总结内容
猜你喜欢
转载自forlan.iteye.com/blog/2335337
今日推荐
周排行