工作流引擎(工作流引擎activiti)

http://www.itjxue.com  2023-01-25 15:11  来源:未知  点击次数: 

组件分享之后端组件——超轻量级的工作流引擎go-workflow

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

本节我们分享一个超轻量级的工作流引擎 go-workflow ,基本架构同Activiti工作流有些相似,但是它更精简,更轻量,它是一个工作流微服务。它将所有的无关流程的数据,包括用户、用户组等信息从服务中解耦出去,go-workflow只纪录流程的流转,同时使用json数组替代bpmn来生成流程定义,简化流程定义的生成。

表 procdef 用于保存流程的配置,

主要字段有:

表 proc_inst 用于保存流程实例,当用户启动一个流程时,就会在这个表存入一个流程实例,

主要字段有:

表 execution 用于保存执行流,当用户启动一个流程时,就会生成一条执行流,之后的流程就会按照执行流的顺序流转,

比如:开始-主管审批-财务审批-人事审批-结束 ,

主要的字段有:

表 identitylink 用于保存任务task的候选用户组或者候选用户以及用户所参与的流程信息,

主要字段有

表 task 用于保存任务,

主要字段有:

历史数据表包括 execution_history,identitylink_history,proc_inst_history,task_history这些表字段同正常的表相同,每隔20秒,将已经结束的流程数据会自动迁移过来

启动 go-workflow 微服务后,可以在浏览器中输入: 进行存储

具体见 example.md 说明文档

通过调用 StartProcessInstanceByID 方法来启动流程实例,

主要涉及:

调用方法 Complete()方法来执行任务的审批,

涉及方法:

调用方法 WithDrawTask() 方法来执行任务的撤回

更多内容可以参考其官方 README

工作流是什么?工作流引擎又是什么?

工作流主要是工作业务模块需要的对应管理流程,工作流引擎,是为配置相关管理业务流程的工具

工作流的主要组成部分是:

首先看下是否单独的流程引擎,还是要体现中台价值,如果单独的流程引擎,就天翎的平台是使用的是平台模式,把流程嵌入到其他的系统做好门户和单点以及同步组织,实现数据共享和拿到第三方数据,统一呈现:同事支持和满足流程需要的各种吻合国情的审批和流转模式:支持单人办理、多人顺序、多人并行、抢占办理、内部循环、人工合并等场景

n 同时还封装主办加签、会办加签、协办、回退、回撤、子流程、节点跳转等20多种中国式流程操作

支持流程提交、到达、回退、过期、回撤、催办、抄送、到达的提醒设置;

n 支持消息中心、企业微信、钉钉 、邮件、手机短信的接收方式;

什么是工作流引擎?

工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。

工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

工作流的主要功能:

----工作流管理系统(WorkflowManagementSystem,WFMS)是定义、创建、执行工作流的系统。在最高层上,WFMS应能提供以下三个方面的功能支持:

?8?4 建造功能:对工作流过程及其组成活动定义和建模;

?8?4 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度;

?8?4 运行交互功能:指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。

工作流管理系统带来的好处:

----由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:

?8?4 改进和优化业务流程,提高业务工作效率;

?8?4 实现更好的业务过程控制,提高顾客服务质量;

?8?4 提高业务流程的柔性等。

工作流系统的主要组成部分

1.过程定义工具

----过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。

----2.过程定义

----过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。

金诺科技的OA采用微软唯一的工作流平台Workflow Foundation来开发产品的工作流,Workflow Foundation是微软四大核心技术之一,为微软产品及相关应用程序提供通用的工作流设计平台和开发工具,它是一个进程内的工作流引擎,运行在内存中,速度快并且稳定,这是一般工作流所不具备的,金诺OA用户可以自行定义修改流程,从而实现自由流程和固定流程的完美集合,以适应需求的变化,操作也非常简单,只要通过拖拽就可以现实工作流的定义! =================================================================================希望采纳!O(∩_∩)O~

什么是工作流引擎

工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括了,流程的节点管理、流向管理、流程样例管理等重要功能。

工作流引擎,主要是实现业务流程的规则抽象,模型的建立,解释,以及为流程实例提供运行环境,并解释执行流程实例。

工作流引擎必须要包含一个工作流模型的设计,工作流模型就是对业务流程抽象的一个模型,是整个工作流引擎的基础。所以模型设计的好坏决定引擎的功能是否灵活,也决定了工作流管理系统从设计实现到运行实施等诸多环节。

例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。?Workflow?引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。

(责任编辑:IT教学网)

更多

相关Illustrator教程文章

推荐Illustrator教程文章