使用工作流接口对工作流的表进行查询

使用工作流接口对工作流的表进行查询

标签(空格分隔): activiti


代码如下:

package procdef;

import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.Test;

public class ProcessDefinitionTest {

/**
 * 获取默认流程引擎实例,会自动读取activiti.cfg.xml文本
 */
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();

/**
 * 查询流程定义,返回流程定义集合,对应表
 * act_re_procdef
 */
@Test
public void list(){
    String processDefinitionKey="myFirstProcess";
    List pdlist=processEngine.getRepositoryService() //获取service
        .createProcessDefinitionQuery() //创建流程定义查询
        .processDefinitionKey(processDefinitionKey)//通过key查询
        .list();//返回一个集合

    for(ProcessDefinition pd: pdlist){
        System.out.println("ID_ "+pd.getId());
        System.out.println("NAME_ "+pd.getName());
        System.out.println("KEY_ "+pd.getKey());
        System.out.println("VERSION_ "+pd.getVersion());
        System.out.println("===========");
    }
}

}

使用上述方法对流程的act_re_procdef表进行查询,结果和mysql workbench中显示一致,如下:
ID_ myFirstProcess:1:4
NAME_ My First process
KEY_ myFirstProcess

VERSION_ 1

ID_ myFirstProcess:2:2504
NAME_ My First process
KEY_ myFirstProcess

VERSION_ 2

ID_ myFirstProcess:3:10004
NAME_ My First process
KEY_ myFirstProcess

VERSION_ 3

ID_ myFirstProcess:4:12504
NAME_ My First process
KEY_ myFirstProcess

VERSION_ 4

此外也可以通过流程定义ID来查询某个流程定义,具体代码如下:
/**
* 通过id来查询某个流程定义
*/
@Test
public void getById(){

    String processDefinitionId="myFirstProcess:4:12504";
    ProcessDefinition pd=processEngine.getRepositoryService() //获取service
        .createProcessDefinitionQuery() //创建流程定义查询
        .processDefinitionId(processDefinitionId)//通过id查询
        .singleResult();

    System.out.println("ID_ "+pd.getId());
    System.out.println("NAME_ "+pd.getName());
    System.out.println("KEY_ "+pd.getKey());
    System.out.println("VERSION_ "+pd.getVersion());
}

和之前的区别在于使用工作流接口的返回值不是list而是单个值。输出如下:
ID_ myFirstProcess:4:12504
NAME_ My First process
KEY_ myFirstProcess
VERSION_ 4

除了上面介绍的两个方法外,还有其他丰富的接口供我们调用,来进行数据库的查询操作(如排序,模糊查询等)。

你可能感兴趣的:(activiti-工作流)