前言
上次体验了云程低代码平台的应用开发和表单设计功能,今天将学习到的流程引擎功能进行分享,这些都是流程引擎选型要求中必备的功能。
他们的体验地址:云程 | 云程低代码平台 (yunchengxc.com) ,下面的操作都是在他们的体验环境进行的操作。
流程引擎概念介绍
首先介绍一下什么是流程引擎。
流程引擎是低代码平台的核心组件之一,它负责设计、管理和执行各种业务流程。流程引擎通常包含以下几个主要组成部分:
1、流程模型定义:定义业务流程模型的结构和流转逻辑,一般使用图形化工具进行设计。流程定义文件中描述了业务流程中的各个节点步骤、节点属性和节点间的流转关系。
2、流程实例管理:管理流程的运行实例和历史实例。每个流程实例代表一个具体的业务流程执行的过程,包括当前所处的流程步骤、已经执行的步骤等信息。
3、流程执行:执行流程模型定义中定义的流转逻辑,按照流程模型定义中配置的规则和条件等信息,执行各个节点步骤,并处理流程中的各种扩展事件和异常情况等。
4、任务管理:管理流程实例中的各种任务,包括用户任务和系统任务。用户任务需要人工介入,通常指审批流程中的用户待办任务;系统任务可以自动执行,例如发送邮件、调用三方接口等。
5、事件驱动:支持通过事件接口来驱动流程的执行,可以根据外部事件的条件,触发流程的执行或者中断流程的执行等。
6、监控和跟踪:提供流程监控和查看流程跟踪的功能,可以实时查看流程的执行情况和流转状态,便于分析和优化流程。
流程设计器
流程引擎必须提供一个可视化的流程模型定义文件的设计器,因为流程模型定义文件的规则较多,无法靠手动编写完成。
云程这款设计器是基于B/S的设计器,不需要安装插件,设计器右上角有查看源文件的功能按钮,可以实时查看正在设计的流程模型定义文件的内容,拖拽操作非常流畅,上手简单。
这里包括了开始节点、人工节点、结束节点、网关节点(排他网关、包容网关、并行网关)、服务节点、脚本节点、调用子流程节点、内部子流程节点等,右侧可以设计流程的全局属性和节点属性。
流程按钮配置
一般的国外开源流程引擎,支持的动作基本就是办理提交等,流程按照流程模板的定义,一步一步的流转,国内的流程引擎需求一般较为复杂,像退回、加签、委托、收回等具备中国特色的操作,都必须具备,甚至像流程结束之后的流程激活功能,也必须具备。
云程这边将流程按钮分为全局配置按钮、节点配置按钮,如下图,可以在按钮配置页面打勾配置,用户在使用流程审批业务的时候,就能看到相关的按钮了。
全局配置按钮:
节点配置按钮:
用户审批页面,配置的权限按钮,展示在用户操作页面上方工具栏中,按钮过多时,会自动收到更多按钮中:
节点候选人配置
每个节点的候选人,必须实现多种维度的设置,支持组合设置,满足尽量多的场景需要。
云程这边的候选人设置,支持用户维度、部门维度、角色维度、职务维度、关系维度。其中关系维度中支持申请人相关规则的配置、支持当前登陆人相关规则的配置,也支持自定义脚本和流程变量等,满足了绝大多数的场景需求,而且有自定义实现类的扩展配置功能。
同时,这边也支持自动选人、是否隐藏选人框等配置功能。
节点表单权限配置
人工节点是需要用户参与的节点,一般是人工填报或者审批节点,这类节点需要绑定一个表单进行数据的录入和查看。
云程这边支持在流程节点上配置绑定表单的字段控制权限,比如同一个表单,申请时能编辑10个字段,审核时能编辑5个字段。表单字段的编辑、表单字段的必填、表单字段是否隐藏,这些都是表单权限控制的功能。
通过打勾配置在当前节点中哪些字段可以编辑、哪些字段是必填项、哪些字段是需要隐藏的。
任务办理规则配置
云程的节点办理规则,支持单人办理、多人顺序、多人任意、多人并行。
单人办理表示只能一个人进行接收和办理;
多人顺序表示多个人必须按指定顺序依次进行办理;
多人任意表示多个人同时办理时,只要有一个人办理完成就可以通过;
多人并行表示多个人同时办理,必须所有人都办理完成就可以通过。
个人建议,选择多人并行办理规则时,可以让设计者指定一个完成规则,比如按比例完成,当超过一半的人办理完成就可以通过,再比如按职务办理完成,只要领导办理完成就可以通过等。
节点超时配置
审批流程中,根据规章制度,节点都有完成时间的要求,节点能够配置超时时间、以及节点到期前后的处理规则能够配置,也是流程引擎的必备功能之一。
云程这边支持两种形式超时规则配置,一种是固定时间值,比如8小时、3天等,另一种是基于表单数据的时间值,比如表单上填写了一个确定的完成时间,那么流程节点就以这个时间作为完成时间。另外,云程还支持用户动态修改时间、到期自动流转、预警配置、超期配置等。
路由条件配置
路由条件的配置,是流程引擎的重要功能,路由条件需要配置到节点与节点之间的连线上,路由条件需要选择一个条件类型,可以是表达式、也可以是脚本,无论哪一种,最终运行时都必须返回一个计算结果,告知流程引擎这条连线是否满足流转条件。
云程的路由条件支持可视化表达式配置、也支持各种形式的脚本配置。
扩展事件配置
扩展事件是实现复杂业务场景的必备功能,扩展事件允许业务开发者将自己的业务逻辑代码嵌入到流程流转的环节中。比如当流程审批节点通过后,同步修改业务表里的数据状态等需求。
云程支持的扩展事件非常丰富,包括流程全局的启动、结束事件,每个节点的创建、分配、完成、删除事件,流转线的流转事件,所有权限按钮的后置事件等,能满足各种各样的扩展需求。
流程启动权限配置
流程启动权限的控制必不可少,这里的流程启动权限主要包括启动条件的配置、启动权限范围的配置。
云程支持启动条件的设置,如下图,可以配置一个表达式规则,通过表单字段进行判断,当前流程如果不符合启动条件,将不能被用户启动。
这是启动条件配置表达式的页面:
启动权限还支持通过角色进行控制,不满足要求的角色不能启动流程,也支持所有角色可启动流程的快速配置功能,如下图:
流程中心
流程中心是最终用户使用流程的主要模块,用户在这里可以启动流程、处理待办、查看已办、设置委托、取消委托、收藏流程等。
用户点击发起流程中的流程图标,就进入了流程启动页面:
这是流程中心里的我的待办页面,这里可以批量办理、批量已阅,如下图:
流程监控
流程监控模块是管理员或运维人员最常用的模块,是管理流程运行数据的主要页面。
云程提供的流程监控模块,主要有流程实例的查询、数据的删除(包括删除流程数据和业务数据、只删除流程数据两种删除操作),待办移交、挂起/恢复、流程跟踪、办理人管理、读者管理等,办理人管理可以添加/减少办理人、添加/减少传阅人、以及流程步骤跳转等操作。
流程跟踪
流程跟踪是用户查看流程运行状态、流转历史、审批意见等流转信息的页面。
云程支持上下游流程(主子流程)的自动关联,在同一个流程跟踪页面,就可以实现上游流程的追溯和下游流程的查看。流程跟踪中还记录了流转历史、操作日志、审批意见、办理人情况等。
流程分析
流程分析是流程引擎的高阶功能,通过流程流转的历史数据,进行可视化的统计分析,帮助客户进行业务流程的完善。
云程提供的流程分析主要有四个部分,流程模板统计分析、任务办理统计分析、流程超时统计分析、流程实例统计分析。
流程分析的需求各种各样,不尽相同,难以做到一个统一的页面满足所有的场景,这部分功能我们的要求是能够自定义扩展。
总结
通过一段时间的试用,基本熟悉了云程的流程引擎功能,功能非常强大,对国内各种复杂的流程引擎需求都能很好的支撑起来,值得推进。
最近还在研究云程的电子表单技术,后面有时间再分享一下我对基于模型驱动的电子表单实现技术的学习体会。