Skip to content
加入微信交流群
微信交流群二维码

复杂工作流设计

1.概述


  复杂工作流通常指的是在一个工作或业务流程中,存在多个相互关联、相互影响的环节或任务,且这些环节或任务之间的关系比较复杂。
  它可能涉及多个步骤、多个参与者、不同的决策点和分支、以及复杂的逻辑关系。与简单的工作流相比,复杂工作流可能需要更多的协调、沟通和监控。它可能存在多个并行的任务流,或者任务之间有依赖关系和限制条件等。

2.应用场景


复杂工作流设计适用于各种组织和行业的需求;例如:

  • 软件开发管理:从需求收集、设计、编码、测试到部署和维护,涉及多个阶段和团队的协作。
  • 供应链管理:包括采购、生产、物流、库存等多个环节,需要与供应商、生产商、分销商等多方协调。
  • 医疗健康管理:医院的患者就诊的流程,患者首先需要挂号,然后前往相应科室就诊。医生可能会进行诊断、开检查单或处方,患者需要去做检查、缴费、取药等。如果需要住院或手术,还会涉及到更多的环节和部门。

3.复杂工作流配置说明


  美乐低代码复杂工作流支持在一个工作或业务流程中设置多个相互关联、相互影响的环节或者任务,支持多个步骤、角色、分支并行。


3.1添加流程

进入开发中心 - 审批流程,点击右上角添加按钮,打开添加审批流程弹框:

标记区域内容为:
1.选择应用实体:该审批流程所应用到的实体
2.名称:该审批流程名称
3.选择复杂工作流 选择/填写完成后点击 [确定] 按钮,系统将进入下一步对流程进行设计。

3.2页面功能区域


  复杂工作流设计页面主要分为三个区域,分别是页面设置区、流程组件区、组件设置区,将这些区域配合使用可以在复杂工作流设计页面上很便捷的创建对应的复杂工作流。

标注的区域分别为:

1 页面设置区:

页面设置区用于控制画布,可对画布进行放大、缩小、自动适应、上一步、下一步、重置、模拟、保存、导入、导出的功能。

2 流程组件区:

流程组件区是用于设计复杂工作流中最重要的区域,用户可通过拖拽的形式自行设计流程,包括流程开始、用户任务、并行网关、流程结束等组件进行组合。 字段选择区是选择实体现有字段的功能(字段添加可在 字段管理 中查看详细内容)。可以在此区域中查看所有可用的字段选项,并将它们拖放到容器区域中。这些字段可以是文本输入字段、日期选择器、下拉列表等。通过字段选择区,您可以方便地向表单添加不同类型的字段并对其进行调整。

3 组件设置区:

组件设置区根据不同的组件显示不同的设置内容。

3.3流程设计

流程设计是指在低代码平台中,对流程中各个环节进行规划和定义,以确保流程的高效执行和优化。

标记区域内容为:
1.开始组件:可设置由谁发起该流程的审批,非流程发起人无法使用此流程提交,支持自定义设置发起条件,只有符合条件的记录才可以使用/选择该流程。

2.审批节点:对审批节点进行设置,可配置审批类型、由谁审批、驳回设置、审批人为空的情况、审批方式等。

 (1) 配置在审批节点上需要执行批准或拒绝操作的具体人员。可以是指定的审批人、部门负责人、发起人的部门负责人、所属部门的负责人、或实体中某个人员字段。

 (2) 同时,可以灵活配置是否允许自选审核人、转审、加签操作,审批人为空时自动通过或指定审批人,以及审批方式的选择(会签、或签、部分会签)。

 (3) 可进行事件脚本的配置,该脚本将在任务启动后执行。

 (4) 抄送人配置确定了在抄送节点上需要通知的人员。抄送人可以是单个人员、角色或外部人员。

 (5) 可修改内容字段定义了在流程执行过程中可以由审批人员进行修改的字段,由于记录进入审批后即自动变为只读状态,如需要对记录中的某些字段进行补充填写,可通过 允许修改字段 选项进行配置。 alt text

 (6) 开启手写签名后审批时需进行签名。 alt text

3.并联网关:当流程通过网关后将变为并行状态且分为多个任务,所有任务审批通过后才可进入下一个审批节点。

4.排他网关:排他网关表达了一个流程中的唯一决策。 会有一个外向顺序流被使用,根据定义在顺序流中的条件。 alt text

5.包含网关:包含网关可以看做是排他网关和并行网关的结合体。 和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们。 但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关一样。 alt text

