Activiti工作流使用之流程结构介绍[通俗易懂]

Activiti工作流使用之流程结构介绍[通俗易懂]Activiti工作流使用之流程结构介绍文章目录Activiti工作流使用之流程结构介绍一、工作流介绍1.1概述1.2常见工作流二、工作流术语2.1工作流引2.2BPM2.3BPMN2.4流对象三、Activiti结构3.1Activiti系统服务结构图3.2Activiti数据库结构四、流程步骤4.1部署Activiti4.2流程定义4.3流程定义部署4.4启动一个流程实例4.5用户查询代办任务(Task)4.6用户已办任务历史记录4.6用户已办任务历史记录一、工作流介绍

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Activiti工作流使用之流程结构介绍

一、工作流介绍

1.1 概述

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

1.2 常见工作流

采用工作流有以下优点
1、提高系统的柔性,适应业务流程的变化

2、实现更好的业务过程控制,提高顾客服务质量

3、降低系统开发和维护成本

常见工作流:Activiti、JBPM、OSWorkflow、ActiveBPEL、YAWL、Fallable等。

二、工作流术语

2.1 工作流引

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

2.2 BPM

BPM(业务流程管理):是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法

2.3 BPMN

BPMN(Business Process Model and Notation) 业务流程建模与标注,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)bpmn文件又可以叫做流程定义文件,它需要遵循BPMN语言规。

2.4 流对象

流对象(process engine)通过它可以获得我们需要的一切activiti服务

一个业务流程图有三个流对象的核心元素

  • 事件
    一个事件用圆圈来描述,表示一个业务流程期间发生的东西。事件影响流程的流动,一般有一个原因(触发器)或一个影响(结果),基于它们对流程的影响,有三种事件:开始事件,中间事件,终止事件。

在这里插入图片描述

  • 活动
    用圆角矩形表示,一个流程由一个活动或多个活动组成

在这里插入图片描述

  • 条件
    条件用菱形表示,用于控制序列流的分支与合并,可以作为选择,包括路径的分支与合,内部的标记会给出控制流的类型

三、Activiti结构

3.1 Activiti系统服务结构图

在这里插入图片描述

  • 核心类:ProcessEngine: 流程引擎的抽象,可以通过此类获取需要的所有服务
  • 服务类:XxxService: 通过ProcessEngine获取,Activiti将不同生命周期的服务封装在不同Service中,包括定义,部署,运行.通过服务类可获取相关生命周期中的服务信息
  • RepositoryService
    Repository Service提供了对repository的存取服,Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository
  • RuntimeService:
    Runtime Service提供了启动流程,查询流程实例,设置获取流程实例变量等功能.此外它还提供了对流程部署,流程定义和流程实例的存取服务
  • TaskService:
    Task Service提供了对用户Task和Form相关的操作.它提供了运行时任务查询,领取,完成,删除以及变量设置等功能
  • HistoryService
    History Service用于获取正在运行或已经完成的流程实例的信息,与Runtime Service获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化
  • FormService
    使用Form Service可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单
    Activiti中的流程和状态Task均可以关联业务相关的数据
  • IdentityService
    Identity Service提供了对Activiti系统中的用户和组的管理功,Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task
  • ManagementService
    Management Service提供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用。主要用于 Activiti 系统的日常维护核心业务对象:org.activiti.engine.impl.persistence.entity包下的类,Task,ProcessInstance,Execution等根据不同职责实现相应接口的方法(如需要持久化则继承PersistentObject接口),与传统的实体类不同
    (注:Activiti7删除了FormService和IdentityService接口),工作流程与业务解耦,结合具体业务自由的配置用户和用户组。
3.2 Activiti数据库结构

Activiti7工作流总共包含25张数据表(Activiti6包含23张表),Activiti会自动帮你生成这25张表,所有的表名默认以“ACT_”开头。

在这里插入图片描述

Activiti 使用到的表都是 ACT_ 开头的。表名的第二部分用两个字母表明表的用途:

  • ACT_GE_ (GE) 表示 general 全局通用数据及设置,各种情况都使用的数据。
  • ACT_HI_ (HI) 表示 history 历史数据表,包含着程执行的历史相关数据,如结束的流程实例,变量,任务,等等
  • ACT_RE_ (RE) 表示 repository 存储,包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  • ACT_RU_ (RU) 表示 runtime 运行时,运行时的流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti 只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

Activiti7 25张表含义

