触发校验
1. 简介
当「智能助手Pro」的设置不符合预设要求时,将触发相关校验。
2. 循环校验
校验逻辑:「智能助手Pro」支持成环配置(包括:自循环、链循环),但不会循环执行。会在完整执行一次「智能助手Pro」后自动中断,不会进入下一次循环,且不作为执行失败的情况进行提醒。
2.1 自循环
在单个「智能助手Pro」的配置中,若执行动作中包含了与触发动作相同的动作,会形成自循环。
2.1.1 示例说明
在下图所示的「智能助手Pro」配置中,触发动作为「新增 A 表数据」,而执行动作中也包含了「新增 A 表数据」,导致了自循环的发生。即:
- 新增 A 表数据后,触发「智能助手Pro」;
- 执行新增 A 表数据动作,再次触发「智能助手Pro」;
- 执行新增 A 表数据动作,再次触发「智能助手Pro」;
- 无限循环……
2.1.2 预期效果
为了避免无限循环的发生,当前「智能助手Pro」触发后,会在完整执行一次循环(即,触发后执行查询单条数据和新增 A 表数据动作)后自动中断,不再进行下一次触发。
2.2 链循环
在多个「智能助手Pro」的配置中,当「前一个智能助手 Pro 的执行动作」中包含了与「后一个智能助手 Pro 的触发动作」相同的动作时,会形成触发链路,触发可以在链路中进行传递。
则,在触发链路中,当「最后一个智能助手 Pro 的执行动作」中包含了与「第一个智能助手Pro的触发动作」相一致的动作时,会形成链循环。
2.2.1 示例说明
如下「智能助手Pro」配置中,形成了「Pro1 >> Pro2 >> Pro3」的触发链路:
- 智能助手Pro1:「A 表新增数据」时触发,执行动作中包含了「 新增 B 表数据」;
- 智能助手Pro2:「B 表新增数据」时触发,执行动作中包含了「 新增 C 表数据」;
- 智能助手Pro3:「C 表新增数据」时触发,执行动作中包含了「 新增 A 表数据」。
且「智能助手Pro3」的执行动作中包含了与「智能助手Pro1」触发动作一致的动作,导致了链循环的发生。即:
- Pro1 触发 Pro2,Pro2 触发 Pro3;
- Pro3 再次触发 Pro1,则 Pro1 触发 Pro2,Pro2 触发 Pro3;
- Pro3 再次触发 Pro1,则 Pro1 触发 Pro2,Pro2 触发 Pro3;
- 无限循环……
2.2.2 预期效果
为了避免无限循环的发生,当第一个「智能助手Pro」触发后,会在完整执行一次链路(即,Pro1 触发 Pro2,Pro2 触发 Pro3 )后自动中断,不再进行下一次触发。
3. 层级嵌套
校验逻辑:「智能助手Pro」不限制配置时的嵌套层级,但最多支持执行 10 层。执行时会进行层级校验,当超过 10 层时,会立即中断执行。
3.1 示例说明
在如下「智能助手Pro」配置中,形成了「Pro1 >> Pro2 >> Pro3」的触发链路。其中,Pro1 触发 Pro2,Pro2 触发 Pro3,形成了 2 层嵌套。
- 智能助手Pro1:「A 表新增数据」时触发,执行动作中包含了「 新增 B 表数据」;
- 智能助手Pro2:「B 表新增数据」时触发,执行动作中包含了「 新增 C 表数据」;
- 智能助手Pro3:「C 表新增数据」时触发,执行动作中包含了「 新增 D 表数据」。
3.2 预期效果
同理,在触发链路「Pro1 >> Pro2 >> Pro3 >> Pro4 >> Pro5 >> Pro6 >> Pro7 >> Pro8 >> Pro9 >> Pro10 >> Pro11 >> Pro12」中,形成了 11 层嵌套。则执行时,会在触发完 Pro11(第 10 层)后自动中断,并报错。
4. 注意事项
1)「智能助手Pro」与「智能助手」间不会互相触发。如,「智能助手Pro」执行了「新增 A 表数据」操作后,不会联动触发「触发动作为新增 A 表数据」的「智能助手」;反之,同理。
2)以触发链路「Pro1 >> Pro2 」为例,说明如下特殊情况:
- 当 Pro1 触发 Pro2 的执行动作是新增数据,则新增一或多条数据均可触发 Pro2;
- 当 Pro1 触发 Pro2 的执行动作是修改数据,只有修改一条数据时,才会触发 Pro2,修改多条数据是不会触发 Pro2 的。