跳转至

流程查询(WorkflowQuery)

用于查询流程相关的文档详情、流程状态、各类操作面板(提交/回退/催办)、节点信息与候选审批人,以及流程模板信息等。本控制器所有端点均为只读查询,不改变流程实例的流转状态。

  • 接口类型:REST 资源
  • 基址/api/rest/bpm/queryproduces=APPLICATION_JSON_VALUE
  • Tag:流程查询模块

公共说明

  • 鉴权:所有端点均需在 query 中携带 accessToken(访问令牌)和 userCode(执行用户账号)。鉴权机制详见 ../index.md
  • 应用 ID 加密applicationId 参数需经 **DES 加密**后以密文形式传入,服务端按当前执行用户解密(DesUtil.decryptTextByUserId);请勿传明文 applicationId。
  • Document 请求体POST /submission@RequestBodyDocument 包体(由 AbstractRESTController.parseDocument() 解析),结构如下:
    {
      "id": "<文档Id,必填,不能为空>",
      "summary": "<摘要,可选>",
      "items": {
        "<字段名>": "<字段值>",
        "...": "..."
      }
    }
    
    id 缺失时返回 errcode=406「请求包体id属性不能为空」。
  • 响应:统一返回 Resource 结构(见 ../index.md「统一响应结构」)。除 /document(data 为 PureDocument)、/states/remindpanel(data 为 JSON 数组)外,其余端点 datacom.alibaba.fastjson.JSONObject
  • 状态码:所有端点成功返回 HTTP 200;业务错误通过 errcode 体现(错误码表见 ../index.md)。

1. 获取文档详情

根据文档 Id 获取流程文档详情,并绑定当前用户可审批的流程实例(含多流程判定)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/document(完整:/api/rest/bpm/query/document
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
id query string 文档Id(报文Id)
userCode query string 用户编码(用户账号)

请求示例

GET /api/rest/bpm/query/document?accessToken=xxx&applicationId=xxx&id=__8Z4wBAAAAAC3Z6QAA&userCode=admin HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataPureDocument,文档对象(含 state 当前流程实例与 mulitFlowState 是否存在多个可执行实例的标记)。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "id": "__8Z4wBAAAAAC3Z6QAA",
    "summary": "差旅报销申请",
    "state": { "id": "instance-001", "flowName": "差旅报销流程" },
    "mulitFlowState": false
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "文档不存在",
  "data": null,
  "errors": null
}


2. 流程状态

查询指定流程实例的当前流程状态信息。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/states(完整:/api/rest/bpm/query/states
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
instanceId query string 流程实例Id

请求示例

GET /api/rest/bpm/query/states?accessToken=xxx&applicationId=xxx&instanceId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONArray,流程状态信息集合(由 service.queryWorkflow() 返回的 JSONObjectnet.sf.json.JSONArray.fromObject(...) 转换得到)。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": [
    { "nodeid": "node-start", "state": "completed", "label": "开始" },
    { "nodeid": "node-a", "state": "running", "label": "部门审批" }
  ],
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "errors": null
}


3. 获取流程提交面板

根据当前文档与流程实例,计算并返回流程提交(审批下一步)面板的可选节点与审批人。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/submission(完整:/api/rest/bpm/query/submission
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id
flowId query string 流程定义模型Id
postBody body string(Document) 请求包体内容(Document JSON 字符串)

请求示例

POST /api/rest/bpm/query/submission?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx&flowId=xxx HTTP/1.1
Content-Type: application/json

{
  "id": "__8Z4wBAAAAAC3Z6QAA",
  "summary": "差旅报销申请",
  "items": {
    "金额": "1200.00",
    "事由": "客户拜访"
  }
}

请求体

Document 结构,详见本页「公共说明 · Document 请求体」。

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,提交面板信息(含可提交的下一节点及候选审批人列表,并追加 instanceId 字段)。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "instanceId": "xxx",
    "nextNodes": [
      { "nodeid": "node-a", "name": "部门审批", "actors": [{ "id": "u001", "name": "李伟" }] }
    ]
  },
  "errors": null
}

失败示例

{
  "errcode": 406,
  "errmsg": "请求包体id属性不能为空",
  "data": null,
  "errors": null
}


4. 获取流程回退面板

