工作流

工作流是指工作流引擎。

最典型的应用就是公文审批之类。比如这个公文级别如何,牵扯到哪些部门、领导审批,要走哪些环节,这些都不适合写死在业务模块的代码里,否则流程一调整,就很麻烦。

有了工作流引擎,就可以在业务模块外部定义好流程,然后业务系统调用工作流,一步一步地流转,直到完结,中间还可以回退什么的,方便得很。流程更改,业务模块可能无需做任何修改。

所以说,工作流的意义在于解耦,将流程从业务程序中剥离出来,变成独立于具体业务项目的一个东西。

工作流这个名字,很容易让人误解的是,业务数据(比如订单)交给工作流以后,工作流会帮你自动执行,呼啦啦的从头到尾执行完,就像传送带一样。实际上,工作流调用过程是,工作流引擎从启动到结束,每个步骤,都要由业务系统将各种参数传给工作流引擎,比如审批单的各种资料填写,意见附录;每个流程环节的启动或回退,也都由业务系统来触发。业务系统通过读取工作流接口来获知目前所处的步骤和状态,以相机行事。工作流的意义在于流程与业务模块解耦,而不在于是否能自动流转。

因此,工作流这边并不存储什么业务系统的数据,顶多是存有一些传过来的参数;反倒是业务系统,需要存储工作流的一些ID、状态值等。但总的来说,二者数据是分开的,上帝的归上帝,凯撒的归凯撒;流程的归流程,业务的归业务。一些具体的表单处理,也由业务系统自己负责。工作流只负责流转。

工作流有一些术语:

1、流程定义
定义好一个流程中,从开始到结束的各个步骤。只需定义一次。相当于类。

2、流程实例
每个审批单要跑工作流,就要构造一个流程实例。通常每个单子对应一个实例。流程实例就相当于类实例。

3、活动(Activity)
就是流程中所说的步骤、节点。同样有定义和实例之分。

4、工作项(WorkItem)
表示流程实例在流转过程中为完成某个活动实例需要参与者做的工作。一个活动实例可以对应一个或多个工作项。同样有定义和实例之分。我感觉活动与工作项就像是进程和线程。如果只有一个线程,那么二者等同也无不可。实际应用中,相比活动,工作项更常被说成是“节点”、“步骤”。

我想到的例子是,有一个节点(活动)是会签,需要所有的领导都签名,才能流向下一步。此时,节点只有一个,但每个领导都对应一个工作项。所有工作项完成,该节点才算完成。


2020.06.02
在这里插入图片描述


2021.06.01
今天因为项目的原因又去搜了一下工作流的意义。没想到,一堆不知所谓。写的人到底知道自己在说什么吗?我自己再来总结一下,为啥要用工作流。也许说的不对,但起码可以先立个flag,以后有个对照,从这个基础上再出发。

我认为用工作流的好处如下:
1、流程与代码解耦。工作流可以在外部的工作流设计工具里设定,而不必在代码里作繁杂的各种条件判断,可以避免万一流程更改(现实中发生的概率很高),又要修改代码的窘境。

2、节省开发成本。许多功能工作流系统已经具备,我们只需调用就可以

3、提高产品质量。使用成熟的产品,通常比自己重新开发一个质量要好得多。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值