现在的业务分工越来越细,很多客户指定要求上工作流系统,就一定要包含流程设计器。而很多开源的工作流系统,都只注重流程引擎部分,或更注重和各种开源的框架,orm等的集成,流程设计器或者根本就没有。这使得很多找开源的工作流系统的系统集成商,不得不面临着要自己写一份工作流设计器,常常在论坛中见求xx流程设计器的。
通常一套工作流系统,流程引擎是核心,灵魂部分,体现了工作流的运转设计思路。流程设计器,就相当于表现部分,利用流程设计器可视化的设计流程,客户不管自己是否会设计流程,都需要开发商提供设计器。有了流程设计器,就可以不了解流程的基本模版定义文件,也能设计出业务流程。
为了能更方便的体现业务流程,更方便的理解工作流系统,流程设计器的操作和属性设置一定要做的简单,让人一看就知道如何操作。
流程设计器是体现流程引擎,所以,一定要能快递方便的制作出,顺序流节点,条件跳转,循环,分支,合并,子流程等等。
流程设计器的界面部分一定要有工作流引擎支持的那些基本节点。如步骤,分支,合并,子流程等等。(步骤有的工作流系统叫任务,主要看流程引擎是如何定义这些节点的)
再通过拖拉的方式,能快速的在界面上放置这些节点,画上连线使得这些节点能连贯起来,组成顺序流,循环等等,使人一目了然。
如我们公司的eworkflow工作流系统:
当然,流程设计器还要包含一些基本的,打开,保存,流程属性页面等,流程属性页面中录入流程的名称,版本等信息。
有了这些基本的节点和功能,就能给业务流程建模了,类似把业务流程的流转单独抽出来了,但具体的业务办理,每个节点的办理人等等的设置,还需要在每个节点的属性页面上设置。
节点上办理的具体业务,我们通常是集成业务表单来完成,在表单中提交业务数据的同时,再调用流程引擎提供的api,使得流程流转到下一步个节点。
节点上的属性页,提供这些基本属性的设置。
如设置节点上办理的业务表单,
节点的办理条件,
节点的结果条件设置,
任务节点的选择办理人,
任务设置超时提醒
节点上的一些备注信息
比较重要的是,通常在流程的节点上,都要设置有一些前置后置的事件,前置事件,就是当流程运行到这个节点之前自动触发执行,后置事件就是当流程流转离开这个节点的时候,自动触发执行。
前置后置事件体现工作流系统的扩展性,可以将一些业务过程业务处理等外挂到这里。如,当员工的报销审核不通过,打回给填写报销单的人重新填写时候,就可以在节点的后置事件中找 填写报销单的执行人。