根据当前流程实例,计算并返回流程回退(驳回上一步)面板的可选节点。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/back(完整:/api/rest/bpm/query/back
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id

说明:本端点虽为 POST,但**无请求体**(@RequestBody 缺省)。

请求示例

POST /api/rest/bpm/query/back?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,回退面板信息(含可回退的目标节点列表,并追加 instanceId 字段)。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "instanceId": "xxx",
    "backNodes": [
      { "nodeid": "node-start", "name": "开始" }
    ]
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "errors": null
}


5. 获取流程催办面板

获取指定流程实例的催办面板,返回当前待办(运行中)节点列表,用于选择催办目标节点。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/remindpanel(完整:/api/rest/bpm/query/remindpanel
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id

请求示例

GET /api/rest/bpm/query/remindpanel?accessToken=xxx&applicationId=xxx&userCode=admin&instanceId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONArray,每个元素为 { id, name },分别对应当前运行中节点的节点Id与节点名称。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": [
    { "id": "node-a", "name": "部门审批" },
    { "id": "node-b", "name": "财务复核" }
  ],
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "errors": null
}


6. 获取指定节点信息

获取当前请求发起人在指定流程实例中节点(任务)的信息。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/taskInfo(完整:/api/rest/bpm/query/taskInfo
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id

请求示例

GET /api/rest/bpm/query/taskInfo?accessToken=xxx&userCode=admin&instanceId=xxx&applicationId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,当前用户在该实例下的节点(任务)信息。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "instanceId": "xxx",
    "task": { "nodeid": "node-a", "name": "部门审批", "state": "running" }
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "errors": null
}


7. 获取指定节点数量

获取当前请求发起人在指定流程实例中节点(任务)的数量。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/taskNum(完整:/api/rest/bpm/query/taskNum
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id

请求示例

GET /api/rest/bpm/query/taskNum?accessToken=xxx&userCode=admin&instanceId=xxx&applicationId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,当前用户在该实例下的节点(任务)数量信息。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "instanceId": "xxx",
    "total": 2
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程实例不存在",
  "data": null,
  "errors": null
}


8. 获取指定实例节点审批人

根据流程实例与节点实例Id,获取该运行时节点的当前审批人。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/nowActor(完整:/api/rest/bpm/query/nowActor
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
instanceId query string 流程实例Id
nodeRTId query string 节点实例Id(NodeRT 主键)

请求示例

GET /api/rest/bpm/query/nowActor?accessToken=xxx&instanceId=xxx&nodeRTId=xxx&applicationId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,指定节点实例的当前审批人信息。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "nodeRTId": "xxx",
    "actors": [
      { "id": "u001", "name": "李伟", "department": "财务部" }
    ]
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "节点实例不存在",
  "data": null,
  "errors": null
}


9. 获取指定节点候选审批人

根据流程模板节点定义与流程实例,获取该节点的候选审批人列表(用于提交流程时选择审批人)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/allActor(完整:/api/rest/bpm/query/allActor
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
userCode query string 用户编码(用户账号)
instanceId query string 流程实例Id
nodeId query string 节点定义Id
flowId query string 流程模板Id

请求示例

GET /api/rest/bpm/query/allActor?accessToken=xxx&applicationId=xxx&nodeId=xxx&flowId=xxx&instanceId=xxx&userCode=admin HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,指定节点的候选审批人列表。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "nodeId": "xxx",
    "actors": [
      { "id": "u001", "name": "李伟" },
      { "id": "u002", "name": "张敏" }
    ]
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "节点定义不存在",
  "data": null,
  "errors": null
}


10. 获取流程信息

根据流程模板Id获取流程定义模型信息(节点、连线、表单绑定等)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/flowData(完整:/api/rest/bpm/query/flowData
  • 鉴权:是(需 accessToken)
  • Tag:流程查询模块

请求参数

参数名 位置 类型 必填 说明
accessToken query string 访问令牌
applicationId query string 应用Id(DES 加密密文)
flowId query string 流程模板Id

请求示例

GET /api/rest/bpm/query/flowData?accessToken=xxx&applicationId=xxx&flowId=xxx HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,流程模板(定义模型)信息。

成功示例

{
  "errcode": 0,
  "errmsg": "success",
  "data": {
    "id": "xxx",
    "name": "差旅报销流程",
    "subject": "差旅报销申请",
    "nodes": [
      { "id": "node-start", "name": "开始", "type": "start" },
      { "id": "node-a", "name": "部门审批", "type": "task" }
    ]
  },
  "errors": null
}

失败示例

{
  "errcode": 404,
  "errmsg": "流程模板不存在",
  "data": null,
  "errors": null
}