Orchestrator

Configure a Workflow

文本由 Phrase Language AI 从英语机器翻译而得。

要继续示例工作流,需要进行配置。

可以通过点击编辑参数,在配置选项卡上访问块配置,或者右键点击块并选择编辑参数,以打开编辑参数窗口。一旦块具有参数,添加参数按钮将切换为编辑参数

要配置示例的块,请按照以下步骤操作:

  1. 打开 编辑参数 窗口以进行 language-blue.svg列出区域 操作。

  2. 访问令牌项目字段将需要在运行时解析的动态值。

    1. 单击Linking Icon的链接图标以获取访问令牌字段,并选择circle-blue.svg获取访问令牌操作。

      链接变为绿色,字段可以编辑。

    2. 访问引用触发器或操作属性的语法为:

      {{$.path.to.value}}

      对于circle-blue.svg获取访问令牌的输出为:

      { "tokens": {"strings_token":"STRINGS_TOKEN", "tms_token":"TMS_TOKEN"} }

      使得访问令牌字段所需的表达式为{{$.tokens.strings_token}}

    3. 单击 Linking Icon 的链接图标,针对 项目 字段,选择 history-orange.svg上传:创建 触发器。

      链接变为绿色,字段可以编辑。

    4. history-orange.svg上传:创建 触发器的输出类似于:

      {
        "branch": {
          "name": "my_branch"
        },
        "event": "上传:创建",
        "message": "用户-1 初始化文件上传 file.yml 在项目 name_1672734591_11 中的分支 my_branch\n\
        "project": {
          "created_at":"2023-01-03 08:29:51 UTC",
          "id": "abcdabcdabcdabcd-11",
          "main_format": "yml",
          "name": "name_1672734591_10",
          "point_of_contact": null,
          "project_image_url": null,
          "slug": "name_1672734591_10",
          "updated_at":"2023-01-03 08:29:51 UTC"
        },
        "upload": {
          "created_at":"2023-01-03 08:29:48 UTC",
          "filename": "file.yml",
          "format": "yml",
          "id": "upload-1",
          "state": "initialized",
          "summary": {},
          "tag": null,
          "updated_at":"2023-01-03 08:29:48 UTC"
        },
        "user": {
          "gravatar_uid":"29a2d1baa67d4ea524cf0f247f7bbb94",
          "id":"9c365b9a6f77c247c3de959f6152b231",
          "name":"Joe Sixpack",
          "username": "user-1"
        }
      }
      

      项目 字段设置必填表达式 {{$.project.id}}

    5. 点击保存

      编辑参数窗口关闭,操作的参数被保存。

  3. 项目的默认区域是必需的,需通过将 ID 传递给 work-blue.svg创建工作 操作来创建工作。circle-blue.svg使用 jq 转换 JSON 操作接收 JSON 输入,应用指定的筛选器,然后再次输出 JSON。

    1. 工作流块 窗口的 操作 选项卡中,搜索 phrase-jq

      circle-blue.svgTransform JSON with jq 操作块拖放到 language-blue.svglist locales 操作下方以连接它们。

    2. 打开编辑参数窗口以进行使用jq转换JSON操作。

    3. 输入类型 下拉列表中选择 JSON

    4. 单击Linking Icon的链接图标以获取输入字段,并选择language-blue.svg列出区域操作。

      链接变为绿色,字段可以编辑。

    5. Input字段接受 JSON 输入。一个特殊的固定表达式(@而不是$)确保参考操作的整个输出被传递到字段中。

      Input字段中输入表达式{{@.outputs.result}}

    6. 点击 Linking Icon 的链接图标,针对 Jq 字段,选择 language-blue.svg列出区域 操作。

      链接变为绿色,字段可以编辑。

    7. 需要使用一个筛选器对区域列表进行筛选,返回一个新列表,包含所有 default 属性为 true 的元素。

      每个项目只能有一个默认区域,列表中有一个可识别且必需的元素。该元素可以通过.[0]数组语法直接访问。

      Jq字段中输入表达式map(select(.default))|.[0]

    8. 点击保存

      编辑参数窗口关闭,操作的参数已保存。

  4. work-blue.svg创建工作操作现在可以配置,并将使用之前块的模式。

    1. 单击Linking Icon的链接图标以获取访问令牌字段,并选择circle-blue.svg获取访问令牌操作。

      链接变为绿色,字段可以编辑。

      输入表达式{{$.tokens.strings_token}}

    2. 单击 Linking Icon 的链接图标,针对 项目 字段,选择 language-orange.svg上传:创建 触发器。

      链接变为绿色,字段可以编辑。

      输入表达式{{$.project.id}}

    3. 单击 Linking Icon 的链接图标,针对 源区域 字段,选择 使用 jq 转换 JSON 操作。

      链接变为绿色,字段可以编辑。

      输入表达式{{@.outputs.result}}

    4. 截止日期可以通过使用sprig或Expr函数计算,但为了本示例,将使用API理解的硬编码日期。

      截止日期字段中,输入2023-12-31T12:00:00Z

    5. 点击保存

      配置已保存,详细信息可以在 配置 选项卡中查看。

  5. 每个操作可以有一个或多个条件,结合逻辑 ANDOR。这些条件在运行时进行评估,只有当条件评估为真时,操作及其子项才会执行。

    为了在示例中反映这一点,在选择work-blue.svg创建工作操作时,点击编辑条件,在条件选项卡中,或右键点击该块并选择编辑条件

    编辑条件窗口已打开。

    1. 遵循之前块的模式,将 变量 字段链接到 language-orange.svg上传:创建 触发器,并输入表达式 {{$.upload.tag}}

    2. 从第一个下拉列表中选择 NOT 以反转语句。

    3. 比较下拉列表中选择为空

    4. 点击保存

      条件在条件选项卡上显示。

    如果上传不包含标签(意味着没有新的/更新的键/翻译),工作流将在此点停止。

  6. 现在需要目标区域用于工作。为了示例的目的,将创建两个区域;一个用于西班牙语(es-ES),一个用于德语(de-DE)。在步骤3中,将区域添加到 编辑参数 窗口中的两个 circle-blue.svg使用 jq 转换 JSON 操作中。

    1. 在两个操作的输入字段中,输入表达式{{@.outputs.result}},链接到language-blue.svg列表区域操作并保存参数。

    2. 在一个操作的Jg字段中,输入表达式map(select(.name == "es-ES"))|.[0]并链接到language-blue.svg列表区域操作。

      保存参数。

    3. 在第二个操作中,输入表达式map(select(.name == "de-DE"))|.[0]并链接到language-blue.svg列表区域操作。

      保存参数。

  7. 区域现在将应用于工作创建。

    配置两个work-blue.svg将目标区域添加到工作操作,使用之前定义的相同模式。

  8. 现在可以启动工作。

    使用之前定义的相同模式配置work-blue.svg启动工作操作。

这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.