官方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
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