要实现流程的“可配置”,即相当于由用户自己“组建”流程,那么,对于程序的开发者,要做的事自然就是一个相反的过程(“拆解”流程)。考虑如何拆解流程能使用户重新组建时省力省心,实际上就是设计一个好用的、可配置的工作流的过程。
清楚了我们要做的事之后,在开始做事之前,我们还需要制定一些做事的原则(“拆解”的原则和方向),毕竟,我们的初衷,不仅仅是能把事做完,把事情做好才是最终目标。那么,什么才是一个好用的可配置的工作流呢?我们认为,好的工作流应包含下面几个特点:组建过程简单、快速,易于维护,用户无需培训、易于掌握等。
制定了上述原则后,我们现在就开始来拆解流程了,首先画一个简单的流程图作为参考。
图1 简单流程图
大致看一下图1中的流程图,先不考虑复杂的内容,我们对一个流程最直观的判断是:流程由环节和路径组成。如果仅将流程拆分成这两个元素,对用户来说是非常好理解的。那么下面,我们就尝试使用这两个元素建立可配置的流程。先粗略地拟一下各元素对应的表单需要包含的域:
1、环节文档:环节名称、处理人员
2、路径文档:路径起点环节名称、路径终点环节名称、流转条件
上面两个文档都是配置文档,要建立一个完整的工作流系统,除配置文档之外,我们还要建立一个包含待审批的业务信息的文档(以下称为主文档),主文档要与配置文档相关联,就需要在主文档中记录一些配置文档相关的信息,这里也先粗略地拟一下这些信息:
3、主文档:当前环节、当前用户
相关基础文档建立起来之后,接下来就开始考虑将各个分散的内容连接起来形成一个完整的工作“流”。假设当前主文档处于申请人环节,那么下一个环节是A领导还是B领导呢?从我们现有的配置文档来看,两个环节文档是通过路径文档连接的,那么我们首先要找到以申请人为起点的所有相关路径,搜索结果为:路径1