Sim

工作流

工作流模块允许您在当前工作流中将其他工作流作为可重用组件执行。这使得模块化设计、代码复用以及由更小、更专注的工作流组成的复杂嵌套工作流的创建成为可能。

工作流模块

工作流模块通过允许您使用更小的可重用组件来组成复杂的工作流,从而实现模块化设计。

概述

工作流模块充当工作流之间的桥梁,使您能够:

复用现有工作流:在新工作流中将之前创建的工作流作为组件执行

创建模块化设计:将复杂的流程分解为更小、更易管理的工作流

保持关注点分离:将不同的业务逻辑隔离在独立的工作流中

支持团队协作:在不同项目和团队成员之间共享和复用工作流

工作原理

工作流模块:

  1. 引用工作区中的另一个工作流
  2. 将当前工作流的输入数据传递给子工作流(通过 start.input 提供)
  3. 在隔离的上下文中执行子工作流
  4. 将结果返回给父工作流以进行进一步处理

配置选项

工作流选择

从工作区中可用工作流的下拉列表中选择要执行的工作流。列表包括:

  • 您在当前工作区中有权限访问的所有工作流
  • 其他团队成员与您共享的工作流
  • 启用和禁用的工作流(但只有启用的工作流可以执行)

执行上下文

子工作流的执行包括:

  • 独立的执行上下文
  • 访问相同的工作区资源(API 密钥、环境变量)
  • 正确的工作区成员资格和权限检查
  • 在执行日志中嵌套的追踪跨度

循环检测:系统会自动检测并防止工作流之间的循环依赖,以避免无限循环。

输入和输出

  • 工作流选择:选择要执行的工作流

  • 输入数据:传递给子工作流的变量或块引用

  • 执行上下文:带有工作区资源的独立环境

  • workflow.success:布尔值,指示完成状态

  • workflow.childWorkflowName:已执行的子工作流名称

  • workflow.result:子工作流返回的结果

  • workflow.error:如果工作流失败,提供错误详情

  • 工作流响应:子工作流的主要输出

  • 执行状态:成功状态和错误信息

  • 访问:在工作流之后的块中可用

示例用例

模块化客户入职

场景:将复杂的入职流程分解为可重用的组件

  1. 主工作流接收客户数据
  2. 工作流块执行验证工作流
  3. 工作流块执行账户设置工作流
  4. 工作流块执行欢迎邮件工作流

微服务架构

场景:创建独立的服务工作流

  1. 支付处理工作流处理交易
  2. 库存管理工作流更新库存
  3. 通知工作流发送确认信息
  4. 主工作流协调所有服务

条件处理

场景:根据条件执行不同的工作流

  1. 条件块评估用户类型
  2. 企业用户 → 复杂的审批工作流
  3. 标准用户 → 简单的审批工作流
  4. 免费用户 → 基础的处理工作流

最佳实践

  • 保持工作流专注:设计子工作流以处理特定的、定义明确的任务,并具有清晰的输入和输出
  • 最小化嵌套深度:避免深度嵌套的工作流层级,以提高可维护性和性能
  • 优雅地处理错误:为子工作流失败实施适当的错误处理,并提供备用机制
  • 独立测试:确保子工作流可以独立于父工作流进行测试和验证
  • 使用语义化命名:为工作流赋予描述性名称,清楚地表明其目的和功能
工作流