一讲到工作流,很多人第一反应就是这个东西很深奥,有时候又觉得离我们较为遥远,确实完善的工 作流设计很多方面,而正是由于需要兼顾很多方面,一般通用的工作流都难做到尽善尽美。微软也提供 了几个版本的WF框架支持,也有一些厂家是基于这个框架基础上开发的工作流应用。
以前由于项目的需要,参与过一些工作流的项目开发,其中有些是基于我简易工作流的原理上进行拓 展的,包括一个广州市各区县使用的行业审批业务平台,由于基于自己的流程处理,界面设计、流程流 转等方面可以很好符合客户需求,定制的弹性较好,缺点是不够通用,也需要编写表单部分代码。
后面由于业务的需要,工作流方面的业务逐渐显得迫切,公司是想采用一个较为通用工作流框架来组 织目前的业务,因此找了广州一家做工作流的公司,购买了他们的产品,虽然号称完全通过后台配置, 零代码实现工作流业务表单的处理,但是由于客户对表单的设计要求比较多,有时候需要结合一些外部 的数据接口,流程处理方面也有着进一步的需要,这样可能就打破了他们原来的格局,导致无论在表单 设计、流程配置等方面,都需要购买他们工程师的现场服务,来进一步完善整个项目的内容,导致整个 项目进展缓慢,遭遇水土不服的处境。
因此感觉,一个工作流模块,号称再强大,如果不能很好结合项目应用,即使零代码的功能配置,也 可能使你处于尴尬的境况之中,因为通过配置,可能在代码里面平常很容易实现的表单功能,要通过零 代码配置,花费的时间更多更难掌握,因为零代码是有代价的,需要您很好利用他们的API,他们的业务 对象,有时候还需要很曲折的摸索参数,而这一切可能就是非常致命的弱点。
1、简易工作流的设计模型
在没有第三方工作流模块的情况下,简易工作流就是利用数据库和业务对象之间的协作关系,构建的 一个半模块化的流程引擎,它能通过整合到项目代码中进行更好的融合以便实现工作流的相关功能。
首先我们知道,我们在Office里面创建任何文档,都有一个模板的概念,这样我们方便利用一些现成 的数据和布局,工作流也一样,有一个流程模板的概念,如下所示。
然后每个流程模板,本身会预定义了一系列的处理流程,以便在流程实例里面进行不同的处理,因此 流程模板还包含了多个流程步骤对象,他们的关系构成如下。