active 工作流
官方api:http://www.mossle.com/docs/activiti/index.html#configuration
官方api(任务的创建以及完结):http://www.mossle.com/docs/activiti/index.html#bpmnFirstExampleUseCase
https://github.com/Activiti/Activiti github地址
https://www.cnblogs.com/maocs/p/5009846.html 环境搭建
https://blog.csdn.net/cs_hnu_scw/article/details/79059965 创建一个简单的工作流
工作流介绍:https://www.cnblogs.com/ginb/p/7624820.html
https://blog.csdn.net/cs_hnu_scw/article/details/79059965 可以参考的创建工作流的的demo
https://www.cnblogs.com/ginb/p/7624820.html 可參考的demo -
可能遇到的问题:
https://www.cnblogs.com/momoweiduan/p/9454140.html
表结构说明:
表名默认以“ACT_”开头,并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:
ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);
ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;
act_re_deployment 部署表(流程部署的时候会往里面插入条数据) act_re_procdef 流程定义表(流程部署的时候会往里面插入条数据) act_ge_bytearray 二进制表(流程部署的时候会往里面插入条数据,存放流程定义相关的部署信息) act_ru_execution 流程实例表(启动流程的时候会往里面插入条数据) act_ru_task 任务表(在跑的流程都在这张表中,启动流程的时候插入条正在跑的流程) act_ge_property:属性数据表存储整个流程引擎级别的数据,初始化表结构时会默认插入三条记录(引擎版本最好不要动到) act_hi_procinst: 运行完流程实例 act_ru_variable: 启动流程时加载添加流程变量 几个和流程相关的对象 Deployment:部署对象,和部署表(act_re_deployment)对应 ProcessDefinition:流程定义对象,和流程定义表(act_re_procdef)对应 ProcessInstance:流程实例对象,和流程实例表(act_ru_execution)对应 Task:任务对象,和任务表(act_ru_task)对应 几个Service对象 RepositoryService:操作部署、流程定义等静态资源信息 RuntimeService:操作流程实例,启动流程实例、查询流程实例、删除流程实例等动态信息 TaskService:操作任务,查询任务、办理任务等和任务相关的信息 HistoryService:操作历史信息的,查询历史信息 IdentityService:操作用户和组 几个Query对象 DeploymentQuery:对应查询部署表(act_re_deployment) ProcessDefinitionQuery:对应查询流程定义表(act_re_procdef) ProcessInstanceQuery:对应查询流程实例表(act_ru_execution) TaskQuery:对应查询任务表(act_ru_task) ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();/ /流程定义查询 ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery(); // 流程定义查询对象,用于查询流程定义表(act_re_procdef) ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine().getTaskService(); // 获取个人的代办信息 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine().getTaskService().complete(taskId );//办理任务(完成任务后,让流程往后移) ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine().getTaskService().setAssignee(taskId, userId); //退回任务(将个人任务变成公共任务) ProcessInstance processInstance=ProcessEngines.getDefaultProcessEngine().getRuntimeService(). createProcessInstanceQuery().processDefinitionId(procId).singleResult(); // 通过流程定义ID获取到流程定义实例对象,验证流程是否结束 processEngine.getRepositoryService().deleteDeployment(deploymentId);//删除部署信息(同时对应操作的数据库表有部署表(act_re_deployment)、流程定义表(act_re_procdef)和二进制表(act_ge_bytearray)) TaskQuery todoTaskQuery = taskService.createTaskQuery().taskAssignee(userCD).active().includeProcessVariables() .orderByTaskCreateTime().desc();//该用户受理的流程任务,根据用户名获得待办任务ID,包括直接指定和通过角色、组指定的待办任务,查询act_ru_task表 repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult();//流程定义 ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) repositoryService. getProcessDefinition(task.getProcessDefinitionId());// 获取流程定义扩展属性
Activiti提供的服务
RepositoryService帮助我们实现流程定义的部署。此服务会处理与流程定义相关的静态数据。
RuntimeService管理 ProcessInstances(当前正在运行的流程)以及流程变量
TaskService会跟踪 UserTasks,需要由用户手动执行的任务是Activiti API的核心。我们可以使用此服务创建任务,声明并完成任务,分配任务的受让人等。
FormService是一项可选服务,它用于定义中开始表单和任务表单。
IdentityService管理用户和组。
HistoryService会跟踪Activiti Engine的历史记录。我们还可以设置不同的历史级别。
ManagementService与元数据相关,在创建应用程序时通常不需要。
DynamicBpmnService帮助我们在不重新部署的情况下更改流程中的任何内容。
流程概念和术语
(1) 一个ProcessDefinition代表的业务流程。它用于定义流程中不同步骤的结构和行为。
(2) 部署流程定义意味着将流程定义加载到Activiti数据库中。
(3) 流程定义主要由BPMN 2.0标准定义,也可以使用Java代码定义它们,定义的所有术语也可用作Java类。
(4) 一旦我们开始运行流程定义,就可以称为一个流程process。
(5) processInstance是ProcessDefinition一个执行实例。
(6) 一个StartEvent与每一个业务流程有关,它表示该流程的切入点,同样,有一个EndEvent表示流程的结束。我们可以定义这些事件的条件。
(7) 开始和结束之间的所有步骤(或元素)称为任务,任务可以是各种类型的。最常用的任务是UserTasks和ServiceTasks。
顾名思义,UserTasks需要由用户手动执行,另一方面,ServiceTasks配置了一段代码,每当执行到达这段代码时,代码将被执行。
SequenceFlows用来连接任务,我们可以通过它将源元素和目标元素连接起来定义一个SequenceFlows;同样,我们还可以在SequenceFlow上定义条件,这样能在流程中创建条件路径。
idea安装acti 流程框架
1.添加依赖
file -->setting->plugins >
如果为空的情况下 使用第二种方法操作
- IDEA官网:https://plugins.jetbrains.com/
- 搜索 actiBPM
- 然后restart
本文来自博客园,作者:diligently,转载请注明原文链接:https://www.cnblogs.com/luo12828-foxmail/p/16964045.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)