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
active 工作流相关推荐
- maximo 工作流实现代码
要实现效果:已发出的工作流,谁都不可以修改流程里的单子(可以查看,不可以保存),除了特殊权限的人(maxadmin),或状态为审核不通过(即,返回给申请人):已发出且未结束的工作流,审批人(节点接收人 ...
- 浅谈工作流引擎的几个关键因素
工作流引擎的定义已经众所周知,可是解释却五花八门的,想想这也正常,因为用于状态机的工作流引擎和业务工作流引擎分析模式本身就有很大的不同.业务工作流基于不同文化解释也不同. 状态机工作流适用于根据各种状 ...
- 工作流引擎Activiti使用总结
1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用 ...
- activiti 工作流_springboot+activiti+angular 集成activiti工作流实现,源码分享
springboot+activiti+angular 这是spring boot框架集成activiti工作流实现,采用目前流行的restful api接口调用,前端使用angular js框架实现 ...
- jbpm_工作流框架笔记
1. 工作流基础 1.1. 工作流相关概念 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种 ...
- 有关“优秀工作流引擎”的评价
网上到处都有一篇被称为<优秀的工作流殷勤的144个标准>的文章,文章写的很全面,但其对实际应用的满足程度还是需要改进的,我在此抛砖引玉的对其做了写评价和扩展,在我的<面向业务开发应用 ...
- 通过LDAP验证Active Directory服务
http://www.cnblogs.com/icuit/archive/2010/06/10/1755575.html 这一周做LDAP做得头都大了.现在终于有点头绪了,记录一下,以备后用. LDA ...
- Activiti工作流引擎使用
Activiti工作流引擎使用 1.简单介工作流引擎与Activiti 对于工作流引擎的解释请参考百度百科:工作流引擎 1.1 我与工作流引擎 在第一家公司工作的时候主要任务就是开发OA系统,当然基本 ...
- Oracle 自己主动诊断资料档案库 (ADR)、自己主动诊断工作流、ADRCI工具
1.自己主动诊断工作流: 通过一个始终处于打开状态的内存中跟踪工具,数据库组件能够在第一次出现严重错误故障时捕获诊断数据.系统将自己主动维护一个称为"自己主动诊断资料档案库"的特殊 ...
最新文章
- Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
- ##API(二)————包装类
- 面试官:数据量大的情况下分页查询很慢,有什么优化方案?
- java emmt插件_Emmet缩写语法
- docker命令总结(二)
- u 只读 盘 突然_u盘变成只读方式了,怎么办
- 常用9款在线作图工具,总有一款适合你!
- On the burstiness of visual elements
- 一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot
- 什么是光开光?它有什么作用?
- 递归求2+2+22+222+............
- 软件模块化定制将造成传统软件消失?
- Ubuntu系统安装在移动固态硬盘,实现在不同电脑即插即用
- 英文文章汇总+翻译小亮点
- matlab中m文件的好处,请教matlab中M文件问题?
- php邀请码系统源码,Dede织梦生成会员注册邀请码插件 - 猿码网
- nginx鉴权之后查看pdf报错未能加载pdf文档
- 数学图形(1.16) 笛卡儿叶形线
- spring aop(面向切面编程)
- 分析网站原始访问日志
热门文章
- ABC Storage私有云全闪对象存储解决方案,AI时代数字经济的核动力
- 理光无线打印服务器初始ip,理光网络打印机服务器设置
- 计算机专业教育教学理论,【计算机教育论文】谈中职院校计算机专业理论教学策略(共2887字)...
- DC/DC升压IC TY3001同步升压IC
- 前端canvas动画如何转成mp4视频
- html5讲义,HTML5(H5)疯狂讲义
- java人员安排表_Java实现 LeetCode 732 我的日程安排表 III(暴力 || 二叉树)
- 主成分分析,聚类分析,因子分析的基本思想以及他们各自的优缺点
- Python 淘宝商品价格爬取
- 部署Zabbix集中监控系统