认识工作流-Activiti详细说明

阅读文本大概需要 5 分钟。

一、Activiti详细说明

首先给大家介绍一下BPMN2规范的分类分为几个部分。

1启动与结束事件、2顺序流、3任务、4网关、5子流程、6边界事件、7中间事件、8监听器

一、启动事件与结束事件

启动事件与结束事件作为BPMN规范中的重要组成部分。它分别负责一个流程的开始和结束。一个完整的流程两大类,启动事件与结束事件。每一个大类又可以根据功能不同分为多个小类。

1.1 启动事件

每个流程总是以启动事件作为入口,启动事件在BPMN规范中以一个细线圆形图形表示。但启动事件又可分为三种类型:空启动事件、定时启动事件、异常启动事件。启动事件都是“捕获型”的。需要等待第三方触发后才可以启动。在Activiti中可以通过调用API触发启动事件。

1.2 结束事件

流程结束事件表示流程或者子流程的结束和启动事件的触发型不同的是结束事件是抛出型的。也就是当流程执行到结束事件时会抛出一个执行结果。

流程结束事件也可以分为几个类型:空结束事件、异常结束事件、取消结束。

二、顺序流

顺序流程是两个模型之间的连接,可以把顺序流比作人体的动脉。在BPMN中是用连接不同的活动和事件时使用的。顺序流可以分为标准顺序流和条件顺序流。

三、任务

根据任务不同可以分为:用户任务、脚本任务、WebService任务、业务规则任务、邮件任务、Mule任务、Camel任务、手动任务、JavaService任务、SHELL任务。

【用户任务】:主要是说明任务是人来参与,处理人、优先级等。

四、网关

网关用于控制流程走向。根据 功能不同可以划分为以下4种网关:排他网关、并行网关、包容网关、事件网关

五、子流程

在实际的业务流程中,流程有的会比较复杂。当业务流程处理环节多,繁杂时,可以用子流程来分解。就像我们程序员最熟悉的子函数一样,把处理同一事项的归纳成一个子函数,子函数可以在多个场景多次调用,也可以在同一场景中反复调用。用子流程来分解大流程,作用和子函数类似。将功能处理过程比较独立或者单一的归纳成一个子流程。子流程本身是一个完整的处理过程,可以单独启动执行,也可以嵌入到其它流程中使用。

六、监听器

业务流程监控(business process monitoring)是指对一个或一系列活动进行实时监督的过程,这些活动通常是为了完成企业特定目标而建立的。业务流程监控(business process monitoring)是指对一个或一系列活动进行实时监督的过程,这些活动通常是为了完成企业特定目标而建立的。业务流程监控通常与业务流程可视化(business process visibility)相互协作,并与业务活动监控(business activity monitoring)共同帮助管理者了解企业内部的重要交易或流程。作为业务流程管理(business process management)的一部分,业务流程监控可以帮助企业衡量和分析业务流程的性能,通过数据找出关键业务问题,这样可以改善业务流程的速度、质量以及效率。

总结

本节整体了解BPMN规范和activiti对其有哪些扩展。主要是理解一下工作流中的主要组件的概念。方便我们后期的学习。

声明:文章属于个人原创,转载请注明文章出处

原文发布于微信公众号 - 全华班(quanhuaban)

原文发表时间:2018-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据魔术师

数据技术|十分钟教会你写网络爬虫程序

写在前面 临近双11,小伙伴们都开始忙着剁手了。蛋是,这个学习还是不能落下的。那么,今天小编又给大家带来什么好玩的玩意儿呢? 那自然是 神奇&&牛掰 爬虫技术 ...

51010
来自专栏用户1191492的专栏

JClouds的命令行界面

我已经使用JCloud(一种面向Java支持多种云的工具集)一年了。到目前为止,我已经在很多领域广泛地使用了JCloud,特别是在Fuse Eco...

2509
来自专栏aCloudDeveloper

python学习笔记一

之前看过一本100多页的《python简明教程》,都是些非常简单的语法,现在到真正用的时候根本无从下手,所以,重新捧起一本《python学习手册》,1000多页...

1697
来自专栏日常学python

爬虫实践: 获取百度贴吧内容

本次要爬的贴吧是<< 西部世界 >>,西部世界是我一直很喜欢的一部美剧,平时有空也会去看看吧友们都在聊些什么。所以这次选取这个吧来作为实验材料。

772
来自专栏服务端思维

服务端指南 数据存储篇 | MySQL(08) 分库与分表设计

面对海量数据,例如,上千万甚至上亿的数据,查询一次所花费的时间会变长,甚至会造成数据库的单点压力。因此,分库与分表的目的在于,减小数据库的单库单表负担,提高查询...

722
来自专栏FreeBuf

搭建dvwa环境学习从MySql注入到GetShell

是啊,在项目上的系统每周每个月经过几十遍的过滤,平时看到提交参数的地方也就sqlmap跑一跑,对于最基础的手工注入都没有扎实的学会,于是我决定要知道如何搭建环境...

723
来自专栏我是极客人

电脑技巧| 使用电脑的经验分享

由于你懂得的原因,我们无法去官网下载androidSDK,后来QT下载也要翻墙。下面是解决因“墙”无法下载资料的镜像站网址: 1.教育网主要镜像站 东北地区: ...

952
来自专栏WindCoder

网易MySQL微专业学习笔记(十一)-MySQL业务优化与设计

这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL业务优化与设计”中的MySQL数据类型相关笔记。

391
来自专栏智能大石头

如何使用网络库实现应用级消息收发

网络客户端ISocketClient和网络会话ISocketSession都继承了ISocketRemoteISocketRemote表示远程通信,核心就是收发...

500
来自专栏实用工具入门教程

如何部署 R 开发环境

R是一种开源编程语言,专门用于统计计算和图形绘制。R在统计的基础下,被广泛用于开发统计软件和数据分析。R是一种日益流行且可扩展的语言,拥有活跃的社区,为特定的研...

1253

扫码关注云+社区