触发器
触发器概述
触发器管理功能用于创建和管理任务的运行计划。系统会根据触发器设定的规则自动派发任务,无需人工干预。
触发器分为两种类型,分别适用于不同场景:
时间触发器:基于时间规则自动触发任务,适用于定时执行或重复执行的自动化业务场景。例如机器人固定每天进行资产排查、每月月底进行财务对帐处理等。时间触发器允许用户设定一个灵活的时间规则,系统将按照时间规则创建任务。
队列触发器:监控指定队列,当队列消息数量达到要求时,自动触发任务以消费队列数据。适用于需要批量处理大量业务数据的场景,可保证队列中的业务数据及时被机器人处理。例如各分中心的财务机器人每天不定时提交报销申请数据到队列,总部的财务机器人则到队列中提取报销申请数据,再统一进行报销处理。
注意:
- 时间触发器是6.5版本中新增加的概念,用于替代原有的“触发器”。系统从6.5版本之前升级到6.5及之后版本时,已有触发器将自动归类为“时间触发器”。
- 队列触发器是6.5版本新增功能。
新建触发器
根据触发器的类型,新建触发器的操作有所不同。以下分类型进行详细说明。
新建时间触发器
新建时间触发器的流程分为三个步骤:
第一步:设置基本信息
此步骤需要设置触发器的基本信息。
设置项说明:
- 触发器名称:名称需全局唯一,不可与其他触发器重名。
- 选择流程:选择流程列表中的流程,触发器将基于该流程启用的版本运行。
- 选择部门:任务归属的部门。
- 选择流程机器人:指定任务执行的流程机器人,可选择无人值守机器人或流程机器人组中的指定机器人。
- 创建任务条数:每次触发时创建任务的数量。例如,设置为2时将创建2条任务。
- 优先级:任务优先级,高优先级任务将优先被机器人执行。
- 最大运行时长:任务运行的最长时间,超出设置值时系统将下发停止命令。
- 有效期:任务的有效期限,单位为“天”。任务超过有效期且未运行时将自动失效,无法被执行。
- 录屏:是否录制流程机器人的屏幕。
- 说明:触发器的附加说明。
任务有效期为6.5版本新增功能。
第二步:设置触发器规则
此步骤需配置时间触发器的详细规则。
设置项说明:
- 触发器周期:设置触发器的时区,并可启用工作日历,基于工作日触发任务。
- 启动时间:触发器开始触发任务的时间。
- 结束时间:触发器结束触发任务的时间,可选择“永不结束”或指定结束时间。
- 触发器规则:支持基本规则或自定义规则。自定义规则使用CRON表达式进行设置。
基础规则
基础规则支持设置运行频率和规则:
- 运行频率:运行频率的最小粒度支持到“分钟”。
- 运行规则:可设置为指定时间点执行或间隔一定时间后重复执行。
自定义规则
自定义规则通过CRON表达式自由设置。
CRON表达式结构为“分 时 天 月 周”,例如“5 1 *”表示“每月每周第1天的第5分钟触发”。
CRON表达式支持的字段和符号如下:
字段 | 是否必填 | 允许值 | 允许的特殊字符 |
---|---|---|---|
秒(second) | 是 | 0~59 | , - * / |
分(minute) | 是 | 0~59 | , - * / |
小时(hour) | 是 | 0~23 | , - * / |
日期(day of month) | 是 | 1~31 | , - * ? / L W |
月份(month) | 是 | 1~12 | , - * / |
星期(day of week) | 否 | 0~6 | , - * ? / L # |
符号 | 说明 |
---|---|
, | 列出多个值,例如6,17,33表示第6、17、33分钟触发。 |
- | 指定范围,例如2-9表示2到9点触发。 |
* | 匹配所有值,例如在Minutes域使用*表示每分钟触发。 |
? | 类似*,替换使用非强制。 |
/ | 从起始值开始,每隔固定时间触发,例如5/20表示从第5分钟开始,每隔20分钟触发。 |
W | 指定日期最近的工作日触发,例如15W表示离每月15号最近的工作日触发。 |
# | 每月的第几个周几,例如5#3表示每月的第三个周五触发。 |
第三步:触发器确认
此步骤可查看触发器的基本信息、规则及预计执行信息。确认无误后点击“确定”完成保存。
新建队列触发器
新建队列触发器的流程分为三个步骤:
第一步:设置触发器信息
此步骤需设置队列触发器的基本信息。
设置项说明:
各设置项如下:
触发器名称:全局唯一,不能与其他任意一个触发器重名
触发队列:触发器监控的队列,需要选择一个已有的队列,注意您只能见到您权限范围内的队列。如果发现不能见到想要的队列,可联系该队列的负责人添加您为协作者
触发最少有效消息数:队列中的
未消费-已生效
消息数达到此数量时,将开始触发任务。输入范围为1至1000,默认值为1
设置建议:如果您期望队列的消息有一定积压之后,再开始执行任务集中消费任务,可以根据需要设置此值,以避免机器人过快地处理掉队列消息。
- 每隔一段时间检查,即使有效消息数不足,依旧触发:当您设置的触发最少有效消息数大于1时,此选项才会出现,此选项主要用于避免队列中剩余的有效消息很少时无法触发任务来处理这些数据。建议根据业务情况设置为业务数据可以等待的处理时间
设置建议:此选项通常用于处理队列中最后剩余的少数消息,例如当设置触发最少有效消息数为10时,队列中的消息被任务消费到不足10条时,将不再触发任务。如果后续队列消息依然不增长,则这些消息可能一直无法被及时处理。此时您可以勾选此选项确保剩余的消息也能够被触发。
- 检查间隔时间:如果您勾选了每隔一段时间检查,即使有效消息数不足,依旧触发选项,则会出现此选项,您需要设置系统每隔多久时间强制触发任务来处理队列中不足有效消息数的剩余消息。您可以从系统提供的固定时间间隔中选取一个值。系统提供的选项为
10分钟
、20分钟
、60分钟
、90分钟
、120分钟
设置建议:您可以根据业务上可以容忍的等待时间进行设置,例如业务上希望消息能在2小时内被处理,您可以考虑设置此值为60分钟。
- 平均每若干条消息触发一次:系统将结合当前消息总数和此值确定每分钟触发次数,建议设置为一个流程可处理的消息数,例如一个流程可处理10条消息,则可以设置为10。注意:一个队列触发器所触发的任务中,同时处于
待运行
和运行中
的任务总数不会超过所指定的流程机器人数量。例如指定为单个流程机器人时,则不会超过1个,如果指定为流程机器人组时,则不会超过流程机器人组内的机器人总数个。触发器每分钟检测是否触发任务,如果满足触发任务的条件,则将立即触发N次任务,N的计算方式如下:
info
假定:
a = 当前队列中的未消费-已生效
消息数量
b = 平均每若干条消息触发一次设定的值
c = 当前队列触发器已经触发的任务中,处于待运行
和运行中
的任务总数
那么计算方式为:N = RoundUp( a / b ) - c ,其中RoundUp的意思是向上取整。
举例:假设设定的平均每若干条消息触发一次为10,指定的机器人组有6个机器人,当前队列触发器已经
产生的任务中有3个仍然处于待运行
/运行中
状态。当前队列中还有78条有效消息,则理论上此时会触发
RoundUp(78/10) - 3 = 5次。但是系统又需要保证同时处于待运行
和运行中
的任务总数不会超过所指定的流程机器人数量,所以最终会触发的次数为3次(机器人总数6 - 待运行/运行中的任务3 = 3)。
自定义工作日历:选择是否启用自定义工作日历,开启时需要选择一个自定义日历并进行详细的日历设置。详见下文自定义日历操作说明章节
说明:触发器的说明
warning
注意:队列触发器每分钟进行一次触发检查,由于机器人执行任务需要一定时间,机器人不一定能立即消费队列数据,所以可能出现队列中的消息数只够触发X个任务,但是实际上触发的任务数超出X个的情况,因此超出部分的任务可能实际取不到队列数据。针对这种情况,建议您在设计流程时考虑:
- 流程中,尽量早点取队列消息
- 流程中,在取队列消息的时候做容错处理,例如如果没有取到队列消息,则此次业务中止等。
第二步:设置任务信息
此步骤需配置队列触发器的任务信息。
设置项说明:
- 选择流程:选择流程列表中的流程。
- 选择部门:任务归属的部门。
- 选择流程机器人:指定任务执行的流程机器人。
- 创建任务条数:每次触发时创建任务的数量,队列触发器中固定为1。
- 任务优先级:任务优先级,高优先级任务将优先被机器人执行。
- 最大运行时长:任务运行的最长时间。
- 有效期:任务的有效期限。
- 录屏:是否录制流程机器人的屏幕。
第三步:触发器确认
此步骤可查看触发器的基本信息、规则及预计执行信息。确认无误后点击“确定”完成保存。
自定义工作日历
新建工作日历
点击“新建日历”按钮设置名称、日历模板和时间范围即可保存。
日历模板提供以下三种类型:
- 周末双休日历:周六和周日为非工作日。
- 周日单休日历:周日为非工作日。
- 空白日历:所有日期为工作日。
创建后可通过点击日历上的日期设置为非工作日,或上传日历文件进行设置。
添加协作者
点击触发器列表中的触发器,选择“添加协作者”设置对应的协作者。
角色名称 | 说明 |
---|---|
管理者 | 可编辑、删除触发器并添加协作者。 |
使用者 | 可查看触发器。 |
触发器详情
触发器详情包括基本信息、触发规则、触发记录和归属信息等内容,具体展示字段根据触发器类型有所不同。
时间触发器详情
基本信息展示字段:
- 名称
- 状态(启用或关闭)
- 流程名称
- 部门名称
- 流程机器人
- 任务优先级
- 新建重复任务
- 最大运行时长
- 录屏
- 说明
触发规则展示字段:
- 自定义工作日历
- 启动时间
- 结束时间
- 运行逻辑
- 下次启动时间
队列触发器详情
基本信息展示字段:
- 名称
- 状态(正常或异常)
- 是否启用
- 触发器类型
- 触发队列
- 最少有效消息数
- 检查间隔时间
- 平均每若干条消息触发一次
- 自定义工作日历
- 说明
任务信息展示字段:
- 流程名称
- 部门名称
- 流程机器人
- 任务优先级
- 最大运行时长
- 录屏
触发器记录
点击触发器列表中的触发器可查看触发记录。记录包括每次触发的时间、时区、触发结果,以及对应任务的编号、流程名称、流程机器人和任务状态。
编辑触发器
点击“编辑”按钮可修改触发器信息,编辑功能与新建时一致,但触发器时区不可修改。
note
触发器指定的流程在触发器引用的流程版本发生变化时(例如流程发布新版本或流程版本切换等),其引用的触发器中每个参数的变化,将遵循以下规则:
- 若新版本流程中的参数保持不变,则触发器中的对应参数将继续保持其原有设置。
- 若新版本流程中的参数默认值有所变动,触发器中的对应参数仍将维持原设置。
- 若新版本流程中的参数类型发生改变,触发器中的对应参数将调整为新参数的默认值。
- 若新版本流程中的参数被移除,触发器中的对应参数也将被移除。
- 若新版本流程中的参数名称发生更改,触发器中的对应参数名称也将随之更改,并采用新参数的默认值。
为此,建议在开发新版本流程时,注意以下事项:
- 若参数的含义未改变,则尽可能不要修改该参数的名称或类型。
- 若参数的修改可能会引起触发器参数的变化,请务必提前通知相关业务人员,以便他们能够及时进行调整。
删除触发器
点击“删除”按钮并通过二次确认即可删除对应触发器。
权限管理
点击触发器的“权限管理”按钮可管理触发器权限,支持添加或删除协作者。
角色名称 | 说明 |
---|---|
管理者 | 可编辑触发器、分配权限等。 |
使用者 | 可查看触发器。 |