Activiti学习之HelloWorld程序

流程图

部署流程定义

/** * 部署流程定义 */
@Test
public void deploymentProcessDefinition() {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的Service
            .createDeployment() // 创建一个部署对象
            .name("activiti").addClasspathResource("helloworld.bpmn")// 从classpath的资源中加载
            .addClasspathResource("helloworld.png").deploy(); // 完成部署

    System.out.println("ID: " + deployment.getId());
    System.out.println("name: " + deployment.getName());
}

这里使用 RepositoryService 部署流程定义 addClasspathResource表示从类路径下加载资源文件,一次只能加载一个文件

启动流程实例

/** * 启动流程实例 */
@Test
public void startProcessInstance() {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    String processDefinitionKey = "helloworld";
    ProcessInstance pi = processEngine.getRuntimeService()
            .startProcessInstanceByKey(processDefinitionKey);

    System.out.println("流程实例ID:" + pi.getId());
    System.out.println("流程定义ID:" + pi.getProcessDefinitionId());
}

这里使用 RuntimeService 启动流程实例

查看我的个人任务

/** * 查询当前人的个人认为 */
@Test
public void findMyPersonTask() {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    String assignee = "张三";
    List<Task> list = processEngine.getTaskService().createTaskQuery()
            .taskAssignee(assignee).list();
    for (Task task : list) {
        System.out.println(task.getId());
        System.out.println(task.getName());
        System.out.println(task.getCreateTime());
        System.out.println(task.getAssignee());
    }
}

这里使用 TaskService 完成任务的查询

完成我的个人任务

/** * 完成我的任务 */
@Test
public void completeMyPersonTask() {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    String taskId = "104";
    processEngine.getTaskService().complete(taskId);

    System.out.println("完成任务:" + taskId);
}

这里使用 TaskService 完成任务的办理

作者:itmyhome

你可能感兴趣的:(Activiti)