公司里原来的领导高升到总部去了,顶替他的是个年轻的高学历领导,新官上任三把火,一下子就把公司下属的几个工厂里用了快十年的 Excel 填写生产数据的模式推翻了,要构建报表系统,经过几轮选型招标,最后定了帆软。
一直负责 Excel 填报数据汇总整理的我觉得机会来了,开始自学帆软的报表产品 FineReport,主动请缨领头报表开发。因为大学里有点数据库基础,跟着帆软论坛里的视频教程和帮助文档速成学了些 FineReport 的用法,原来用 Excel 实现的填写数据,FineReport 可以轻松实现,而且原来繁琐的月报周报等报告性文件用开发好的模板都能自动生成,加上联动和钻取功能,数据展示效果上升了一个层次。
公司里从一线填报工人、到部门统计文员、再到高层领导都很快适应了使用 FineReport 的转变。作为开发者的我,相比之前重复毫无技术含量的 Excel 汇总工作也有了前所未有的成就感。
看到 FineReport 给我们工厂带来的巨大改变,领导又有了新的想法。在三季度的总结会上,领导宣布要进一步推行工厂信息化,对首次参加这种重要会议的我说:“现在工厂里的 OCAP 单这一项上太落后了,每步操作人员还需要跑到下一个操作人员那里,既浪费人力又降低了时效性,既然我们有了帆软的数据填报系统,你看看是不是能把 OCAP 单也做进系统里?”。
OCAP(Out of Control Action Plan,异常行动计划)单,是我们工厂里每当产品出现质量异常时,由检测员一级一级回溯生产线设备,以查出问题原因并及时修改的一个流程,包含异常描述、及时处理措施、处理效果确认等。目前需要拿打印出来的纸质 OCAP 单一步一步填写,导致当前人员找下一步处理人员所花的时间有时甚至远超解决问题本身所花的时间,效率确实太低了。
这可和简单地填报数据、数据分析展现什么的不一样,涉及到流程就复杂了。
有点一筹莫展的我便去帆软论坛上寻求帮助,那里有上万番薯交流分享,竟然真的有人分享过类似的流程场景的解决方法:
- 制作一张包含 OCAP 单所有需要展示填写字段的 cpt 模板;
- 使用唯一的 OCAP 编码作为这些字段所构成表格的主键,以约束展示的数据;
- 通过模板的权限编辑来限定每个部门的人只能编辑对应部门负责的填写部分;
- 再用 FineReport 决策平台的消息通知功能通知下一环节的同事填写流转到他那儿的 OCAP 单;
- 一步步流转下去直到流程结束,完全能实现现在的需求。
- 有了思路,操作便捷的 FineReport 还是很便于开发的,没多久我就做出来了,测试后又调整了一下能成功,大致效果如下:
每步填写完后由当前操作人员发平台消息给下一步操作人员,然后重复这两个步骤直至流程结束。
其实思路还是很简单的,普通的模板加上识别当前登录人部门信息后的权限控制,麻烦的地方在于需要通过 JS 获取当前模板的 OCAP 编码放到平台的消息通知内,并且下一步操作者在打开 OCAP 单时能传参到模板,这两个难点花了我不少时间攻克,再次感谢帮助文档和论坛上的经验分享帖。
另外流程的流转需要填报人自己发消息,不能系统自动进行,这对于频繁操作的一线还是很影响效率的。
但不管怎么说,至少能实现原纸质 OCAP 单的所有功能,节省了人员跑动的麻烦,时间上大大缩短了,对此领导给予了充分的肯定。
不过当时这个流程任务比较急迫,所以在论坛上看到一个可行的办法后就像抓住了救命稻草般急于实现,几天后在论坛上发现了另一篇介绍【数据多级上报】功能的帖子,这个功能也是实现流程的任务,还省去了很多配置操作:
数据多级上报
1. 下一步的操作人员已在编辑流程时指定,无需每次填报时再从下拉框上百号人中选,流程设置好以后,每完成一步系统会自动转到下一步(自动发送邮件或平台消息),无需上一步操作人员进行流转操作;
2. 可通过带有层级关系的人员数据来控制上报的数据流向,只上报给对应的上级看,避免在模板中通过 sql 语句限定对应的人员上报关系,人员数量越大,层级关系越复杂,二者的效率差距就越明显。
3. 上报流程进行的过程中,当前节点的操作人员可以看到该流程的流转状态,整个过程逻辑条理相比原方法要明晰直观。
整体来看,用了多级上报的功能后,流程设置的很多操作由设计器的代码实现转变成了决策平台上的点选操作,这样很多简单的改动流程只需发起人就可以在上报流程管理中自行修改,而无需每次都让开发者去后台修改 sql 语句,并且前端使用者更清楚自己想要实现的逻辑,免去双方的沟通成本。
虽然使用纯净的报表功能也能完成简单的流程实现,但多级上报明显可以大大提升流程的效率、降低实现的成本。
还有没有更好的方法呢?论坛上没什么新收获的我终于在帮助文档上找到了当前解决流程问题的最优方案——流程插件。刚上架,怪不得论坛里没有什么相关的帖子,但是帮助文档里已经有了较详细的操作指导,去帆软市场下载后按照文档里的步骤做,很快就完成了插件的安装。
简单体验后发现,如果多级上报是对简单流程的量变改进,那流程插件就是对整个帆软产品在流程功能上的一次质的飞跃。
流程插件
1. 得益于三种类型的网关,加上判断条件可以读取报表内的值的功能,流程插件可以实现的范围扩大至整个事务,设定好网关分路的条件后由系统自动判断,减少人力开销的同时还降低了出错风险。
可能这样简单的流程还不能很好地体现流程引擎的优势,看一下报销审批流程就清楚了:对报销人员判断、对报销类型判断、对报销金额判断……不同的判断结果需要流转到不同的节点,这种存在分支的情况,前两种方法就无法实现了。
2. 梳理流程逻辑的过程就是创建流程的过程,通过拖拽控件的可视化编辑和图形化的界面进一步降低了流程创建者的技术门槛,也便于其他人快速熟悉流程的逻辑,非常清晰。
3. 拥有独立的待办和已办页面,就算流转到自己的任务再多也可以有条不紊地办理,避免漏办的失误;并且支持待办保存,在处理环节比较复杂、无法一次性完成的场景可以存储当前的工作状态(填报暂存)。
4. 支持撤回功能,误操作可在流程下一节点经办人处理之前撤回,点击已办页面对应流程的“撤回”按钮,将会删除上个任务。
5. 可指定下一级处理人,不同于多级上报需要在设计流程时就把下一节点处理人固定下来,有时事先无法确定的情况下可用此功能,从此节点挂载的模板中获取需要处理的人员,更加灵活。
6. 可实现抢占式办理,可为下一节点分配多个处理人,这些处理人中只需有一个人处理完,别人就不会再看到这条流程,既提高了处理速度,又避免了重复处理。
7. 对流程支持权限控制,便于流程发起的管控,杜绝乱提流程的情况。
基于如此多的优势,我把公司内用到流程的物资申请、请假审批等等流程统一用流程插件实现,它充分地将电脑在流程中能做的一切都完成了,大大提升了效率,并且流程的操作更加灵活,不需要代码基础,真正让最懂流程逻辑的普通员工都能创建流程,减少了我和和人事、财务等部门的人员反复沟通各个流程具体逻辑的时间,只需他们创建好流程,我开发出相应的填报模板配合他们就好。
领导对我这些超前于他自己推进信息化的举措赞赏有加,实际使用中,流程插件带来的便利性也让同事们赞不绝口。原来选对了工具,流程审批这么简单!