上篇中我简单梳理了工作流的基本定义和相关属性,本周将结合我个人的工作经验,总结分享下在工作流引擎设计过程中踩过的一些坑。
一、工作流系统总体框架
根据工作流系统的特性,一个基本的工作流主要部件应包括可视化建模工具、客户端、监控与管理工具、后台数据库服务器。工作流系统总体框架如图1所示。
二、工作流的分类
一般而言,工作流分为固定流程和自定义流程两种方式。
通常为了提高产品的自由度和灵活性,常将两者相结合设计。即:产品默认提供多种场景下的流程模板,比如针对IT行业产品研发可提供产品设计、需求管理、bug管理和敏捷开发等;对于行政人事,可提供行政审批、人力资源管理、招聘等。
下图为Teambition软件结合日常工作场景,将工作模式细分为多个场景并提供对应工作流模板,方便用户快速使用。
固定流程的好处是用户可以直接相应模板,提升工作效率。但固定流程在灵活性上存在着一定限制,在这种情景下更适合与自定义流程方式。
用户可结合实际场景自定义流程的流程节点、执行人和相应权限。
三、工作流程设计
1.表单设计
在工作流引擎中,表单为工作相关的数据载体,相当于现实生活中的各类纸制或Word工作单。表单设计一般需要注意一下几点:
1)基本属性
各个表单具备唯一属性。例如,对于出差申请单,基本属性需要包括表单名称、申请人、所属部门、出差日期及审批意见等。
2)操作类型
不论是新建表单还是已有表单,均需要包含几种常见的操作类型:编辑、导入、导出和删除等功能。
2.流程设计
流程设计是工作流引擎的核心。主要涉及以下几点内容:
1)流程基本内容
流程基本内容包括流程序号、下一步骤、转交和回退选项。
一般而言,下一步骤为空,即表示流程按步骤序号依次执行。如果设置该功能,则表示允许跳转至该步骤。
下一步骤的使用,可以方便用户设计好更加复杂、更加灵活的业务流程。
另外,日常工作大多有实效性,因此在工作流设计过程中需要考虑到时限。当超过时限应允许主办人强制转交,进入下一流程或结束。
2)条件设置
条件设置指对表单数据进行校验,根据条件判定自动选择流程,实现流程的自动化条件控制。如下图所示。
四、工作流实际案例
下图所示为一款协作类产品,除了软件自身提供的常见工作流模板外,支持用户手动新建工作流。
该模板包含工作流引擎基本内容,例如,流程名称、各阶段相应执行人和监管人员抄送人。另外,对于工作流涉及的时限和转交功能均包含在内。今后大家工作中涉及该类领域时,可以详细交流下。
后记:
逼迫自己强行输出是一个痛并快乐的过程。坚持!最近和几个小伙伴们新建一个QQ群,大家互相监督,每周写篇产品相关文章,有兴趣的小伙伴可以加入我们~ ……^_^ 群号:737758225
以上。
小蜗牛
2018/04/10