流程图设计

agilebpm基于activiti5.22实现,所以流程图支持bpmn2.0标准,流程图的设计器是通过改造activiti原生设计器实现。这里做流程图设计上的规范指导。

流程图元素介绍

  • 开始节点: 流程的发起节点,代表流程流转的开始
  • 结束节点: 流程终止,执行至该节点,流程就会执行终止操作
  • 用户任务: 普通任务
  • 会签任务: 会签操作,多人任务
  • 分支网关: 通过逻辑条件选择流转路径,需要有且仅有一条分支条件满足
  • 条件并行网关: 满足条件的分支将并行流转
  • 并行网关: 并行分发多条任务,不支持条件配置。
  • 发起节点: 流程发起后,第一个任务,往往用于驳回发起人使用,所以第一个节点会默认跳过。
  • 子流程: 发起一个子流程,子流程结束后会继续主流程流转。子流程共享相同业务对象数据。

分支网关

如图,配置网关条件,必须有且只有一个条件返回 true
条件为groovy脚本,具体可用参数请参考流程groovy脚本使用介绍

并行网关

并行网关产生的后续任务会多实例并行执行。并行网关需要进行回收合并为一条实例。

所以并行网关常常会成对出现。

==并行网关回收多实例是通过前一并行网关分发数来决定!==

如图:并行网关1分发出三条实例,则并行网关2必须且一定会回收三条实例过后才会继续向下流转。
这个条件同样适用于条件并行网关。

高级节点

TimerEvent

  • 定时边界事件 :用于任务节点,子流程 设置逾期后流程走向,或者触发边界事件动作
  • 定时器节点: 用于暂停任务,到达指定时间后继续流转
如图

如图【部门经理审批】 若超过30天还未处理,任务就会流转至【副总审批】,部门审批后 流程会延时30分钟才会流转至终止节点

配置
开始时间(timeDate)

使用 ISO 8601 格式指定一个确定的时间,触发事件的时间,如:2011-03-11T12:13:14

持续时间: (timeDuration)

当时间超过该时间,则执行定时器事件
如 十天 :PT10D ,十分钟 PT10M 十小时 PT10H 十秒 PT10S

时间段表示法 使用ISO 8601规定的格式 (由BPMN 2.0规定):”如果要表示某一作为一段时间的时间期间,前面加一大写字母P,但时间段后都要加上相应的代表时间的大写字母。如在一年三个月五天六小时七分三十秒内,可以写成P1Y3M5DT6H7M30S“

循环时间: (timeCycle)

指定重复执行的间隔, 可以用来定期启动流程实例,或为超时时间发送多个提醒。 timeCycle元素可以使用两种格式。第一种是 ISO 8601 标准的格式,一种 使用 cron表达式指定timeCycle

如:重复3次,每次间隔10小时R3/PT10H
每5分钟执行一次 0 0/5 * * * ?

ISO 8601 标准的 重复时间表示法:“前面加上一大写字母R,如要从2004年5月6日北京时间下午1点起重复半年零5天3小时,要重复3次,可以表示为R3/20040506T130000+08/P0Y6M5DT3H0M0S。对应的各地标准”

取消活动(边界事件)

边界事件支持配置是否取消活动,默认为取消活动,如上图、取消活动意味着 部门经理实例讲终止,并触发节点cancelled事件,流程进入边界事件 进入 副总审批节点

其他说明

  • 驳回推荐直接使用驳回功能,而不必画线条实现
  • agilebpm在更多节点类型支持上做了弱化处理,而更多的通过插件来辅助实现,比如:消息任务、服务任务等取而代之的是,消息插件,节点前后置groovy脚本配置等
  • 后面会支持动态事项任务,它是以任务为主要节点,动态生成或者回收事项的功能
  • activiti异常边界补偿等监听事件的支持,这里暂不支持。可进行规避此类场景产生。或者自行脚本扩展实现。