工作流activiti的HelloWorld

Posted sdgtxuyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作流activiti的HelloWorld相关的知识,希望对你有一定的参考价值。

接上篇,继续。

一、 在/src/main/resource 下,建立new -> activiti ->activiti diagram 

名字为HelloWorld

然后画图,

空园,是开始,实粗线园,是结束。

中间添加task,user task,

然后添加连接线,connection -> sequence flow

保存,后自动生成png图片。

空白处 点击,在properties 视图中,可以修改流程的id和名字。

点击各个节点,在properties视图,可以修改流程名字,

各个节点,再点击main config 点击 assignee,指定办理人。

二、部署流程

 

ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
    
    @Test
    public void Deploy() {
        RepositoryService repositoryService = this.engine.getRepositoryService();
        repositoryService.createDeployment().name("请假流程")
        .addClasspathResource("HelloWorld.bpmn")
        .addClasspathResource("HelloWorld.png").deploy();
    }

 

三、启动流程

@Test
    public void startProcess() {
        RuntimeService runtimeService = this.engine.getRuntimeService();
        //ProcessInstance startProcessInstanceById = runtimeService.startProcessInstanceById("HelloWorld:4:22504");
        ProcessInstance startProcessInstanceById = runtimeService.startProcessInstanceByKey("HelloWorld");
        System.out.println("startProcessInstanceById:" + startProcessInstanceById.getId());
    }
    

 

四、查找任务

@Test
    public void findProcess() {
        TaskService taskService = this.engine.getTaskService();
        List<Task> list = taskService.createTaskQuery().taskAssignee("张三").list();
        if(list!=null) {
            for (Task task : list) {
                System.out.println("id: "+task.getId());  // id: 27504
                System.out.println("process id" + task.getProcessInstanceId());
                System.out.println("name: "+task.getName());
                System.out.println("代理人: "+task.getAssignee());
                System.out.println("创建时间:"+task.getCreateTime());
                System.out.println("描述:"+task.getDescription());
            }
        }
    }

如果查找不到,看看流程图,是否有缺口,没有闭环

 

五、完成任务

@Test
    public void completeTask() {
        TaskService taskService = this.engine.getTaskService();
        String taskId = "27504";  //在ru_task 表中,可以通过上步查找到。
        taskService.complete(taskId);
    }

 

以上是关于工作流activiti的HelloWorld的主要内容,如果未能解决你的问题,请参考以下文章

Android 返回堆栈管理打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task(代码片

错误记录Android 应用中启动 FlutterActivity 报错 ( have you declared this activity in your AndroidManifest )(代码片

Android Api 27 在 Android 8.0 上出现 Only fullscreen opaque activities can request orientation 的解决情况(代码片

Unity中解决“SetDestination“ can only be called on an active agent that has been placed on a NavMesh(代码片

几行代码快速集成二维码扫描库

几行代码快速集成二维码扫描库