6.条件分支:可以根据需要添加多个分支,根据特定条件的结果来确定后续的流程路径。例如,如果某个条件满足,流程将进入一个分支;如果条件不满足,流程将进入另一个分支。设置条件分支中的逻辑条件,这些条件可以基于字段值、用户角色、日期等进行设置,以决定流程的执行路径。

7.服务任务:服务任务(Service Task)是一个自动化任务,无须人为参与,一般被用作调用服务。当流程执行到服务任务 时,可以自动执行编写的 Java 程序实现自定义的业务逻辑,完毕后继续执行后继路线。
alt text

8.中间捕获事件:信号中间事件分为 Catching 事件和 Throwing 事件,即信号中间捕获事件(Signal Intermediate Catch Event)和信号中间抛出事件(Signal Intermediate Throwing Event)。 当流程执行到信号中间捕获事件时就会中断在这里,一直等待被触发,直接到该事件接收到相 应的信号后,流程沿后继路线继续执行。信号事件是全局的,与其他事件(比如错误事件)不同, 信号不会在捕获之后被消费。如果存在多个引用了相同信号的事件被激活,即使它们不在同一个流 程实例中,那么当接收到信号时,这些事件被一并被触发。 当流程执行到达信号抛出事件时,流程引擎会直接抛出信号,其他引用了与其相同的信号捕获 事件会被触发,信号发出后事件结束,流程沿后继路线继续执行。其抛出的信号可以被信号开始事 件(Signal Start Event)、信号中间捕获事件(Signal Intermediate Catch Event)、信号边界事件(Signal Boundary Interrputing Event)订阅处理。
alt text

9.嵌套子流程:内嵌子流程又叫嵌入式子流程,它是一个可以包含其它活动、分支、事件,等的活动。我们通 常意义上说的子流程通常就是指的内嵌子流程,它表现为将一个流程(子流程)定义在另一个流程 (父流程)的内部,子流程作为父流程的一部分。子流程是主流程中的一部分流程片段,并非独立 的流程定义,一般作为局部通用逻辑处理,或者因为特定业务需要,使比较复杂的单个主流程设计 清晰直观。
alt text

10.绑定指定表单:审批流程中可以指定审批表单,配置后可在对应审批节点审批配置的信息。(注:表单需在表单设计中已另存为的形式进行设计。)
alt text

11.绑定触发器:审批流程中可以在指定节点绑定触发器,通过该节点后触发对应的触发器。
alt text

12.文案配置和是否允许驳回:可单独为每个审批节点配置不同文案的按钮。且支持当前节点是否允许驳回。
alt text

3.4工作流设计示例

 以下示例为某公司的报销流程,如图所示:
 当报销费用小于5万时,由组长审批通过后,进入人事审批,人事审批通过后由财务进行最终审批;
 当报销费用大于5万时,将生成三条子任务流程,由财务、部门负责人、人事并行审批,由于财务审批通过后需财务总监审核,故部门负责人和人事以及财务审批通过后需等待财务总监审批,三条子任务审批通过后将由总经理进行审批,审批通过后由CEO最终审批。

4.设计约束


  如果某审批流程正在被使用(即使用此流程的记录处于“审批中”状态),则无法修改、删除。如遇流程变动,可以将原审批流程禁用(禁用后不影响现有审批使用,只是无法提交新的),并复制一个新的,对新的审批流程进行修改后使用。

5.数据约束


  如果记录的审批状态为审批中或审批通过,则记录为只读状态无法进行修改/删除(其明细记录同样无法修改/删除/添加)。如需修改审批后的记录,需由管理员对其进行撤销;如需在审批过程中修改某些字段,可通过审批节点中的 允许修改字段 进行配置。

6.子流程配置


6.1什么是子流程

  子流程支持用户在当前流程过程中增加【子流程】节点。它可以触发另一个现有的审批流程表单,实现业务逻辑。

6.2使用场景

  例如:报销管理中,在【报销单】提交审批后,按照流程需要发票审批通过后才能进行报销处理。
  这里可以设置发票审批子流程,待发票审批通过后,回到父级流程进行报销单通过,整个报销流程完成。 操作如下:
方法一:
1.创建对应的实体表并将实体对应的字段和表单创建好。
alt text 2.创建数据转换,将主流程实体中的数据在触发子流程时自动创建对应子流程的数据。
alt text 3.可设置转换逻辑,支持生成数据及生成后回填数据。 alt text
4.先创建好独立的子流程,在主流程中指定节点进行应用即可。 alt text