Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

       ProcessService对于我们程序员来说,主要是实现业务流程的开启、流程模版与实例的删除、流程模版与变量的获取等操作;而TaskService则提供了大量针对人工任务的操作。在这两个接口当中,我们为每个方法都添加了详细的注释,使用时查看注释应该就可以明确具体用法。

Note
title关于UFLO2的任务状态

在UFLO2当中,对于已完成的任务或跳转、退回的任务,不会被立即删除,而是还会存在运行的任务表中,只是他们的状态(TaskState)发生的相应的变化,在流程实例运行到结束节点时,才会将这些任务从运行的任务表中删除。所以如果我们通过TaskService的createTaskQuery方法创建一个TaskQuery对象,要对任务进行查询时需要注意任务的状态,也就是需要TaskQuery添加限制任务状态的方法(addTaskState),多个状态采“或”关系来连接,比如如果我们要自己定义待办任务列表页面,在取待办任务列表时就需要为TaskQuery添加下面这些任务状态限制:

Code Block
title查询待办时,添加任务状态限制
linenumberstrue
languagejava
TaskQuery query=taskService.createTaskQuery();
query.addTaskState(TaskState.Created);
query.addTaskState(TaskState.InProgress);
query.addTaskState(TaskState.Ready);
query.addTaskState(TaskState.Suspended);
query.addTaskState(TaskState.Reserved);

这个TaskQuery只会帮我们取到上述五种状态的任务,这五种状态的任务才是待办任务。

       在项目当中,如果我们需要查询流程流转相关历史信息,那么可以通过HistoryService来实现。在HistoryService当中提供了大量的与流程相关的历史信息查询功能,比如根据流程实例的ID查询当前实例流转过程当中经过了哪些流程节点,或者根据流程实例查询当前实例流转时产生了哪些人工任务,这些人工任务在处理时处理人是谁,所有者是谁,花费多长时间等。同样HistoryService也配置在Spring当中,其bean的ID为“uflo.historyService”,我们的业务系统可根据需要调用这个HistoryService查询所需要的历史流程信息。HistoryService接口详细描述如下:

Code Block
titleHistoryService接口源码
linenumberstrue
languagejava
package com.bstek.uflo.service;
import java.util.List;
import com.bstek.uflo.model.HistoryActivity;
import com.bstek.uflo.model.HistoryProcessInstance;
import com.bstek.uflo.model.HistoryTask;
import com.bstek.uflo.model.HistoryVariable;
import com.bstek.uflo.query.HistoryProcessInstanceQuery;
import com.bstek.uflo.query.HistoryProcessVariableQuery;
import com.bstek.uflo.query.HistoryTaskQuery;
/**
 * @author Jacky.gao
 * @since 2013年8月15日
 */
public interface HistoryService {
 public static final String BEAN_ID="uflo.historyService";
 /**
  * 根据流程实例ID,返回当前实例产生的所有历史节点的集合
  * @param processInstanceId 流程实例ID
  * @return 返回HistoryActivity集合
  */
 List<HistoryActivity> getHistoryActivitysByProcesssInstanceId(long processInstanceId);
 /**
  * 根据历史流程实例ID,返回当前历史流程实例产生的所有历史节点的集合
  * @param historyProcessInstanceId 历史流程实例ID
  * @return 返回HistoryActivity集合
  */
 List<HistoryActivity> getHistoryActivitysByHistoryProcesssInstanceId(long historyProcessInstanceId);
 /**
  * 根据流程模版ID,返回所有的历史流程实例集合
  * @param processId 流程模版ID
  * @return 返回所有的历史流程实例集合
  */
 List<HistoryProcessInstance> getHistoryProcessInstances(long processId);
 /**
  * 根据流程实例ID,返回的对应的历史流程实例
  * @param processInstanceId 流程实例ID
  * @return 返回的对应的历史流程实例
  */
 HistoryProcessInstance getHistoryProcessInstance(long processInstanceId);
 /**
  * 根据流程实例ID,返回对应的历史任务集合
  * @param processInstanceId 流程实例ID
  * @return 返回历史任务集合
  */
 List<HistoryTask> getHistoryTasks(long processInstanceId);
 /**
  * 根据任务ID,返回对应的历史任务
  * @param taskId 任务ID
  * @return 返回历史任务
  */
 HistoryTask getHistoryTask(long taskId);
 /**
  * @return 返回创建的历史任务查询对象
  */
 HistoryTaskQuery createHistoryTaskQuery();
 /**
  * @return 返回创建创建的历史流程实例查询对象
  */
 HistoryProcessInstanceQuery createHistoryProcessInstanceQuery();
 /**
  * @return 返回创建的历史流程实例查询对象
  */
 HistoryProcessVariableQuery createHistoryProcessVariableQuery();
 /**
  * 根据历史流程实例ID,返回所有的历史流程变量
  * @param historyProcessInstanceId 历史流程实例ID
  * @return 返回所有的历史流程变量
  */
 List<HistoryVariable> getHistoryVariables(long historyProcessInstanceId);
 /**
  * 根据历史流程实例ID和流程变量名,返回对应的历史流程变量对象
  * @param historyProcessInstanceId 历史流程实例ID
  * @param key 流程变量名字
  * @return 返回对应的历史流程变量对象
  */
 HistoryVariable getHistoryVariable(long historyProcessInstanceId,String key);
}

...