在线表单工作流

在线表单工作流所有配置均无需重启业务服务,配置后即可生效。

流程基础信息配置

  • 表单类型,选择「动态表单」。

  • 流程名称,中文显示名称。

  • 流程标识,等同于流程定义标识 (英文),必须全工程唯一,创建后不能修改。

  • 流程分类,选择当前流程所在分类。该选项没有业务意义,只是便于分类显示。

  • 工单编码规则,工单表 (zz_flow_work_order) 工单编码字段 (work_order_code) 的计算规则。

  • 流程页面,这里只能选择类型为「流程类型」的在线表单页面。

  • 默认表单,设置流程任务节点默认使用的表单页面,这里不要选择工单页面。

  • 通知类型,选择流程实例的通知类型,每个流程任务进入待办状态之前都会发出该通知。另外,也可以在流程编辑中,为每个任务指定额外的通知类型,两者是并集关系。具体细节可参考 流程实例章节的待办任务通知小节。

  • 级联删除业务数据,当删除流程实例的时候,是否级联删除当前实例关联的业务主表数据,以及与主表关联的从表数据。具体细节可参考 流程实例章节的级联删除业务数据小节。

    流程变量配置

    在当前流程图的编辑中,所有用到的变量都需要在这里预先配置。

  • 下图红框圈住的是两个内置流程变量,不能修改。

  • 绑定字段,在目前版本中,流程变量必须与「表字段」绑定。数据源主表和所有关联表字段均可选择。

  • 变量名称,变量的中文显示名。

  • 变量标识,流程内该值必须唯一 (英文)。流程启动后,会作为流程变量名,在流程实例中传递。

  • 下图所示变量 totalAmount,会在后面的流程图中使用,比如在条件判断的表达式中。

流程状态配置

  • 在线表单流程状态字段的配置,如下图所示。


  • 流程状态数据,会自动同步到流程工单表 (zz_flow_work_order) 的 flow_status 和 latest_approval_status 两个固定字段中。

  • 流程状态字段。流程模块,会根据配置自动完成数据同步,因此无需再进行额外的配置了。需要重点说明的是,流程状态字段仅在流程实例结束时,才会由 FlowFinishedListener 监听器同步到业务表中对应的字段。

  • 流程审批状态字段。通常情况下,我们会为每个流程任务的「操作按钮」配置一个流程更新状态值。当按钮触发后,对应的状态标识值会同步更新到业务表的指定字段中。因此,我们可以根据业务的实际需求,为流程任务的执行状态,设置不同的「状态标识值」,以便在业务代码中可以根据不同的审批状态进行查询。至于如何与操作按钮绑定,我们会在下面的步骤中给出详细的说明。

流程表单配置

在流程配置中,目前并不支持在线表单的配置,如需修改,请到菜单「在线表单」→「表单管理」页面,修改与当前流程关联的在线表单配置。

流程图编辑

我们使用的是基于 BPMNjs 的流程编辑器,因此与流程图绘制相关的基础性问题,请自行百度。

  • 为指定的流程任务选择表单,同时选择该表单是否「允许编辑」。在目前的版本中,在线表单工作流已支持精确到组件的读写和显隐控制。此外如果没有打开 「允许编辑」开关,表单内所有组件均为只读状态。

    以下几步对于流程录入任务的配置非常非常重要,如配置有误,流程发起时将无法加载录入表单页面。

  • 在下图中,我们选择的流程任务是开始节点之后的「录入任务」,通常而言,录入任务关联的表单都是「允许编辑」的。

  • 对于录入任务而言,如果是从流程工单列表页面发起流程,那么「录入任务」的审批人必须为「流程发起人」,具体见下图。
  • 对于有些流程,业务数据在业务表单中已经录入完毕,而流程的发起则是在业务列表页面,通过点击业务数据的「审批」按钮发起审批流程。对于此种业务场景,第一个流程任务所对应的就是审批表单,而非上面介绍的录入表单了。
  • 如下图所示,为指定的流程任务添加「操作按钮」,在与该审批任务关联的表单中,会显示这里添加的所有「操作按钮」。
  • 按钮类型,选择一种我们内置的按钮类型即可,类型不同,功能不同。对于内置的按钮类型,也会被当成任务变量处理,并在流程中传递。比如「同意」类型的按钮,会使用内置变量 operationType,变量值为 agree。
  • 按钮名称,按钮在表单页面上的显示名。
  • 更新工单状态,下拉框中的候选项,就是在前几步中配置的「流程状态标识值」。当该按钮被触发后,就会根据该值更新工单表的 latest_approval_status 字段。以便于工单业务数据的查询和后期统计分析。如果选择「不更新」选项,就不会更新该字段值。

  • 任务通知,为选定的任务设置任务通知类型,可以多选。如果为当前流程也设定了任务通知,那么下图所示任务的通知,将是两者的并集。
  • 流程有任何修改,都要点击左上角的「保存流程」按钮。
  • 点击「预览」→「预览XML」,可以预览流程的标准 BPMN XML 文件。

流程图中的按钮

