Appearance
同步运行工作流
🔄 同步执行
此接口会等待工作流执行完成。如果超过服务器限制时长,会返回执行 ID 转为异步查询。
接口描述
同步执行指定的工作流,等待工作流执行完成后返回结果。如果执行时间超过服务器限制时长,则返回执行 ID(异步结果),可后续继续轮询查询。
请求方式
POSThttps://newapi.iflyrpa.com/api/rpa-openapi/workflows/execute认证要求
需要带 BEARER TOKEN
请在请求头中添加:
Authorization: Bearer {YOUR_API_KEY}请求头
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Content-Type | String | 是 | application/json |
| Authorization | String | 是 | Bearer |
请求体参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| project_id | String | 是 | 工作流项目 ID |
| exec_position | String | 是 | 执行位置,通常为 "EXECUTOR" |
| params | Object | 否 | 工作流参数,key-value 对象 |
| version | Integer | 否 | 工作流版本号,不填默认运行当前启用版本 |
请求示例
json
{
"project_id": "1939577693560815616",
"exec_position": "EXECUTOR",
"params": {
"inputer": "查一下"
}
}响应格式
成功响应 (HTTP 200) - 执行完成
json
{
"code": "0000",
"msg": "",
"data": {
"execution": {
"id": "a1897e55-1299-40dd-ab3d-343d3031f640",
"project_id": "1939577693560815616",
"status": "COMPLETED",
"parameters": "{'inputer': '查一下'}",
"result": "{'p_variable': '查到了'}",
"error": null,
"exec_position": "EXECUTOR",
"version": 1,
"user_id": "19dc80c8-8963-4431-9e8e-bdbc7bcee626",
"start_time": "2025-07-02T10:46:15",
"end_time": "2025-07-02T02:46:26"
}
}
}成功响应 (HTTP 200) - 执行超时,返回异步结果
如果执行时间超过服务器限制时长,则返回执行 ID,此时只包含基本信息:
json
{
"code": "0000",
"msg": "",
"data": {
"execution": {
"id": "a1897e55-1299-40dd-ab3d-343d3031f640",
"status": "PENDING"
}
}
}响应字段说明
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
| code | String | 响应代码,"0000" 表示成功 |
| msg | String | 响应消息 |
| data | Object | 返回的数据对象 |
data 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
| execution | Object | 工作流执行信息对象 |
execution 字段(执行完成时)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | String | 执行 ID |
| project_id | String | 工作流项目 ID |
| status | String | 执行状态(COMPLETED 或 FAILED) |
| parameters | String | 工作流输入参数(JSON 字符串格式) |
| result | String | 执行结果(JSON 字符串格式,包含返回数据) |
| error | String | 错误信息,仅在失败时有值 |
| exec_position | String | 执行位置 |
| version | Integer | 工作流版本号 |
| user_id | String | 执行用户 ID |
| start_time | String | 开始时间(ISO 8601 格式) |
| end_time | String | 结束时间(ISO 8601 格式) |
execution 字段(执行超时时)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | String | 执行 ID,可用于后续异步查询 |
| status | String | 执行状态(PENDING 表示仍在运行) |
说明
- 此接口为同步调用,会阻塞等待工作流执行完成
- 如果工作流执行时间超过服务器限制时长,则返回执行 ID 和 PENDING 状态
- 当返回 PENDING 状态时,可使用执行 ID 调用"获取工作流运行结果"接口继续查询
parameters和result字段为 JSON 字符串格式,需要解析为对象才能使用params参数中的键必须与工作流定义中的参数名称匹配- 建议为同步调用设置合理的超时时间(如 30-60 秒)
代码示例
cURL
bash
curl -X POST "https://newapi.iflyrpa.com/api/rpa-openapi/workflows/execute" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {YOUR_API_KEY}" \
-d '{
"project_id": "1939577693560815616",
"exec_position": "EXECUTOR",
"params": {
"inputer": "查一下"
}
}'Python
python
import requests
import json
url = "https://newapi.iflyrpa.com/api/rpa-openapi/workflows/execute"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_API_KEY}"
}
data = {
"project_id": "1939577693560815616",
"exec_position": "EXECUTOR",
"params": {
"inputer": "查一下"
}
}
response = requests.post(url, headers=headers, json=data, timeout=60)
result = response.json()
print(result)
execution = result['data']['execution']
status = execution['status']
execution_id = execution['id']
if status == "COMPLETED":
print("✓ 工作流已完成")
# 解析结果字符串为对象
parameters = json.loads(execution['parameters'])
result_data = json.loads(execution['result'])
print(f"输入参数: {parameters}")
print(f"执行结果: {result_data}")
elif status == "FAILED":
print("✗ 工作流执行失败")
result_data = json.loads(execution['result'])
print(f"错误信息: {result_data}")
elif status == "PENDING":
print("⏳ 工作流执行超时,返回异步结果")
print(f"执行 ID: {execution_id},可稍后查询结果")JavaScript
javascript
const apiKey = "{YOUR_API_KEY}";
const url = "https://newapi.iflyrpa.com/api/rpa-openapi/workflows/execute";
const data = {
"project_id": "1939577693560815616",
"exec_position": "EXECUTOR",
"params": {
"inputer": "查一下"
}
};
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => {
console.log(result);
const execution = result.data.execution;
const status = execution.status;
const executionId = execution.id;
if (status === "COMPLETED") {
console.log("✓ 工作流已完成");
const parameters = JSON.parse(execution.parameters);
const resultData = JSON.parse(execution.result);
console.log("输入参数:", parameters);
console.log("执行结果:", resultData);
} else if (status === "FAILED") {
console.log("✗ 工作流执行失败");
const resultData = JSON.parse(execution.result);
console.log("错误信息:", resultData);
} else if (status === "PENDING") {
console.log("⏳ 工作流执行超时,返回异步结果");
console.log(`执行 ID: ${executionId},可稍后查询结果`);
}
})
.catch(error => console.error("Error:", error));