Skip to content

Start Workflow 任务

Start Workflow 任务用于在当前工作流程中启动另一个工作流程。它提供了工作流程之间的编排能力,支持复杂的业务流程组合。

核心特性

  1. 工作流编排

    • 子工作流启动
    • 参数传递
    • 状态管理
  2. 异步执行

    • 并行处理
    • 独立运行
    • 状态追踪
  3. 数据流控制

    • 输入参数映射
    • 输出数据获取
    • 上下文传递

任务参数

参数描述必需/可选
startWorkflow要启动的工作流定义对象必需
workflowName要启动的工作流名称必需
workflowVersion工作流版本可选,默认为最新版本
input传递给新工作流的输入参数可选
taskTimeout等待工作流完成的超时时间可选

配置示例

1. 基础工作流启动

{
  "name": "start_workflow",
  "taskReferenceName": "start_workflow_ref",
  "type": "START_WORKFLOW",
  "inputParameters": {
    "workflowName": "process_data",
    "workflowVersion": 1,
    "input": {
      "data": "${workflow.input.sourceData}",
      "config": {
        "processType": "standard",
        "priority": "normal"
      }
    }
  }
}

2. 带条件的工作流启动

{
  "name": "conditional_workflow",
  "taskReferenceName": "conditional_workflow_ref",
  "type": "START_WORKFLOW",
  "inputParameters": {
    "workflowName": "${workflow.input.amount > 1000 ? 'high_value_process' : 'standard_process'}",
    "workflowVersion": "1",
    "input": {
      "amount": "${workflow.input.amount}",
      "customerId": "${workflow.input.customerId}",
      "priority": "${workflow.input.amount > 1000 ? 'high' : 'normal'}"
    }
  }
}

3. 批量工作流启动

{
  "name": "batch_workflow_start",
  "taskReferenceName": "batch_workflow_ref",
  "type": "START_WORKFLOW",
  "inputParameters": {
    "workflowName": "process_item",
    "workflowVersion": 1,
    "input": {
      "items": "${workflow.input.itemList}",
      "batchId": "${workflow.workflowId}",
      "batchConfig": {
        "parallel": true,
        "maxConcurrent": 5
      }
    }
  }
}

使用场景

1. 数据处理流水线

{
  "name": "data_pipeline",
  "taskReferenceName": "data_pipeline_ref",
  "type": "START_WORKFLOW",
  "inputParameters": {
    "workflowName": "data_processing",
    "input": {
      "sourceData": "${workflow.input.data}",
      "processingSteps": [
        "validation",
        "transformation",
        "enrichment"
      ],
      "outputFormat": "json"
    }
  }
}

2. 审批流程

{
  "name": "approval_process",
  "taskReferenceName": "approval_process_ref",
  "type": "START_WORKFLOW",
  "inputParameters": {
    "workflowName": "multi_level_approval",
    "input": {
      "requestId": "${workflow.input.requestId}",
      "requestType": "${workflow.input.type}",
      "amount": "${workflow.input.amount}",
      "approvers": "${workflow.input.approverList}"
    }
  }
}

最佳实践

  1. 参数传递

    • 验证必需参数
    • 处理默认值
    • 类型转换检查
  2. 错误处理

    • 启动失败处理
    • 超时管理
    • 状态同步
  3. 版本控制

    • 明确版本号
    • 兼容性检查
    • 升级策略

性能优化

  1. 资源管理

    • 控制并发数
    • 批量处理
    • 超时设置
  2. 数据优化

    • 减少数据传输
    • 参数精简
    • 缓存利用

调试技巧

  1. 工作流追踪

    {
      "inputParameters": {
     "debug": {
       "parentWorkflowId": "${workflow.workflowId}",
       "startTime": "${system.currentTimeMillis}",
       "context": "${workflow.input}"
     }
      }
    }
  2. 状态监控

    {
      "inputParameters": {
     "monitor": {
       "childWorkflows": [],
       "startTime": "${system.currentTimeMillis}",
       "status": "RUNNING"
     }
      }
    }

错误处理

常见错误

  1. 启动错误

    • 工作流不存在
    • 参数验证失败
    • 权限不足
  2. 运行错误

    • 执行超时
    • 资源不足
    • 依赖服务失败

错误响应

{
  "status": "FAILED",
  "error": "WORKFLOW_START_ERROR",
  "message": "Failed to start workflow",
  "details": {
    "workflowName": "process_data",
    "errorCode": "INVALID_INPUT",
    "errorMessage": "Required parameter 'data' is missing"
  }
}

监控建议

  1. 性能指标

    • 启动时间
    • 执行时间
    • 完成率
  2. 资源指标

    • 并发数量
    • 资源使用
    • 队列长度

安全考虑

  1. 访问控制

    • 权限验证
    • 资源限制
    • 数据隔离
  2. 数据安全

    • 敏感信息处理
    • 传输加密
    • 审计日志

UI 配置指南

  1. 基本配置

    • 选择工作流
    • 设置版本
    • 配置参数
  2. 高级选项

    • 超时设置
    • 重试策略
    • 监控配置
  3. 监控面板

    • 执行状态
    • 性能指标
    • 日志查看

飞流云