该问题属于被高频提问的问题,因此我们用独立的小节进行介绍,以方便用户在文档中快速导航。

  • 同意,默认同意操作。
  • 拒绝,默认拒绝操作。
  • 驳回,当前审批人,驳回待办任务到上一个任务节点。
  • 驳回到起点,当前审批人,驳回待办任务到流程的第一个用户任务节点,通常是录入节点。
  • 驳回到历史任务,当前审批人,驳回待办任务之前审批途径过的任务节点。不能驳回到并行网关内的任务。
  • 撤销,审批人在提交审批后,在尚未被下一个审批人审批之前,可以撤回之前的审批操作。
  • 转办,将当前任务转交给选择的用户或用户组处理,流程任务节点没有任何变化,只能更换了审批人或审批候选人组。
  • 会签,在流程图中为多实例任务。会签的指定人,需要在会签任务的上一级任务设置,用户点击会签按钮后,选择具体的审批人用户列表。在后面「实例讲解」小节,会给出专门的会签实例,并进行更为详细的说明。


  • 同意 (会签),仅用于会签任务,用户点击此按钮会使内置多实例变量 multiAgreeCount 的值加一。

  • 拒绝 (会签),仅用于会签任务,用户点击此按钮会使内置多实例变量 multiRefuseCount 的值加一。

  • 弃权 (会签),仅用于会签任务,用户点击此按钮会使内置多实例变量 multiAbstainCount 的值加一。

  • 加签,流程审批已经进入会签任务时,当前会签任务节点的上一级节点的审批人,发现需要新增会签人员时,可以通过「加签」的方式,添加新的会签人员。需要说明的是,如果会签任务已经结束,不能再进行加签了。

  • 减签,流程审批已经进入会签任务时,当前会签任务节点的上一级节点的审批人,发现需要移除某一会签人员时,可以通过「减签」的方式,移除现有的会签人员。需要说明的是,如果会签任务已经结束,不能再进行减签了。

  • 保存草稿,在流程审批数据录入节点,可以先不提交流程,而只是将当前填写的表单数据,保存到草稿中。需要额外说明的是,此操作已经启动了流程实例,流程发起人可以在「工单列表」中继续编辑草稿,并最终提交审批。

  • 终止,终止当前的流程实例。通过此方式终止的流程,工单表 flow_status 字段值为「正常结束」。

  • 指定审批人,为下一个流程任务指定审批人。仅当下一个流程任务的候选用户是指定审批人时,该操作才会生效。

    流程图中的变量配置

    该问题属于被高频提问的问题,因此我们用独立的小节进行介绍,以方便用户在文档中快速导航。

  • 需要在上一个任务中配置流程变量。

    在后续的任务或流程分支中使用。

    流程图中配置审批人

    为流程任务配置审批人、候选人和候选组。如果指定的是审批人,该任务只能由指定用户审批。如果指定的是候选人组 (一组候选人) 和候选组 (部门、角色和岗位),那么所有符合身份的用户都可以看到待办任务,并完成任务的审批。

  • 处理用户,该选项设置的是「指派人」,因此只能指定一个用户。对于该选项,「处理用户」一定不要选择「使用指定审批人」,因为指定后的 ${appointedAssignee} 变量,在运行时可以指定多人,而处理用户是设置给指派人 Assignee 的,该值不能使用多人。

  • 候选用户组,该选项设置的是「审批候选人组」。可以指定多个候选人,通常设置「指定审批人」时,需要使用该选项。

  • 角色,当前系统中指定角色的用户。

  • 部门,当前系统中指定部门的用户。

  • 岗位,当前系统中指定岗位的用户。因为岗位和部门是存在多对多关联关系的,所以岗位的选择,相比于「角色」和「部门」要复杂一点儿,具体见下图及文字注释。



  • 流程发起人部门领导,流程发起人所在部门的岗位中,被标记为领导岗位的用户组。
  • 流程发起人上级部门领导,流程发起人所在部门的上级部门的岗位中,被标记为领导岗位的用户组。

    流程图中配置抄送人

    当前流程达到某一审批任务时,在流程图中为该任务设置的抄送用户和抄送组中的用户,都会收到流程审批的消息通知,但是「被抄送用户」不能参与流程的审批,只能查看审批内容。另外需要说明的是,可以选择多个类型的抄送组,所有抄送组中的用户都会收到抄送消息。


工单表单绑定菜单

  • 在线表单的类型必须是「流程页面」。

  • 必须包含「工单列表」类型的在线表单。

  • 绑定菜单,其中菜单绑定的表单类型,必须为「工单列表」。

    业务表单发起流程

    我们内部习惯于将此种流程发起方式,称之为「主表视角」流程。该流程的业务数据录入,与普通页面没有任何差别,只是在业务数据的列表中,会多出一个流程审批的按钮,按钮显示名可自定义,该按钮触发后即可启动流程,并将所在行数据视为「流程录入数据」。「主表视角」的流程有以下几点注意事项。

  • 通常流程中的第一个任务节点不是「数据录入节点」。

  • 同一条数据,无论是新增还是修改之后,都可以进行审批。即同一条业务数据可以进行多次审批。

  • 如果同一条数据的审批流程没有结束,不能再发起针对该数据的审批流程。只有当前一个审批流程结束后,才能针对该条数据发起新的审批流程。

    重点!在为业务表单配置「发起流程」操作之前,推荐先配置好「工作流」以及与其关联的「流程表单」。其中与流程关联的表单必须为「流程类型」的在线表单。




接下来我们需要创建「非流程类型」的业务表单,在本例中,我们以在线演示工程中的「文章管理」表单为例,具体配置过程见以下几张截图。


作者:BIQS  创建时间:2025-04-28 22:04
最后编辑:BIQS  更新时间:2025-04-28 22:30