前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(一)activiti学习笔记

(一)activiti学习笔记

作者头像
全栈程序员站长
发布2022-06-30 11:02:38
3580
发布2022-06-30 11:02:38
举报
文章被收录于专栏:全栈程序员必看

#删除数据库 DROP DATABASE activiti #创建数据库 CREATE DATABASE activiti DEFAULT CHARACTER SET utf8 ; #使用数据库 USE activiti; #查看数据库表 SHOW TABLES;

单机版学习activiti-API 1.环境搭建 2.流程图设计 3.流程部署

一、设计流程图 1.开始事件 结束事件 2.任务task 设置代办人: assigne

代码语言:javascript
复制
	流程图的id:就是流程的key

3.activiti表达式${userName} 4.activiti的监听器

ProcessEnginer 流程引擎对象[核心对象]

二、发布流程图 发布流程图,也可以叫着流程部署

单文件部署 、 zip 压缩部署文件

deployment 部署

RepositoryService 仓库服务

Deployment 部署对象.

流程取名字:helloworld入门程序 流程图中设置的ID值,可以理解成流程的key

部署流程,activiti操作的表: act_re_deployment 部署对象表,存放流程定义的显示名和部署时间,没部署一次增加一条记录. 其中的’name’字段的值,就是我们在部署流程的时候设置的name的值

act_re_procdef 流程定义表 key_ 就是我们画流程图的时候设置流程图的ID的值 act_ge_bytearray 资源文件表

代码: /**

相关名称:

1.相关概念: 1.流程定义—-创建.bpmn流程文件 使用 activiti 流程建模工具(activity-designer)定义业务流程(.bpmn 文件) 。 .bpmn 文件就是业务流程定义文件,通过 xml 定义业务流程 2.流程定义部署 —–好比java中创建一个类 使用 activiti 提供的 api 向 activiti 中部署.bpmn 文件

代码语言:javascript
复制
3.启动流程实例----->好比java中创建一个对象

	启动一个流程实例表示开始一次业务流程的运行,比如员工请假流程部署完成,如果张三要请
	假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影
	响,就好比定义一个 java 类,实例化两个对象一样,部署的流程就好比 java 类,启动一个流程
	实例就好比 new 一个 java 对象。

三、启动流程实例

流程定义的key来启动一个流程【流程定义的key就是我们画流程图,给流程图设置的ID的值,在act_re_procdef表中字段’key_’】

ProcessEngine对象获取RuntimeService服务对象,得到一个ProcessInstance实例对象.

启动一个流程实例会涉及的表: act_hi_procinst 流程实例历史表 【这个表的ID 就是流程当前流程实例的ID】

act_ru_execution 流程实例的执行对象表 [这个表中的proc_inst_id 字段记录流程实例ID, 同时有一个字段很关键business_key,和我们也为进行关联,从而业务和工作流进行关联]

act_ru_task 当前活动(节点)任务表。默认act_ru_task 和 act_ru_execution 是一对一的关系

/**

三、查看任务

TaskService 任务对象 根据代表人查询当前个人任务

任务返回可以 是集合 或者是单个任务. 还有根据条件查询、排序等操作

操作的表:act_re_task表 /**

}

任务ID:2505 流程定义ID:helloworld:1:4 流程实例ID:2501 代办人:小乔 执行对象ID:2502 任务创建时间:Sat Aug 08 10:07:18 CST 2020 任务名称:提交申请

/*

流程实例ID 查看这个表:act_hi_procinst 流程实例历史表 中的ID字段 或者act_run_execution 流程实例的执行对象表中的proc_inst_id 字段 或者act_ru_task 当前活动(节点)任务表 中proc_inst_id

流程定义ID: 查看 act_re_procdef表ID

流程定义的key: 查看 act_re_procdef表key ,其实就是画流程图给流程图设置的全局ID的值。

任务ID:查看act_ru_task表中的ID */

四、完成任务 根据任务ID 完成任务

/**

  • 完成任务 */ public class Demo04 { public static void main(String[] args) { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); processEngine.getTaskService() .complete(“7502”); System.out.println(“完成任务~~~~~~~~~~~~~~~~~~~~~~~~~~”); } }

act_ru_task` 这个表只记录当前任务。当前任务完成就会删除,然后记录下一次任务作为当前任务。

查看历史任务 act_hi_task 历史任务表记录任务执行情况

/*

act_re_deployment 部署对象表,存放流程定义的显示名和部署时间,没部署一次增加一条记录. 其中的’name’字段的值,就是我们在部署流程的时候设置的name的值 act_re_procdef 流程定义表 key_ 就是我们画流程图的时候设置流程图的ID的值 act_ge_bytearray */

/*

act_hi_procinst 流程实例历史表

act_ru_execution 流程实例的执行对象表

act_ru_task 当前活动(节点)任务表。默认act_ru_task 和 act_ru_execution 是一对一的关系

act_hi_task 历史任务表记录任务执行情况

*/

RepositoryService 管理流程定义 RuntimeService 执行管理、包括启动、推进、删除流程实例等操作 TaskService 任务管理器

HistoryService 历史管理(执行完成的数据的管理) IdentityService 组织机构管理 FormService 一个可选服务,任务表单管理

五、zip打包部署流程图文件 /**

部署一个流程会涉及的表:

*/ public class ActivitiDeloyement { public static void main(String[] args) { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

代码语言:javascript
复制
    RepositoryService repositoryService = processEngine.getRepositoryService();

    //通过zip压缩包文件进行部署
   /* InputStream inputStream = ActivitiDeloyement.class
            .getClassLoader().getResourceAsStream("holiday.zip");
    ZipInputStream zipInputStream = new ZipInputStream(inputStream);

    repositoryService.createDeployment().addZipInputStream(zipInputStream).name("请假流程").deploy();*/
    Deployment deployment = repositoryService.createDeployment()
                            .addClasspathResource("diagrams/holiday.bpmn")
                            .addClasspathResource("diagrams/holiday.png")
                            .name("请假流程").
                            deploy();

    System.out.println("流程部署id:"+deployment.getId());
    System.out.println("流程部署名称:"+deployment.getName());
}

}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100741.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档