表名 介绍
act_evt_log 流程引擎通用日志表
act_ge_bytearray 二进制表,存储通用的流程资源
act_ge_property 系统存储表,存储整个流程引擎数据,默认存储三条数据
act_hi_actinst 历史节点表
act_hi_attachment 历史附件表
act_hi_comment 历史意见表
act_hi_detail 历史详情表
act_hi_identitylink 历史用户信息表
act_hi_procinst 历史流程实例表
act_hi_taskinst 历史任务实例表
act_hi_varinst 历史变量表
act_procdef_info 流程定义的动态变更信息
act_re_deployment 部署信息表
act_re_model 流程设计实体表
act_re_procdef 流程定义数据表
act_ru_deadletter_job 作业失败表,失败次数>重试次数
act_ru_event_subscr 运行时事件表
act_ru_execution 运行时流程执行实例表
act_ru_identitylink 运行时用户信息表
act_ru_integration 运行时综合表
act_ru_job 作业表
act_ru_suspended_job 作业暂停表
act_ru_task 运行时任务信息表
act_ru_timer_job 运行时定时器表
act_ru_variable 运行时变量表

四、流程步骤

4.1 部署Activiti

Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。

4.2 流程定义

工作流要有流程模型图,使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件) 绘制好流程模型,.bpmn文件就是业务流程定义文件,通过xml定义业务流程。

4.3 流程定义部署

将画好的流程图(activiti部署业务流程定义(.bpmn文件)),使用activiti提供的api把流程定义内容存储起来,在Activiti执行过程中可以查询定义的内容,Activiti执行把流程定义内容存储在数据库中

4.4 启动一个流程实例

流程实例也叫:ProcessInstance,启动一个流程实例表示开始一次业务流程的运行。在启动流程实例之前可以配置相应的业务需求,将某个业务绑定到当前流程上

4.5 用户查询代办任务(Task)

将系统的业务流程已经交给activiti管理,通过activiti就可以查询当前流程执行到哪里了,当前用户需要办理什么任务,activiti帮我们管理执行操作

4.6 用户已办任务历史记录

用户可以查询已经办理的业务和正在处理的任务,查询历史任务表获得具体流程执行细节,当一个流程没有下一节点时,整个流程实例就执行结束。

iti就可以查询当前流程执行到哪里了,当前用户需要办理什么任务,activiti帮我们管理执行操作

4.6 用户已办任务历史记录

用户可以查询已经办理的业务和正在处理的任务,查询历史任务表获得具体流程执行细节,当一个流程没有下一节点时,整个流程实例就执行结束。

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

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

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


相关推荐

  • LaTex中输入空格以及换行

    LaTex中输入空格以及换行1.使用\表示空格以及调整空格的大小quad空格 a\qquadb 两个m的宽度 quad空格 a\quadb 一个m的宽度 大空格 a\b 1/3m宽度 中等空格 a\;b 2/7m宽度 小空格 a\,b 1/6m宽度 没有空格 ab …

    2022年5月15日
    447
  • 搭建DNS服务器的那些知识「建议收藏」

    搭建DNS服务器的那些知识「建议收藏」一、DNS服务概述:1.什么是DNS?DNS(DomainNameSystem)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析。DNS协议运行在UDP协议之上,使用端口53号。2.什么是域、域名?域(domain)是计算机网络的一种形式,其中所有用户账户,计算机,打印机和其他安全主体都在位于称为域控制器的一个或多个中央计算机集群上的中央数据库中注册。

    2025年9月16日
    4
  • 第十一章《mysql用户与权限》

    第十一章《mysql用户与权限》

    2021年5月29日
    104
  • 单模光纤和多模光纤的波长_用立式光学计测量轴径结论

    单模光纤和多模光纤的波长_用立式光学计测量轴径结论熔接必备住友82C菲尼特熔接教程首先是介绍下多模光纤和单模光纤区别:1、多模光纤是光纤通信最原始的技术,这一技术是人类首次实现通过光纤来进行通信的一项革命性的突破。2、随着光纤通信技术的发展,特别是激光器技术的发展以及人们对长距离、大信息量通信的迫切需求,人们又寻找到了更好的光纤通信技术—-单模光纤通信。3、光纤通信技术发展到今天,多模光纤通信固有的很多局限性愈发显得突出:①多…

    2022年8月30日
    5
  • 玩转xss

    玩转xss0x00前言很多人现在都没懂xss为什么这么鸡肋的漏洞能排到owasp前十名,xss做多也就拿来做个弹窗和打cookie,然后进入后台,感觉没啥意义,还不如弱口令来得实在。那么我们就先

    2021年12月11日
    106
  • 码流 / 码率 / 比特率 / 帧速率 / 分辨率的区别[通俗易懂]

    码流 / 码率 / 比特率 / 帧速率 / 分辨率的区别[通俗易懂]码流/码率/比特率/帧速率/分辨率/高清的区别2015年03月13日10:40:30阅读数:143980GOP/ 码流/码率/比特率/帧速率/分辨率 GOP(Groupofpicture)      关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用1个关键帧。增加关键帧个数可…

    2022年5月28日
    71

发表回复

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

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