activiti工作流学习

    工作(Workflow),就是业务过程的部分或整体在计算机应用环境下的自动化,它主要解决的是使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现

    说简单点就是,工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完

 

工作流核心

activiti.cfg.xmlActiviti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数

5种数据库表

Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。

ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。

ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。

ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。

ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。

如以下所示:

表结构: 
1:资源库流程规则表 
1) act_re_deployment 部署信息表 
2) act_re_model
流程设计模型部署表 
3) act_re_procdef
流程定义数据表 
2:运行时数据库表 
1) act_ru_execution 运行时流程执行实例表 
2) act_ru_identitylink
运行时流程人员表,主要存储任务节点与参与者的相关信息 
3) act_ru_task
运行时任务节点表 
4) act_ru_variable
运行时流程变量数据表 
3:历史数据库表 
1) act_hi_actinst
历史节点表 
2) act_hi_attachment
历史附件表 
3) act_ih_comment
历史意见表 
4) act_hi_identitylink
历史流程人员表 
5) act_hi_detail
历史详情表,提供历史变量的查询 
6) act_hi_procinst
历史流程实例表 
7) act_hi_taskinst
历史任务实例表 
8) act_hi_varinst
历史变量表 
4:组织机构表 
1) act_id_group 用户组信息表 
2) act_id_info
用户扩展信息表 
3) act_id_membership
用户与用户组对应信息表 
4) act_id_user
用户信息表 
这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足 
5:通用数据表 
1) act_ge_bytearray
二进制数据表 
2) act_ge_property
属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录, 

详细表结构涉及参考我的另一篇播客:

https://blog.csdn.net/bird_tp/article/details/94554684

ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运

所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量

ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();

调用ProcessEnginesgetDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

可以产生RepositoryServiceRuntimeServiceTaskServiceHistoryService

 

RepositoryService

Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片。

产生方式processEngine.getRepositoryService()

功能:

   可以产生DeploymentBuilder,用来定义流程部署的相关参数

     repositoryService.createDeployment();

   删除流程定义

      repositoryService.deleteDeployment(deploymentId);

RuntimeService

activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。

如:

启动流程

processEngine.getRuntimeService.startProcessInstanceByKey(processDefinitionKey);

创建流程查询实例

processEngine.getRuntimeService().createProcessInstanceQuery();

TaskService

activiti的任务服务类。可以从这个类中获取任务的信息

   如

   创建任务查询对象                    processEngine.getTaskService().createTaskQuery()

    完成任务

processEngine.getTaskService().complete(taskId);

 

HistoryService

•activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息

    如:

     创建历史流程查询实例

          processEngine.getHistoryService().createHistoricProcessInstanceQuery()

          创建历史人物查询实例

           historyService.createHistoricTaskInstanceQuery()

BPMN

业务流程建模与标注(Business Process Model and NotationBPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram

Eclips安装插件

    Name: Activiti BPMN 2.0 designer

    Location: http://activiti.org/designer/update/

关于activity的简单学习,我写了一个demo,gitup地址如下,可以下载下来参考下

演示helloWord入门程序  HelloWord

获取流程引擎对象   GetProcessEngineTest

获取流程定义  ProcessDefinitionTest

流程变量  VariableTest

历史任务,历史流程查询  HistoryServiceTest

线  ActivitiLineTset

网关  ExclusiveGateWayTest

个人任务  UserTaskTest

地址如下:

https://github.com/TPwakak/TPTest

 

具体学习播客可以参考:

https://blog.csdn.net/ochangwen/article/category/6311051

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值