启动工作流作业

为指定工作流发起一次执行。请求成功后,保存返回的执行 ID,再查询该作业的状态和结果;请求成功不表示工作流已完成。

POST https://moi.matrixorigin.cn/newmoi/workflow/v2/workflow-apps/{workflow_id}/executions

调用前准备

查询工作流详情,确认工作流的运行时字段和执行配置。准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $WORKFLOW_ID:要运行的工作流 ID。

请求体不能包含 runtime_context

路径参数

参数

类型

说明

workflow_id

string

要运行的工作流 ID。

请求体

字段

类型

是否必填

说明

values

object

以运行时表单 field_id 为键的输入值。服务端会与工作流默认值合并并校验必填字段。

trigger_now

boolean

是否立即触发执行。

run_once

boolean

Cron 工作流设为 true 时,本次运行按一次性执行处理。

execution_mode

string

不支持传入;传入非空值会返回参数错误。执行模式由已发布的工作流决定。

compute_resource_id

string

本次运行使用的计算资源 ID。

请求示例

curl -X POST "https://moi.matrixorigin.cn/newmoi/workflow/v2/workflow-apps/$WORKFLOW_ID/executions" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "values": {
      "<FIELD_ID>": "<VALUE>"
    },
    "trigger_now": true
  }'

成功响应

成功时返回 200。请求被受理不表示执行已完成;保存 data.workflow_run.execution_id,并用它查询作业详情和结果。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "workflow_run": {
      "execution_id": "exec-001",
      "workflow_id": "wf-001",
      "status": "ready",
      "available_actions": ["cancel"],
      "execution_mode": "one_shot",
      "moi_task_id": "task-001",
      "moi_case_id": "case-001",
      "moi_workflow_def_id": "def-001",
      "moi_workflow_version_id": "ver-001"
    }
  }
}

响应字段如下。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.workflow_run.execution_id

string

新建作业的执行 ID。

data.workflow_run.workflow_id

string

工作流 ID。

data.workflow_run.status

string

创建时的当前执行状态;应继续查询确认最终状态。

data.workflow_run.available_actions

string(字符串数组)

当前状态允许的后续动作。

data.workflow_run.execution_mode

string

本次执行使用的模式。

data.workflow_run.moi_task_id

string

服务端已分配时返回的任务标识。

data.workflow_run.moi_case_id

string

服务端已分配时返回的案例标识。

data.workflow_run.moi_workflow_def_id

string

本次执行关联的工作流定义标识。

data.workflow_run.moi_workflow_version_id

string

本次执行关联的工作流版本标识。

data.workflow_run.error

string

当前错误;有值时返回。

错误响应

{
  "code": "ErrParamInvalid",
  "msg": "请求参数无效",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

JSON 无效、包含 runtime_context、传入 execution_mode,或运行时字段、DSL、Cron、计算资源配置不符合要求。

读取工作流详情,按其运行时字段和执行配置提交。

401

ErrUnauthorized

缺少或无效的访问凭据。

检查 API Key 和工作区 Header。

403

ErrForbidden

当前身份没有工作流运行权限。

请求授予 workflow.run 权限。

404

ErrNotFound

工作流不存在或对当前工作区不可见。

核对工作区和工作流 ID。

409

ErrConflict

工作流当前状态不允许启动。

读取工作流状态后再试。

503

ErrServiceUnavailable

依赖服务暂不可用。

稍后重试。

500

ErrServer

服务端未能创建执行。

稍后重试。

后续操作

记录 data.workflow_run.workflow_iddata.workflow_run.execution_id。请求受理不表示执行完成。用这两个标识查询工作流作业详情跟踪状态;需要产出时再查询工作流作业结果

最后更新于