Activity工作流引擎学习笔记(二)

Activity工作流引擎学习笔记(二)核心APIProcessEngine说明:1) 在Activiti中最核心的类,其他的类都是由他而来。2) 产生方式:在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。3) 可以产生R

大家好,又见面了,我是你们的朋友全栈君。

核心API

ProcessEngine

说明:

1) 在Activiti中最核心的类,其他的类都是由他而来。

2) 产生方式:

在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

3) 可以产生RepositoryService

 

4) 可以产生RuntimeService

 

5) 可以产生TaskService

 

各个Service的作用:

RepositoryService

管理流程定义

RuntimeService

执行管理,包括启动、推进、删除流程实例等操作

TaskService

任务管理

HistoryService

历史管理(执行完的数据的管理)

IdentityService

组织机构管理

FormService

一个可选服务,任务表单管理

ManagerService

 

RepositoryService

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

1) 产生方式

 

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

 

3) 删除流程定义

 

RuntimeService

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

TaskService

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

HistoryService

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

ProcessDefinition

流程定义类。可以从这里获得资源文件等。

ProcessInstance

代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。

Execution

Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution就是同ProcessInstance流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution

如图为ProcessInstance的源代码:

Activity工作流引擎学习笔记(二)

从源代码中可以看出ProcessInstance就是Execution。但在现实意义上有所区别:

Activity工作流引擎学习笔记(二)

在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的

Activity工作流引擎学习笔记(二)

这个例子有一个特点:wire money(汇钱)和archive(存档)是并发执行的。这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。

总结:

* 一个流程中,执行对象可以存在多个,但是流程实例只能有一个。

* 当流程按照规则只执行一次的时候,那么流程实例就是执行对象。

 

HelloWorld程序(模拟流程的执行)

流程图:

//待续。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux查看80端口占用情况_linux查看已使用端口

    linux查看80端口占用情况_linux查看已使用端口前言平常使用linux,我们经常需要查看哪个服务占用了哪个端口,接下来就为大家介绍了2种Linux查看端口占用情况可以使用lsof和netstat命令。1.lsof-i:端口号用

    2022年7月28日
    3
  • 【动画教程】真封神南极服务端2.52架设第四集「建议收藏」

    【动画教程】真封神南极服务端2.52架设第四集「建议收藏」官方网站www.zfs2014.com动画名称:真封神南极服务端2.52架设第四集主讲人:diablo2208教程下载地址:http://pan.baidu.com/s/1bnf9EkZ

    2022年7月24日
    12
  • pytorch转tensorflow_语义分割样本不均衡

    pytorch转tensorflow_语义分割样本不均衡憨批的语义分割重制版7——TF2搭建自己的Unet语义分割平台注意事项学习前言什么是Unet模型代码下载Unet实现思路一、预测部分1、主干网络介绍2、加强特征提取结构3、利用特征获得预测结果二、训练部分1、训练文件详解2、LOSS解析训练自己的Unet模型注意事项这是重新构建了的Unet语义分割网络,主要是文件框架上的构建,还有代码的实现,和之前的语义分割网络相比,更加完整也更清晰一些。建议还是学习这个版本的Unet。学习前言还是快乐的pytorch人。什么是Unet模型Unet是一个优秀

    2022年8月21日
    9
  • 遗传算法的优化算法_粒子群算法和遗传算法的区别

    遗传算法的优化算法_粒子群算法和遗传算法的区别与遗传算法的第一次接触遗传算法的基本概念基本定义遗传算法的基本流程遗传算法过程中的具体操作参数的编码二进制编码Gray编码实数编码有序编码初始群体的设定适应度函数的计算遗传操作设计选择selection交叉crossover变异mutation控制参数的设定求解优化问题的实例问题描述问题分析算法设计个体编码适应值函数选择策略杂交算子变异算子参数设置

    2025年9月16日
    5
  • 安装完Ubuntu 15.04桌面后要做的15件事

    安装完Ubuntu 15.04桌面后要做的15件事

    2022年3月2日
    50
  • linux修改ftp密码_linux系统sftp使用方法

    linux修改ftp密码_linux系统sftp使用方法需求描述:  今天一个同事,遇到个问题,程序连接sftp服务器连接不上,问我端口号是多少,  我想了一下是21还是22,所以就做了测试,发现sftp默认的连接端口号是22,  在此做下记录.操作过程:1.使用sftp默认的端口号进行登录aiuap_cj@cuchc802:~>sftpaisftp@10.124.163.133aisftp@10.124.163….

    2022年9月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号