Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

步骤

步骤(Step)是流程的基本执行单元。每个步骤可以使用一个内置或自定义包(uses),并传递参数(params)。步骤按顺序执行,也可以包含分支、异常处理和超时处理。

name: test
steps:
    - id: step1
      name: step 1
      uses: acts.core.irq
      params:
        key: act1

    - id: step2
      name: step 2
      uses: acts.transform.set
      params:
        a: 10

步骤包含的属性有:

key名 称说 明
id标识步骤节点的唯一标识
name名称有意义的名称,可以是中文等任意字符
desc描述步骤描述信息
tag标签标签设置
rn资源名用于权限控制的资源名称
uses包名使用的包名称,如 acts.core.irqacts.transform.set
params参数传递给包的参数
vars变量本地变量定义
if条件根据条件判断是否跳过当前步骤执行,如 ${{ a }} > 0
while循环条件循环:条件满足时反复执行当前步骤
catches异常步骤错误后进行异常处理,类型为 Step 列表
timeouts超时超时处理,类型为 Step 列表
branches分支步骤分支,一个步骤可以有多个分支
next下一步当步骤完成后,可直接跳转到指定步骤执行
options选项额外选项,如 exposes 导出变量
metadata元数据用于UI样式的额外信息,不发送给客户端

while 的步骤是有界循环:每轮迭代前都会重新求值条件,满足则重复执行; 条件不满足时该步骤被跳过,流程按声明顺序落到它后面的步骤:

steps:
    - id: add
      while: index < input
      uses: acts.transform.code
      params: |
          $set("value", value + index);
          $set("index", index + 1);

    - id: end

if 条件不满足时步骤同样被跳过并落到后面的步骤(此时不会执行指向自身或向后的 next),因此 ifnext 保持原有语义,whilenext 不能同时使用。

多活动步骤

当步骤需要执行多个活动时,可以使用 acts.core.block 包,在 params 中嵌套定义子活动列表:

steps:
    - id: step1
      uses: acts.core.block
      params:
        mode: sequence
        acts:
          - uses: acts.core.irq
            params:
              key: act1
          - uses: acts.core.msg
            params:
              key: msg1

acts.core.parallel 可以对集合进行并行执行,acts.core.sequence 可以对集合进行顺序执行。