欢迎使用无远工作流引擎
- 本教程假设您已经掌握在一般情况下,如何使用无远开发平台开发一个功能页面。如您还未掌握,请先学习《快速上手》
- 如果您要实现的业务流程属于仅包含到三五个环节的简单流程,请参考社区文章 《没有流程设计器,如何做工作流》
- 如果您需要实现比较复杂的网状流程,并且希望流程可以轻松随需变更,那么可以采用无远工作流引擎来辅助实现。
无远工作流引擎具备以下特点:
- 用最简单的图元描述工作流,极易上手使用及维护流程。
- 搭配强大的无远开发平台,审批内容可以是任意复杂的组合窗口形式,不仅仅是一个表单,不受工作流引擎约束。
- 可以采用无远开发平台独有的用户变量机制,实现灵活、微小的权限控制效果。
- 清晰的流程版本管理,从容应对各种流程定义变化,运行时流程相关人员变化。
- 工作流引擎可以发布给最终用户,自主修改工作流配置。
【流程设计器示例 - 信贷审批】
【运行时审批内容页面示例 - 报销审批】
本教程以【报销】流程为例,讲解一个工作流从定义到创建使用的全部过程。您可以以此举一反三,将后续表述中出现的【报销】替换成其他【流程名】依然适用。
===
常见问题解答
0.如何快速理解无远工作流原理?
1. 流程定义变更对当前进行中的流程是否有影响?
无影响,每个流程实例在创建时,已锁定版本,流程变更不会影响旧实例的运行。如确实需要,可以让所有进行中的示例流程取消后,重建新实例。
2. 工作流中,人员临时有事,怎么办?
能操作电脑则等待操作电脑。不能操作电脑,待审批查询列表SQL设计时应允许领导或超级管理员代理操作。
3. 人员调岗或离职怎么办?
如果待审批任务的查询条件精确到人员ID,则应该在离职或者岗位变动前转交给其他用户 ID。如果待审批任务的查询条件只涉及到关系或角色依赖(比如主管,管理员)或跟组织机构挂钩,则某个人的离开不影响该任务继续执行,只要有新的角色或者相关关系人顶岗即可。因为SQL中的条件是跟角色或者关系关联的,没有跟具体员工ID关联。
4. 一个流程中审批的表单字段内容,如何实现同一份表单在不同的处理环节,对不同的人呈现不同内容?
流程设计引擎本身只规定一个完整的业务流程走向,而在这个流程中所使用的表单,属于单独的表单设计范畴。表单内每个字段对何人可见,什么条件可见,可以通过表单字段的可用条件来控制。
5. 如何设计并行处理流程,比如到达某状态(事件节点)前,需要同时满足多个状态(事件节点)的执行完成。
目前暂时不支持这种并行处理流程,可以暂时考虑在画流程图时将其串行化。后续工作会增加支持并行处理。
6. 流程中的任务状态有变化时是否可以触发消息通知给相关的人?
可以在相关动作操作【按钮事件配置】的后台 SQL 执行后脚本调用消息发送模块。> 参考文档
7. 流程图中为什么没有结束标记?
无需特别标记哪些状态是结束状态,只要找不到进一步的操作和对应的下一步状态,即可认为是终态。比如名为【已取消】、【不通过】 这样的状态,没有示意它是终态。但如果有需要,依然可以从这些状态拉出动作线比如【再次提交】等等,指向下一个状态。
8. 如何实现子流程?即流程进行中,突然发现缺少另外一个流程要办理,应该如何设计?
任何突然发生但需要处理的事情,也需要预先在流程设计中定义。流程图中没有单独的子流程标记,如有需要,创建一个状态节点,命名为XXX子流程。同时该 子流程实际上对应着另外一分完整的流程设计。具体实现工作流实例时,时通过合理的变量标记设计,实现子流程的跳转和返回。
9. 如何让用户自主开发维护流程?
如果系统的用户和开发者是同一个人,则不存在此问题,直接依照本文档重复 2、3 节步骤即可。如果不是,则分为修改流程和创建新流程两种情况:1. 如果是修改已有流程,可以让用户直接在流程管理页面中设计调整;2. 如果是创建新的流程,除了需要创建流程图之外,还需要开发用于此流程审批流转的内容页,涉及到建立新的数据表、以及针对这些数据表的相关增删改查内容。建议依然由专业开发者来做。如果你的用户具备这些能力,可以开放工作台权限给你的用户。
如果您一定需要您的用户直接在业务系统端完成新建流程,可以让用户按照文档的第 2 节,完成基本工作流的定义。然后由您为用户自行设计一种通用的表单及数据字段,利用动态表单 form-mobile-dynamic 动态查询器 enhancer-datatables 或自定义窗口等,完成相关的审批页面设计和呈现。这取决于您自身的开发能力,平台在技术能力上没有任何限制。