Universe 帮助中心

8.3 工作流调用

创建于 2022-10-21 / 最近更新于 2023-01-11 / 1532
字体: [默认] [大] [更大]

支持通过API提供底层任务调度能力的支撑,包括:工作流定义的运行触发、工作流实例的状态查询。

1. 工作流定义运行

接口定义

请求方式:POST

请求URL:$home_url/universe/public-api/process/{processId}/run

home_url需要填入对应环境的IP/域名,eg: http://u.guandata.com

请求参数:

NameLocation类型含义必填备注
Content-TypeHeaderString内容类型application/json;charset=utf-8
tokenHeaderString登录用的Token调用登录校验API获取(8.1 登录校验
processId请求URLInt工作流定义ID

工作流定义ID,

ID获取方式:(9.1 外部系统集成常见问题

paramsBodyJson工作流参数

Json对象数组格式的工作流参数,仅支持传入当前工作流内已定义好的参数,获取方式(4.7.1 参数与变量

|_nameBodyString参数名按需调用工作流需要传入的工作流参数名
|_valueBodyString参数值按需

调用工作流需要传入的工作流参数值。

注意需要统一用文本类型传入,平台会按照该参数值的具体类型进行解析和使用。

(参数值支持使用系统参数/时间自定义参数,4.7.1 参数与变量

followScheduleStrategy

BodyBoolean沿用工作流调度设置中的运行结果通知策略(3.3.0及以上版本可用)默认值:false

followAlertSettings

BodyBoolean沿用工作流及节点设置的默认通知渠道(3.3.0及以上版本可用)默认值:false


返回参数:

Name类型含义返回条件备注
processInstanceIdInt本次工作流运行后产生的实例ID运行成功
nameString本次工作流运行后产生的实例名称运行成功

接口调用示例

Header 示例

{
   "Content-Type": "application/json; charset=utf-8",
   "token": "ab7f1665-8dfc-4d8f-928d-c7a5aefc9332"  /*登录校验接口获得的Token(参考8.1)*/
}

POST Body 示例

{
   "params": [  /* 参数列表,若参数缺省未提供,则以工作流定义内设置的默认参数运行 */
   {
       "name": "prop1",
       "value": "value1"
   },
   {
       "name": "prop2",
       "value": "value2"
   }
 ]
}

Response

//启动工作流定义运行成功
{
   "code": 0,
   "msg": "success",
   "data":{
       "processInstanceId":523,  /*新运行的工作流实例ID*/
       "name":"workshop_SQL-0-1605704067605"  /*工作流实例名称*/
   }
}

//启动工作流定义运行失败
{
   "code": 50003,  /*错误代码*/
   "msg": "{processId}此工作流定义不存在"
   /*失败错误信息,工作流定义启动运行失败错误类型举例:
- 工作流定义不存在
- 工作流定义未上线
- 当前用户没有权限调度该工作流定义*/
}

2. 工作流实例查询

接口定义

请求方式:GET

请求URL:$home_url/universe/public-api/process/instance/{processInstanceId}

home_url需要填入对应环境的IP/域名,eg: http://u.guandata.com

请求参数:

NameLocation类型含义必填备注
Content-TypeHeaderString内容类型application/json;charset=utf-8
tokenHeaderString登录用的Token调用登录校验API获取(8.1 登录校验
processInstanceId请求URLInt工作流实例ID

工作流实例ID,获取方式:

1.调用工作流定义运行API获取(见当前篇章上文);

2.手动获取(9.1 外部系统集成常见问题

返回参数:

Name类型含义返回条件备注
idInt本次查询的工作流实例ID运行成功
processDefinitionIdInt本次查询的工作流定义ID运行成功
nameString工作流实例名称运行成功
stateString

工作流实例当前运行状态

RUNNING_EXEUTION(运行中),FAILURE(失败),SUCCESS(成功),STOP(停止)

运行成功


startTimeDATETIME任务实例运行开始时间运行成功


endTimeDATETIME任务实例运行结束时间
运行成功
tasksJson当前工作流运行实例对应的任务实例列表运行成功
|_idInt任务实例ID运行成功
|_nameString任务实例名称运行成功
|_typeString任务实例类型:SQL、PYTHON、SUB_PROCESS、SFTP等运行成功


|_startTimeDATETIME任务实例开始运行时间运行成功
|_endTimeDATETIME任务实例结束运行时间运行成功

接口调用示例

Header 示例

{
   "Content-Type": "application/json; charset=utf-8",
   "token": "ab7f1665-8dfc-4d8f-928d-c7a5aefc9332"  /*登录校验接口获得的Token(参考8.1)*/
}

Response

//正常返回工作流实例运行状态
{
   "code": 0,
   "msg": "success",
   "data":{
       "id":523,                                  /*工作流实例ID*/
       "processDefinitionId":23,                  /*工作流定义ID*/
       "name":"workshop_SQL-0-1605704067605",     /*工作流实例名称*/
       "state": "RUNNING_EXEUTION",               /*工作流实例当前运行状态:RUNNING_EXEUTION(运行中),FAILURE(失败),SUCCESS(成功),STOP(停止)*/
       "startTime": "2020-11-18T14:10:06.000+0000",  /*工作流实例开始运行时间*/
       "endTime":  "2020-11-18T14:15:06.000+0000",   /*工作流实例运行结束时间*/
       "tasks": [                                    /* 任务实例列表 */
{
       "id": "44473",                             /*任务实例ID*/
       "name": "读取文件",                         /*任务实例名称*/
       "type": "SFTP",                            /*任务实例类型:SQL、PYTHON、 SUB_PROCESS、SFTP等*/
       "processDefinitionId": 23,                 /*工作流定义ID*/
       "processInstanceId": 523,                  /*工作流实例ID*/
       "state": "FAILURE",                        /*任务实例当前运行状态:RUNNING_EXEUTION(运行中)、SUCCESS(成功)、FAILURE(失败)、STOP(停止)*/
       "startTime": "2021-03-19T12:14:55.000+0000",     /*任务实例开始运行时间*/
       "endTime": "2021-03-19T12:15:02.000+0000"        /*任务实例运行结束时间*/
   },
   {
       "id": "44474",
       "name": "处理数据",
       "type": "SQL",
       "processDefinitionId": 23,
       "processInstanceId": 523,
       "state": "FAILURE",
       "startTime": "2021-03-19T12:14:55.000+0000",
       "endTime": "2021-03-19T12:15:02.000+0000"
   },
   {
       "id": "44475",
       "name": "数据校验",
       "type": "QUALITY_MODEL",
       "processDefinitionId": 23,
       "processInstanceId": 523,
       "state": "FAILURE",
       "startTime": "2021-03-19T12:14:55.000+0000",
       "endTime": "2021-03-19T12:15:02.000+0000"
   },
   {
       "id": "44476",
       "name": "插入数据",
       "type": "SQL",
       "processDefinitionId": 23,
       "processInstanceId": 523,
       "state": "FAILURE",
       "startTime": "2021-03-19T12:14:55.000+0000",
       "endTime": "2021-03-19T12:15:02.000+0000"

       }
   ]
   
   }
}

//无法正常返回工作流实例运行状态
{
   "code": 50001,  /*错误代码*/
   "msg": "工作流实例不存在"
   /*失败错误信息,工作流实例状态查询失败错误类型举例:
- 工作流实例不存在
- 当前用户没有权限查询该工作流实例*/
}

3. 任务实例查询

接口定义

请求方式:GET

请求URL:$home_url/universe/public-api/process/instance/task/{taskInstanceId}

home_url需要填入对应环境的IP/域名,eg: http://u.guandata.com

请求参数:

NameLocation类型含义必填备注
Content-TypeHeaderString内容类型application/json;charset=utf-8
tokenHeaderString登录用的Token调用登录校验API获取(8.1 登录校验
taskInstanceId请求URLInt任务实例ID

任务实例ID:

1.通过调用当前篇章上文(工作流实例查询)接口获取;

2.手动获取(9.1 外部系统集成常见问题

返回参数:

Name类型含义返回条件备注
idInt任务实例ID运行成功
nameString任务实例名称运行成功
typeString

任务实例类型:SQL、PYTHON、SUB_PROCESS、SFTP等

运行成功
processInstanceIdInt本次查询的工作流实例ID运行成功
processDefinitionIdInt本次查询的工作流定义ID运行成功
startTimeDATETIME任务实例开始运行时间运行成功
endTimeDATETIME任务实例结束运行时间运行成功

接口调用示例

Header 示例

{
   "Content-Type": "application/json; charset=utf-8",
   "token": "ab7f1665-8dfc-4d8f-928d-c7a5aefc9332"  /*登录校验接口获得的Token(参考8.1)*/
}

Response

//正常返回任务实例运行状态
{
   "code": 0,
   "msg": "success",
   "data":{
       "id":44475,  /*任务实例ID*/
       "name":"数据校验",  /*任务实例名称*/
       "type": "QUALITY_MODEL",  /*任务实例类型:SQL、PYTHON、 SUB_PROCESS、SFTP等*/
       "processInstanceId":523,  /*工作流实例ID*/
       "processDefinitionId":23,  /*工作流定义ID*/
       "state": "RUNNING_EXEUTION",  /*任务实例当前运行状态:RUNNING_EXEUTION(运行中)、SUCCESS(成功)、FAILURE(失败)、STOP(停止)*/
       "startTime": "2020-11-18T14:10:06.000+0000",  /*任务实例开始运行时间*/
       "endTime":  "2020-11-18T14:15:06.000+0000"  /*任务实例运行结束时间*/
   }
}

//无法正常返回任务实例运行状态
{
   "code": 50001,  /*错误代码*/
   "msg": "任务实例不存在"
   /*失败错误信息,任务实例状态查询失败错误类型举例:
- 任务实例不存在
- 当前用户没有权限查询该任务实例*/
}

4. 停止工作流实例

接口定义

请求方式:POST

请求URL:$home_url/universe/public-api/process/instance/{processInstanceId}/stop

home_url需要填入对应环境的IP/域名,eg: http://u.guandata.com

请求参数:

NameLocation类型含义必填备注
Content-TypeHeaderString内容类型application/json;charset=utf-8
tokenHeaderString登录用的Token调用登录校验API获取(8.1 登录校验
processInstanceId请求URLInt流程实例ID


接口调用示例

Header 示例

{
   "Content-Type": "application/json; charset=utf-8",
   "token": "ab7f1665-8dfc-4d8f-928d-c7a5aefc9332"  /*登录校验接口获得的Token(参考8.1)*/
}

Response

//停止流程实例成功
{
   "code": 0,
   "msg": "success",
   "data": null
}

//停止流程实例失败
{
   "code": 50001,  /*错误代码*/
   "msg": "{processId}此工作流定义不存在"
   /*失败错误信息,停止流程实例错误类型举例:
- 工作流定义不存在
- 工作流实例状态不正确

*/
}

5. 根据工作流ID获取工作流实例列表

*2.11.0及以上版本可使用

接口定义

请求方式:GET

请求URL:$home_url/universe/public-api/process/instance/list

home_url需要填入对应环境的IP/域名,eg: http://u.guandata.com

请求参数:

NameLocation类型含义必填备注
Content-TypeHeaderString内容类型application/json;charset=utf-8
tokenHeaderString登录用的Token调用登录校验API获取(8.1 登录校验
processDefinitionIdParamsInt工作流定义ID


startDateParamsDate待查询的工作流起始时间


endDateParamsDate待查询的工作流终止时间

返回结果示例:

{
   "code": 0,
   "msg": "success",
   "data": {
       "totalList": [
           {
           "globalParams": null,
           "runtimeParams": "{\"localRuntimeParams\":[],\"runtimeLineagesMap\":{\"获取数据-24600\":{\"direct\":\"IN\",\"entityNameList\":[\"大数据量-0630\"],\"metadataType\":\"TABLE\",\"prop\":\"获取数据-24600\",\"sourceType\":\"DATASET\",\"type\":\"INTEGER\",\"use\":false,\"value\":\"112\"},\"插入数据-89132\":{\"direct\":\"OUT\",\"entityNameList\":[\"大数据量\"],\"metadataType\":\"TABLE\",\"prop\":\"插入数据-89132\",\"sourceType\":\"DATASOURCE\",\"type\":\"INTEGER\",\"use\":false,\"value\":\"3\"}},\"runtimeParamsMap\":{}}",
           "host": "127.0.0.1",
           "id": 2176,
           "state": "SUCCESS",
           "processInstancePriority": "MEDIUM",
           "timeoutStrategy": null,
           "processDefinitionId": 112,
           "warningType": "NONE",
           "cmdTypeIfComplement": "START_PROCESS",
           "parentInstanceId": 0,
           "projectGlobalParamsList": [],
           "maxTryTimes": 0,
           "name": "插入至MySQL-1-1658825820532",
           "runtimeParameters": {
               "runtimeParamsMap": {},
               "localRuntimeParams": [],
               "runtimeLineagesMap": {
                   "获取数据-24600": {
                       "prop": "获取数据-24600",
                       "direct": "IN",
                       "type": "INTEGER",
                       "value": "112",
                       "defaultValue": null,
                       "sourceType": "DATASET",
                       "metadataType": "TABLE",
                       "entityNameList": [
                           "大数据量-0630"
                       ],
                       "detail": null,
                       "use": false
                   },
                   "插入数据-89132": {
                       "prop": "插入数据-89132",
                       "direct": "OUT",
                       "type": "INTEGER",
                       "value": "3",
                       "defaultValue": null,
                       "sourceType": "DATASOURCE",
                       "metadataType": "TABLE",
                       "entityNameList": [
                               "大数据量"
                       ],
                       "detail": null,
                       "use": false
                   }
               }
           },
           "parentInstanceName": null,
           "commandParam": "{}",
           "projectId": 0,
           "projectGlobalParamsMap": {},
           "scheduleTime": null,
           "commandType": "START_PROCESS",
           "warningGroupId": 0,
           "recovery": "NO",
           "tenantCode": null,
           "instanceTimeoutStrategy": null,
           "timeout": 0,
           "historyCmd": "START_PROCESS",
           "duration": 735,
           "projectGlobalParams": null,
           "commandStartTime": "2022-07-26T16:57:00.000+08:00",
           "failureStrategy": "CONTINUE",
           "globalParamsMap": {},
           "alertConfigs": "[]",
           "startTime": "2022-07-26T16:57:01.000+08:00",
           "processType": "PROCESS",
           "dependenceScheduleTimes": null,
           "executorId": 14,
           "processDefinition": null,
           "workerGroupId": -1,
           "taskDependType": "TASK_POST",
           "userId": 14,
           "isSubProcess": "NO",
           "workerGroupName": null,
           "tenantId": 1,
           "endTime": "2022-07-26T17:09:16.000+08:00",
           "queue": null,
           "runTimes": 1
           }
       ],
       "total": 1,
       "currentPage": 1,
       "totalPage": 1
   },
   "errorDetail": null
}
0 人点赞过