Flowable 中文文档

Flowable 中文文档

  • 指南
  • Java文档
  • 博客
  • Flowable UI
  • 加入交流群
  • 英文文档

›BPMN 用户指南

Flowable 开源

  • 开源详情

BPMN 用户指南

  • 入门指南
  • 配置
  • Flowable API
  • Spring 集成
  • Spring Boot
  • 部署
  • BPMN 2.0 简介
  • BPMN 2.0 构件
  • 流程实例迁移
  • JPA
  • 历史
  • 身份管理
  • REST API
  • LDAP 集成
  • 工具

CMMN 用户指南

  • 配置
  • Flowable CMMN API
  • Spring 集成
  • 部署
  • CMMN 1.1
  • 架构
  • REST API

事件注册表用户指南

  • 配置
  • Flowable 事件注册表 API
  • Spring 集成
  • 部署
  • 事件注册表介绍
  • REST API

DMN 用户指南

  • 配置
  • Flowable DMN API
  • Spring 集成
  • 部署
  • DMN 1.1 介绍
  • REST API

应用指南

  • Flowable应用程序
  • Flowable 设计器

免责声明

  • 免责声明

REST API

Flowable REST 基本原则

安装和认证

Flowable 包含一个 REST API,可以通过将 flowable-rest.war 文件部署到 Apache Tomcat 等 servlet 容器来安装。此外,也可以通过在应用程序中包含 servlet(及其映射)并将所有 flowable-rest 依赖项添加到类路径中来在其他 Web 应用程序中使用。

默认情况下,Flowable 引擎将连接到内存中的 H2 数据库。你可以在 WEB-INF/META-INF/flowable-app 文件夹中的 flowable-app.properties 文件中更改数据库设置。REST API 使用 JSON 格式(http://www.json.org),并基于 Spring MVC(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html)构建。

默认情况下,所有 REST 资源都需要具有 rest-access-api 权限的有效用户进行身份验证。如果允许任何有效用户调用 REST API,可以将 flowable.rest.app.authentication-mode 设置为 any-user(这是 Flowable 早期版本的默认设置)。

可以通过设置以下属性来配置可以访问 REST API 的默认用户:

flowable.rest.app.admin.user-id=rest-admin
flowable.rest.app.admin.password=test
flowable.rest.app.admin.first-name=Rest
flowable.rest.app.admin.last-name=Admin

当 REST 应用程序启动时,如果用户不存在则创建用户,否则获取现有用户。该用户将被授予默认访问 REST API 所需的 access-rest-api 权限。不要忘记之后更改此用户的密码。如果未设置 flowable.rest.app.admin.user-id,则不会创建任何用户或权限。因此,在初始设置后,删除此属性不会删除之前配置的用户或权限。

使用基本的 HTTP 访问认证,因此在执行请求时应始终包含 Authorization: Basic …​== HTTP 头,或在请求 URL 中包含用户名和密码(例如, http://username:password@localhost:8080/xyz)。

我们建议将基本身份验证与 HTTPS 结合使用。

配置

Flowable REST web 应用程序使用 Spring Java 配置来启动 Flowable Form 引擎、使用 Spring Security 定义基本认证安全性,以及为特定变量处理定义变量转换器。 可以通过修改 WEB-INF/META-INF/flowable-app/flowable-app.properties 文件夹中的 flowable-app.properties 文件来定义少量属性。 如果需要更高级的配置选项,可以在 WEB-INF/classes 文件夹中的 flowable-custom-context.xml 文件中覆盖默认的 Spring beans。 该文件中已经包含了示例配置的注释。这里也是通过定义一个名为 restResponsefactory 的新 Spring bean 并使用自定义实现类来覆盖默认 RestResponseFactory 的地方。

在 Tomcat 中使用

由于 Tomcat 的默认安全属性,默认情况下不允许使用转义的正斜杠(%2F 和 %5C)(会返回 400 错误)。这可能会影响部署资源及其数据 URL,因为 URL 可能包含转义的正斜杠。

当遇到意外的 400 错误时,请设置以下系统属性:

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

对于下面描述的 HTTP 请求,最佳实践是始终将 Accept 和 Content-Type(在发送/上传 JSON 时)头设置为 application/json。

HTTP 方法和返回码

HTTP 方法及其对应的操作
方法 操作

GET

获取单个资源或资源集合。

POST

创建新资源。也用于执行请求结构过于复杂而无法适合 GET 请求查询 URL 的资源查询。

PUT

更新现有资源的属性。也用于调用现有资源上的操作。

DELETE

删除现有资源。

HTTP 方法响应码
响应码 描述

200 - Ok

操作成功,并已返回响应(GET 和 PUT 请求)。

201 - Created

操作成功,实体已创建并在响应体中返回(POST 请求)。

204 - No content

操作成功,实体已被删除,因此没有返回响应体(DELETE 请求)。

401 - Unauthorized

操作失败。该操作需要设置认证头。如果请求中包含认证头,则提供的凭据无效或用户未被授权执行此操作。

403 - Forbidden

操作被禁止,不应重试。这表明存在授权问题而不是认证问题,这是一个不被允许的操作。例如:删除正在运行的流程中的任务是不允许的,并且永远不会被允许,无论用户或流程/任务状态如何。

404 - Not found

操作失败。请求的资源未找到。

405 - Method not allowed

操作失败。该方法不允许用于此资源。例如,尝试更新(PUT)部署资源将导致 405 状态。

409 - Conflict

操作失败。该操作导致更新一个已被另一个操作更新的资源,这使得更新不再有效。也可能表示在一个已存在具有该标识符的资源的集合中创建资源。

415 - Unsupported Media Type

操作失败。请求体包含不支持的媒体类型。当请求体 JSON 包含未知属性或值的格式/类型不正确而无法接受时也会出现此情况。

500 - Internal server error

操作失败。执行操作时发生意外异常。响应体包含有关错误的详细信息。

HTTP 响应的媒体类型始终为 application/json,除非请求的是二进制内容(例如,部署资源数据),这种情况下将使用内容本身的媒体类型。

错误响应体

当发生错误时(包括客户端和服务器的 4XX 和 5XX 状态码),响应体包含一个描述所发生错误的对象。以下是找不到任务时返回 404 状态的示例:

{
  "statusCode" : 404,
  "errorMessage" : "Could not find a task with id '444'."
}

请求参数

URL 片段

作为 URL 一部分的参数(例如,在 http://host/flowable-rest/process-api/repository/deployments/{deploymentId} 中的 deploymentId 参数) 如果片段包含特殊字符,需要正确转义(参见 URL 编码或百分号编码)。大多数框架都内置了此功能,但仍需要注意这一点。特别是对于可能包含正斜杠的片段(例如,部署资源),这是必需的。

REST URL 查询参数

作为查询字符串添加到 URL 中的参数(例如,在 http://host/flowable-rest/process-api/repository/deployments?name=Deployment 中使用的 name 参数)可以具有以下类型,这些类型在相应的 REST-API 文档中都有说明:

URL 查询参数类型
类型 格式

String

纯文本参数。可以包含 URL 中允许的任何有效字符。对于 XXXLike 参数,字符串应包含通配符 %(需要正确进行 URL 编码)。这允许你指定模糊搜索的意图。例如,'Tas%' 匹配所有以 'Tas' 开头的值。

Integer

表示整数值的参数。只能包含数字非小数值,范围在 -2.147.483.648 到 2.147.483.647 之间。

Long

表示长整型值的参数。只能包含数字非小数值,范围在 -9.223.372.036.854.775.808 到 9.223.372.036.854.775.807 之间。

Boolean

表示布尔值的参数。只能是 true 或 false。除此之外的任何其他值都会导致 '405 - Bad request' 响应。

Date

表示日期值的参数。使用 ISO-8601 日期格式(参见 维基百科上的 ISO-8601),同时包含时间和日期组件(例如 2013-04-03T23:45Z)。

JSON 请求体参数

JSON 参数类型
类型 格式

String

纯文本参数。对于 XXXLike 参数,字符串应包含通配符 %。这允许你指定模糊搜索的意图。例如,'Tas%' 匹配所有以 'Tas' 开头的值。

Integer

使用 JSON 数字表示整数值的参数。只能包含数字非小数值,范围在 -2.147.483.648 到 2.147.483.647 之间。

Long

使用 JSON 数字表示长整型值的参数。只能包含数字非小数值,范围在 -9.223.372.036.854.775.808 到 9.223.372.036.854.775.807 之间。

Date

使用 JSON 文本表示日期值的参数。使用 ISO-8601 日期格式(参见 维基百科上的 ISO-8601),同时包含时间和日期组件(例如 2013-04-03T23:45Z)。

分页和排序

分页和排序参数可以作为查询字符串添加到 URL 中(例如,在 http://host/flowable-rest/process-api/repository/deployments?sort=name 中使用的 name 参数)。

变量查询 JSON 参数
参数 默认值 描述

sort

因查询实现而异

排序键的名称,其默认值和允许值因查询实现而异。

order

asc

排序顺序,可以是 'asc'(升序)或 'desc'(降序)。

start

0

用于结果分页的参数。默认情况下,结果将从 0 开始。

size

10

用于结果分页的参数。默认情况下,每页大小为 10。

注意

请记住,start 参数用作查询的偏移量。例如,要获取每页包含三个项目的三页任务(共 9 个项目),我们可以使用:

GET /runtime/tasks?start=0&size=3
GET /runtime/tasks?start=3&size=3
GET /runtime/tasks?start=6&size=3

JSON 查询变量格式

{
  "name" : "variableName",
  "value" : "variableValue", 
  "operation" : "equals",
  "type" : "string"
}
变量查询 JSON 参数
参数 是否必需 描述

name

否

要包含在查询中的变量名称。当在某些查询中使用 'equals' 来查询具有给定值的任何变量名的资源时,可以为空。

value

是

查询中包含的变量值,应该包含给定类型的正确格式。

operator

是

查询中使用的运算符,可以具有以下值:equals(等于)、notEquals(不等于)、equalsIgnoreCase(忽略大小写等于)、notEqualsIgnoreCase(忽略大小写不等于)、lessThan(小于)、greaterThan(大于)、lessThanOrEquals(小于等于)、greaterThanOrEquals(大于等于)和 like(模糊匹配)。

type

否

要使用的变量类型。如果省略,将从 value 参数推断类型。任何 JSON 文本值都将被视为 string 类型,JSON 布尔值为 boolean 类型,JSON 数字根据其大小被视为 long 或 integer 类型。当有疑问时,我们建议您包含显式类型。下面列出了开箱即用支持的类型。

默认查询 JSON 类型
类型名称 描述

string

值被视为并转换为 java.lang.String。

short

值被视为并转换为 java.lang.Integer。

integer

值被视为并转换为 java.lang.Integer。

long

值被视为并转换为 java.lang.Long。

double

值被视为并转换为 java.lang.Double。

boolean

值被视为并转换为 java.lang.Boolean。

date

值被视为并转换为 java.util.Date。JSON 字符串将使用 ISO-8601 日期格式进行转换。

变量表示

在处理变量(执行决策)时,REST API 在读写操作中使用一些通用原则和 JSON 格式。变量的 JSON 表示如下所示:

{
  "name" : "variableName",
  "value" : "variableValue",
  "valueUrl" : "http://...",
  "type" : "string"
}
变量 JSON 属性
参数 是否必需 描述

name

是

变量的名称。

value

否

变量的值。在写入变量时如果省略该值,将使用 null 作为值。

valueUrl

否

当读取二进制或可序列化类型的变量时,此属性将指向可以获取原始二进制数据的 URL。

type

否

变量的类型。有关类型的其他信息,请参见下表。在写入变量时如果省略此值,类型将从原始 JSON 属性请求类型推断,并限制为 string、double、integer 和 boolean。我们建议始终包含类型,以确保不会对类型做出错误的假设。

变量类型
类型名称 描述

string

值被视为 java.lang.String。写入变量时使用原始 JSON 文本值。

integer

值被视为 java.lang.Integer。写入时,使用 JSON 数字值作为转换基础,如果失败则回退到 JSON 文本。

short

值被视为 java.lang.Short。写入时,使用 JSON 数字值作为转换基础,如果失败则回退到 JSON 文本。

long

值被视为 java.lang.Long。写入时,使用 JSON 数字值作为转换基础,如果失败则回退到 JSON 文本。

double

值被视为 java.lang.Double。写入时,使用 JSON 数字值作为转换基础,如果失败则回退到 JSON 文本。

boolean

值被视为 java.lang.Boolean。写入时,使用 JSON 布尔值进行转换。

date

值被视为 java.util.Date。写入时,JSON 文本将使用 ISO-8601 日期格式进行转换。

可以通过自定义 JSON 表示(简单值或复杂/嵌套 JSON 对象)来支持其他变量类型。通过扩展 org.flowable.dmn.rest.service.api.DmnRestResponseFactory 上的 initializeVariableConverters() 方法,您可以添加额外的 org.flowable.rest.variable.RestVariableConverter 类,以支持将您的 POJO 转换为适合通过 REST 传输的格式,并将 REST 值转换回您的 POJO。实际的 JSON 转换由 Jackson 完成。

部署

当使用 Tomcat 时,请阅读在 Tomcat 中使用。

部署列表

GET repository/deployments
URL 查询参数
参数 是否必需 值类型 描述

name

否

String

仅返回具有给定名称的部署。

nameLike

否

String

仅返回名称类似于给定名称的部署。

category

否

String

仅返回具有给定类别的部署。

categoryNotEquals

否

String

仅返回不具有给定类别的部署。

tenantId

否

String

仅返回具有给定租户 ID 的部署。

tenantIdLike

否

String

仅返回租户 ID 类似于给定值的部署。

withoutTenantId

否

Boolean

如果为 true,则仅返回未设置租户 ID 的部署。如果为 false,则忽略 withoutTenantId 参数。

sort

否

'id'(默认)、'name'、'deployTime' 或 'tenantId'

要排序的属性,与 'order' 一起使用。

REST 响应码
响应码 描述

200

表示请求成功。

成功响应体:

{
  "data": [
    {
      "id": "10",
      "name": "flowable-examples.bar",
      "deploymentTime": "2010-10-13T14:54:26.750+02:00", 
      "category": "examples",
      "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10",
      "tenantId": null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "id",
  "order": "asc",
  "size": 1
}

获取部署

GET repository/deployments/{deploymentId}
获取部署 - URL 参数
参数 是否必需 值类型 描述

deploymentId

是

String

要获取的部署的 ID。

获取部署 - 响应码
响应码 描述

200

表示找到并返回了部署。

404

表示未找到请求的部署。

成功响应体:

{
  "id": "10",
  "name": "flowable-examples.bar",
  "deploymentTime": "2010-10-13T14:54:26.750+02:00",
  "category": "examples",
  "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10",
  "tenantId" : null
}

创建新部署

POST repository/deployments

请求体:

请求体应包含 multipart/form-data 类型的数据。请求中应该只包含一个文件,任何额外的文件都将被忽略。部署名称是传入的文件字段的名称。如果需要在单个部署中部署多个资源,请将资源压缩成 zip 文件,并确保文件名以 .bar 或 .zip 结尾。

可以在请求体中传入一个名为 tenantId 的额外参数(表单字段)。该字段的值将用作执行此部署的租户的 ID。

创建新部署 - 响应码
响应码 描述

201

表示部署已创建。

400

表示请求体中没有内容或内容的 mime-type 不支持部署。状态描述包含额外信息。

成功响应体:

{
  "id": "10",
  "name": "flowable-examples.bar",
  "deploymentTime": "2010-10-13T14:54:26.750+02:00",
  "category": null,
  "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10",
  "tenantId" : "myTenant"
}

删除部署

DELETE repository/deployments/{deploymentId}
删除部署 - URL 参数
参数 是否必需 值类型 描述

deploymentId

是

String

要删除的部署的 ID。

删除部署 - 响应码
响应码 描述

204

表示找到并已删除部署。响应体有意为空。

404

表示未找到请求的部署。

列出部署中的资源

GET repository/deployments/{deploymentId}/resources
列出部署中的资源 - URL 参数
参数 是否必需 值类型 描述

deploymentId

是

String

要获取资源的部署 ID。

列出部署中的资源 - 响应码
响应码 描述

200

表示找到部署并已返回资源列表。

404

表示未找到请求的部署。

成功响应体:

[
  {
    "id": "diagrams/my-process.bpmn20.xml",
    "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resources/diagrams%2Fmy-process.bpmn20.xml",
    "dataUrl": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resourcedata/diagrams%2Fmy-process.bpmn20.xml",
    "mediaType": "text/xml",
    "type": "processDefinition"
  },
  {
    "id": "image.png",
    "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resources/image.png",
    "dataUrl": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resourcedata/image.png",
    "mediaType": "image/png",
    "type": "resource"
  }
]
  • mediaType: 包含资源的媒体类型。这是通过(可插拔的)MediaTypeResolver 解析的,默认情况下包含有限数量的 mime-type 映射。

  • type: 资源类型,可能的值:

  • resource: 普通资源。

  • processDefinition: 包含一个或多个流程定义的资源。此资源由部署器获取。

  • processImage: 表示已部署流程定义的图形布局的资源。

单个资源的结果 JSON 中的 dataUrl 属性包含用于检索二进制资源的实际 URL。

获取部署资源

GET repository/deployments/{deploymentId}/resources/{resourceId}
获取部署资源 - URL 参数
参数 是否必需 值类型 描述

deploymentId

是

String

请求的资源所属的部署的 ID。

resourceId

是

String

要获取的资源的 ID。如果 resourceId 包含正斜杠,请确保进行 URL 编码。例如:使用 'diagrams%2Fmy-process.bpmn20.xml' 而不是 'diagrams/my-process.bpmn20.xml'。

获取部署资源 - 响应码
响应码 描述

200

表示已找到部署和资源,并已返回资源。

404

表示未找到请求的部署,或部署中不存在具有给定 ID 的资源。状态描述包含额外信息。

成功响应体:

{
  "id": "diagrams/my-process.bpmn20.xml",
  "url": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resources/diagrams%2Fmy-process.bpmn20.xml",
  "dataUrl": "http://localhost:8081/flowable-rest/service/repository/deployments/10/resourcedata/diagrams%2Fmy-process.bpmn20.xml",
  "mediaType": "text/xml",
  "type": "processDefinition"
}
  • mediaType: 包含资源的媒体类型。这是通过(可插拔的)MediaTypeResolver 解析的,默认情况下包含有限数量的 mime-type 映射。

  • type: 资源类型,可能的值:

  • resource: 普通资源。

  • processDefinition: 包含一个或多个流程定义的资源。此资源由部署器获取。

  • processImage: 表示已部署流程定义的图形布局的资源。

获取部署资源内容

GET repository/deployments/{deploymentId}/resourcedata/{resourceId}
获取部署资源内容 - URL 参数
参数 是否必需 值类型 描述

deploymentId

是

String

请求的资源所属的部署的 ID。

resourceId

是

String

要获取数据的资源的 ID。如果 resourceId 包含正斜杠,请确保进行 URL 编码。例如:使用 'diagrams%2Fmy-process.bpmn20.xml' 而不是 'diagrams/my-process.bpmn20.xml'。

获取部署资源内容 - 响应码
响应码 描述

200

表示已找到部署和资源,并已返回资源数据。

404

表示未找到请求的部署,或部署中不存在具有给定 ID 的资源。状态描述包含额外信息。

成功响应体:

响应体将包含请求资源的二进制资源内容。响应的 content-type 将与资源的 'mimeType' 属性中返回的类型相同。此外,还设置了 content-disposition 头,允许浏览器下载文件而不是显示它。

流程定义

流程定义列表

GET repository/process-definitions
流程定义列表 - URL 参数
参数 是否必需 值类型 描述

version

否

integer

仅返回具有给定版本的流程定义。

name

否

String

仅返回具有给定名称的流程定义。

nameLike

否

String

仅返回名称类似于给定名称的流程定义。

key

否

String

仅返回具有给定键的流程定义。

keyLike

否

String

仅返回键类似于给定键的流程定义。

resourceName

否

String

仅返回具有给定资源名称的流程定义。

resourceNameLike

否

String

仅返回资源名称类似于给定资源名称的流程定义。

category

否

String

仅返回具有给定类别的流程定义。

categoryLike

否

String

仅返回类别类似于给定名称的流程定义。

categoryNotEquals

否

String

仅返回不具有给定类别的流程定义。

deploymentId

否

String

仅返回属于具有给定 ID 的部署的流程定义。

startableByUser

否

String

仅返回可以由给定用户启动的流程定义。

流程定义列表 - 响应码
响应码 描述

200

表示请求成功,并已返回流程定义。

400

表示参数格式错误,或者 'latest' 参数与除 'key' 和 'keyLike' 之外的其他参数一起使用。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "oneTaskProcess:1:4",
      "url" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "version" : 1,
      "key" : "oneTaskProcess",
      "category" : "Examples",
      "suspended" : false,
      "name" : "The One Task Process",
      "description" : "This is a process for testing purposes",
      "deploymentId" : "2",
      "deploymentUrl" : "http://localhost:8081/repository/deployments/2",
      "graphicalNotationDefined" : true,
      "resource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.xml",
      "diagramResource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.png",
      "startFormDefined" : false
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}
  • graphicalNotationDefined: 表示流程定义包含图形信息(BPMN DI)。

  • resource: 包含实际部署的 BPMN 2.0 xml。

  • diagramResource: 包含流程的图形表示,如果没有可用的图表则为 null。

获取流程定义

GET repository/process-definitions/{processDefinitionId}
获取流程定义 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

要获取的流程定义的 ID。

获取流程定义 - 响应码
响应码 描述

200

表示已找到并返回流程定义。

404

表示未找到请求的流程定义。

成功响应体:

{
  "id" : "oneTaskProcess:1:4",
  "url" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
  "version" : 1,
  "key" : "oneTaskProcess",
  "category" : "Examples",
  "suspended" : false,
  "name" : "The One Task Process",
  "description" : "This is a process for testing purposes",
  "deploymentId" : "2",
  "deploymentUrl" : "http://localhost:8081/repository/deployments/2",
  "graphicalNotationDefined" : true,
  "resource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.xml",
  "diagramResource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.png",
  "startFormDefined" : false
}
  • graphicalNotationDefined: 表示流程定义包含图形信息(BPMN DI)。

  • resource: 包含实际部署的 BPMN 2.0 xml。

  • diagramResource: 包含流程的图形表示,如果没有可用的图表则为 null。

更新流程定义的类别

PUT repository/process-definitions/{processDefinitionId}

请求体 JSON:

{
  "category" : "updatedcategory"
}
更新流程定义的类别 - 响应码
响应码 描述

200

表示流程的类别已被修改。

400

表示请求体中未定义类别。

404

表示未找到请求的流程定义。

成功响应体: 参见 repository/process-definitions/{processDefinitionId} 的响应。

获取流程定义资源内容

GET repository/process-definitions/{processDefinitionId}/resourcedata
获取流程定义资源内容 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

要获取资源数据的流程定义的 ID。

响应:

与 GET repository/deployment/{deploymentId}/resourcedata/{resourceId} 完全相同的响应码/响应体。

获取流程定义的 BPMN 模型

GET repository/process-definitions/{processDefinitionId}/model
获取流程定义的 BPMN 模型 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

要获取模型的流程定义的 ID。

获取流程定义的 BPMN 模型 - 响应码
响应码 描述

200

表示已找到流程定义并已返回模型。

404

表示未找到请求的流程定义。

响应体: 响应体是 org.flowable.bpmn.model.BpmnModel 的 JSON 表示,包含完整的流程定义模型。

{
   "processes":[
      {
         "id":"oneTaskProcess",
         "xmlRowNumber":7,
         "xmlColumnNumber":60,
         "extensionElements":{

         },
         "name":"The One Task Process",
         "executable":true,
         "documentation":"One task process description",

    ]
}

挂起流程定义

PUT repository/process-definitions/{processDefinitionId}

请求体 JSON:

{
  "action" : "suspend",
  "includeProcessInstances" : "false",
  "date" : "2013-04-15T00:42:12Z"
}
挂起流程定义 - JSON 请求体参数
参数 描述 是否必需

action

要执行的操作。可以是 activate 或 suspend。

是

includeProcessInstances

是否挂起/激活此流程定义的运行中的流程实例。如果省略,流程实例将保持其当前状态。

否

date

执行挂起/激活操作的日期(ISO-8601格式)。如果省略,挂起/激活将立即生效。

否

挂起流程定义 - 响应码
响应码 描述

200

表示流程已被挂起。

404

表示未找到请求的流程定义。

409

表示请求的流程定义已经处于挂起状态。

成功响应体: 参见 repository/process-definitions/{processDefinitionId} 的响应。

激活流程定义

PUT repository/process-definitions/{processDefinitionId}

请求体 JSON:

{
  "action" : "activate",
  "includeProcessInstances" : "true",
  "date" : "2013-04-15T00:42:12Z"
}

参见挂起流程定义的 JSON 请求体参数。

激活流程定义 - 响应码
响应码 描述

200

表示流程已被激活。

404

表示未找到请求的流程定义。

409

表示请求的流程定义已经处于激活状态。

成功响应体: 参见 repository/process-definitions/{processDefinitionId} 的响应。

获取流程定义的所有候选启动者

GET repository/process-definitions/{processDefinitionId}/identitylinks
获取流程定义的所有候选启动者 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

要获取身份链接的流程定义的 ID。

获取流程定义的所有候选启动者 - 响应码
响应码 描述

200

表示已找到流程定义并已返回请求的身份链接。

404

表示未找到请求的流程定义。

成功响应体:

[
   {
      "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/groups/admin",
      "user":null,
      "group":"admin",
      "type":"candidate"
   },
   {
      "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
      "user":"kermit",
      "group":null,
      "type":"candidate"
   }
]

为流程定义添加候选启动者

POST repository/process-definitions/{processDefinitionId}/identitylinks
为流程定义添加候选启动者 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

流程定义的 ID。

请求体(用户):

{
  "user" : "kermit"
}

请求体(用户组):

{
  "groupId" : "sales"
}
为流程定义添加候选启动者 - 响应码
响应码 描述

201

表示已找到流程定义并已创建身份链接。

404

表示未找到请求的流程定义。

成功响应体:

{
  "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
  "user":"kermit",
  "group":null,
  "type":"candidate"
}

从流程定义中删除候选启动者

DELETE repository/process-definitions/{processDefinitionId}/identitylinks/{family}/{identityId}
从流程定义中删除候选启动者 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

流程定义的 ID。

family

是

String

根据身份链接的类型,可以是 users 或 groups。

identityId

是

String

要移除候选启动者身份的用户 ID 或用户组 ID。

从流程定义中删除候选启动者 - 响应码
响应码 描述

204

表示已找到流程定义并已移除身份链接。响应体有意为空。

404

表示未找到请求的流程定义,或流程定义没有与 URL 匹配的身份链接。

成功响应体:

{
  "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
  "user":"kermit",
  "group":null,
  "type":"candidate"
}

获取流程定义的候选启动者

GET repository/process-definitions/{processDefinitionId}/identitylinks/{family}/{identityId}
获取流程定义的候选启动者 - URL 参数
参数 是否必需 值类型 描述

processDefinitionId

是

String

流程定义的 ID。

family

是

String

根据身份链接的类型,可以是 users 或 groups。

identityId

是

String

要获取作为候选启动者的用户 ID 或用户组 ID。

获取流程定义的候选启动者 - 响应码
响应码 描述

200

表示已找到流程定义并已返回身份链接。

404

表示未找到请求的流程定义,或流程定义没有与 URL 匹配的身份链接。

成功响应体:

{
  "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
  "user":"kermit",
  "group":null,
  "type":"candidate"
}

模型

获取模型列表

GET repository/models
获取模型列表 - URL 查询参数
参数 是否必需 值类型 描述

id

否

String

仅返回具有给定 ID 的模型。

category

否

String

仅返回具有给定类别的模型。

categoryLike

否

String

仅返回类别类似于给定值的模型。使用 % 字符作为通配符。

categoryNotEquals

否

String

仅返回不具有给定类别的模型。

name

否

String

仅返回具有给定名称的模型。

nameLike

否

String

仅返回名称类似于给定值的模型。使用 % 字符作为通配符。

key

否

String

仅返回具有给定键的模型。

deploymentId

否

String

仅返回在给定部署中部署的模型。

version

否

Integer

仅返回具有给定版本的模型。

latestVersion

否

Boolean

如果为 true,仅返回最新版本的模型。最好与 key 一起使用。如果传入值为 false,则忽略此参数并返回所有版本。

deployed

否

Boolean

如果为 true,仅返回已部署的模型。如果为 false,仅返回未部署的模型(deploymentId 为 null)。

tenantId

否

String

仅返回具有给定租户 ID 的模型。

tenantIdLike

否

String

仅返回租户 ID 类似于给定值的模型。

withoutTenantId

否

Boolean

如果为 true,仅返回未设置租户 ID 的模型。如果为 false,则忽略 withoutTenantId 参数。

sort

否

'id'(默认)、'category'、'createTime'、'key'、'lastUpdateTime'、'name'、'version' 或 'tenantId'

要排序的属性,与 'order' 参数一起使用。

获取模型列表 - 响应码
响应码 描述

200

表示请求成功,并已返回模型列表。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
   "data":[
      {
         "name":"模型名称",
         "key":"模型键",
         "category":"模型类别",
         "version":2,
         "metaInfo":"模型元信息",
         "deploymentId":"7",
         "id":"10",
         "url":"http://localhost:8182/repository/models/10",
         "createTime":"2013-06-12T14:31:08.612+0000",
         "lastUpdateTime":"2013-06-12T14:31:08.612+0000",
         "deploymentUrl":"http://localhost:8182/repository/deployments/7",
         "tenantId":null
      },

      ...

   ],
   "total":2,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":2
}

获取模型

GET repository/models/{modelId}
获取模型 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要获取的模型的 ID。

获取模型 - 响应码
响应码 描述

200

表示已找到并返回模型。

404

表示未找到请求的模型。

成功响应体:

{
   "id":"5",
   "url":"http://localhost:8182/repository/models/5",
   "name":"模型名称",
   "key":"模型键",
   "category":"模型类别",
   "version":2,
   "metaInfo":"模型元信息",
   "deploymentId":"2",
   "deploymentUrl":"http://localhost:8182/repository/deployments/2",
   "createTime":"2013-06-12T12:31:19.861+0000",
   "lastUpdateTime":"2013-06-12T12:31:19.861+0000",
   "tenantId":null
}

更新模型

PUT repository/models/{modelId}

请求体:

{
   "name":"模型名称",
   "key":"模型键",
   "category":"模型类别", 
   "version":2,
   "metaInfo":"模型元信息",
   "deploymentId":"2",
   "tenantId":"updatedTenant"
}

所有请求值都是可选的。例如,你可以在请求体 JSON 对象中只包含 'name' 属性,这样只会更新模型的名称,而不会影响其他字段。当显式包含某个属性并将其设置为 null 时,模型中对应的值将被更新为 null。例如: {"metaInfo" : null} 将清除模型的元信息。

更新模型 - 响应码
响应码 描述

200

表示已找到并更新模型。

404

表示未找到请求的模型。

成功响应体:

{
   "id":"5",
   "url":"http://localhost:8182/repository/models/5",
   "name":"模型名称",
   "key":"模型键",
   "category":"模型类别",
   "version":2,
   "metaInfo":"模型元信息",
   "deploymentId":"2",
   "deploymentUrl":"http://localhost:8182/repository/deployments/2",
   "createTime":"2013-06-12T12:31:19.861+0000",
   "lastUpdateTime":"2013-06-12T12:31:19.861+0000",
   "tenantId":"updatedTenant"
}

创建模型

POST repository/models

请求体:

{
   "name":"模型名称",
   "key":"模型键",
   "category":"模型类别",
   "version":1,
   "metaInfo":"模型元信息",
   "deploymentId":"2",
   "tenantId":"tenant"
}

所有请求值都是可选的。例如,你可以在请求体 JSON 对象中只包含 'name' 属性,这样只会设置模型的名称,而其他字段将保持为 null。

创建模型 - 响应码
响应码 描述

201

表示模型已创建。

成功响应体:

{
   "id":"5",
   "url":"http://localhost:8182/repository/models/5",
   "name":"模型名称",
   "key":"模型键",
   "category":"模型类别",
   "version":1,
   "metaInfo":"模型元信息",
   "deploymentId":"2",
   "deploymentUrl":"http://localhost:8182/repository/deployments/2",
   "createTime":"2013-06-12T12:31:19.861+0000",
   "lastUpdateTime":"2013-06-12T12:31:19.861+0000",
   "tenantId":"tenant"
}

删除模型

DELETE repository/models/{modelId}
删除模型 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要删除的模型的 ID。

删除模型 - 响应码
响应码 描述

204

表示已找到并删除模型。响应体有意为空。

404

表示未找到请求的模型。

获取模型的编辑器源码

GET repository/models/{modelId}/source
获取模型的编辑器源码 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要获取的模型的 ID。

获取模型的编辑器源码 - 响应码
响应码 描述

200

表示已找到模型并已返回源码。

404

表示未找到请求的模型。

成功响应体:

响应体包含模型的原始编辑器源码。响应的 content-type 设置为 application/octet-stream,与源码的内容无关。

设置模型的编辑器源码

PUT repository/models/{modelId}/source
设置模型的编辑器源码 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要设置的模型的 ID。

请求体:

请求类型必须是 multipart/form-data。必须包含一个带有源码二进制值的单个文件部分。

设置模型的编辑器源码 - 响应码
响应码 描述

200

表示已找到模型并已更新源码。

404

表示未找到请求的模型。

成功响应体:

响应体包含模型的原始编辑器源码。响应的 content-type 设置为 application/octet-stream,与源码的内容无关。

获取模型的额外编辑器源码

GET repository/models/{modelId}/source-extra
获取模型的额外编辑器源码 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要获取的模型的 ID。

获取模型的额外编辑器源码 - 响应码
响应码 描述

200

表示已找到模型并已返回源码。

404

表示未找到请求的模型。

成功响应体:

响应体包含模型的原始额外编辑器源码。响应的 content-type 设置为 application/octet-stream,与额外源码的内容无关。

设置模型的额外编辑器源码

PUT repository/models/{modelId}/source-extra
设置模型的额外编辑器源码 - URL 参数
参数 是否必需 值类型 描述

modelId

是

String

要设置的模型的 ID。

请求体:

请求类型必须是 multipart/form-data。必须包含一个带有额外源码二进制值的单个文件部分。

设置模型的额外编辑器源码 - 响应码
响应码 描述

200

表示已找到模型并已更新额外源码。

404

表示未找到请求的模型。

成功响应体:

响应体包含模型的原始编辑器源码。响应的 content-type 设置为 application/octet-stream,与源码的内容无关。

流程实例

获取流程实例

GET runtime/process-instances/{processInstanceId}
获取流程实例 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取的流程实例的 ID。

获取流程实例 - 响应码
响应码 描述

200

表示已找到并返回流程实例。

404

表示未找到请求的流程实例。

成功响应体:

{
   "id":"7",
   "url":"http://localhost:8182/runtime/process-instances/7",
   "businessKey":"myBusinessKey",
   "suspended":false,
   "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",
   "activityId":"processTask",
   "tenantId": null
}

删除流程实例

DELETE runtime/process-instances/{processInstanceId}?deleteReason={deleteReason}
删除流程实例 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要删除的流程实例的 ID。

deleteReason

否

String

删除流程实例的原因。

激活或挂起流程实例

PUT runtime/process-instances/{processInstanceId}
激活或挂起流程实例 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要激活/挂起的流程实例的 ID。

请求体(挂起):

{
   "action":"suspend"
}

请求体(激活):

{
   "action":"activate"
}
激活或挂起流程实例 - 响应码
响应码 描述

200

表示已找到流程实例并已执行操作。

400

表示提供了无效的操作。

404

表示未找到请求的流程实例。

409

表示无法执行请求的流程实例操作,因为该流程实例已经处于激活/挂起状态。

启动流程实例

POST runtime/process-instances

请求体(通过流程定义 ID 启动):

{
   "processDefinitionId":"oneTaskProcess:1:158",
   "businessKey":"myBusinessKey",
   "returnVariables":true,
   "variables": [
      {
        "name":"myVar",
        "value":"This is a variable"
      }
   ]
}

请求体(通过流程定义键启动):

{
   "processDefinitionKey":"oneTaskProcess",
   "businessKey":"myBusinessKey",
   "returnVariables":false,
   "tenantId": "tenant1",
   "variables": [
      {
        "name":"myVar",
        "value":"This is a variable"
      }
   ]
}

请求体(通过消息启动):

{
   "message":"newOrderMessage",
   "businessKey":"myBusinessKey",
   "tenantId": "tenant1",
   "variables": [
      {
        "name":"myVar",
        "value":"This is a variable"
      }
   ]
}

注意,JSON 中也接受 transientVariables 属性,其结构与 variables 属性相同。

returnVariables 属性可用于在响应中获取流程实例上下文中的现有变量。默认情况下不返回变量。

请求体中只能使用 processDefinitionId、processDefinitionKey 或 message 其中之一。参数 businessKey、variables 和 tenantId 是可选的。如果省略 tenantId,将使用默认租户。有关变量格式的更多信息,请参见REST 变量部分。请注意,提供的变量作用域会被忽略,流程变量始终是本地的。

启动流程实例 - 响应码
响应码 描述

201

表示已创建流程实例。

400

表示未找到流程定义(基于 ID 或键)、发送给定消息未启动任何流程,或传递了无效变量。状态描述包含有关错误的其他信息。

成功响应体:

{
   "id":"7",
   "url":"http://localhost:8182/runtime/process-instances/7",
   "businessKey":"myBusinessKey",
   "suspended":false,
   "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",
   "activityId":"processTask",
   "tenantId" : null
}

获取流程实例列表

GET runtime/process-instances
获取流程实例列表 - URL 查询参数
参数 是否必需 值类型 描述

id

否

String

仅返回具有给定 ID 的流程实例。

processDefinitionKey

否

String

仅返回具有给定流程定义键的流程实例。

processDefinitionId

否

String

仅返回具有给定流程定义 ID 的流程实例。

businessKey

否

String

仅返回具有给定业务键的流程实例。

involvedUser

否

String

仅返回给定用户参与的流程实例。

suspended

否

Boolean

如果为 true,仅返回已挂起的流程实例。如果为 false,仅返回未挂起(活动)的流程实例。

superProcessInstanceId

否

String

仅返回具有给定父流程实例 ID 的流程实例(适用于具有调用活动的流程)。

subProcessInstanceId

否

String

仅返回具有给定子流程实例 ID 的流程实例(适用于作为调用活动启动的流程)。

excludeSubprocesses

否

Boolean

仅返回不是子流程的流程实例。

includeProcessVariables

否

Boolean

指示是否在结果中包含流程变量。

tenantId

否

String

仅返回具有给定租户 ID 的流程实例。

tenantIdLike

否

String

仅返回租户 ID 类似于给定值的流程实例。

withoutTenantId

否

Boolean

如果为 true,仅返回未设置租户 ID 的流程实例。如果为 false,则忽略 withoutTenantId 参数。

获取流程实例列表 - 响应码
响应码 描述

200

表示请求成功,并已返回流程实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
   "data":[
      {
         "id":"7",
         "url":"http://localhost:8182/runtime/process-instances/7",
         "businessKey":"myBusinessKey",
         "suspended":false,
         "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",
         "activityId":"processTask",
         "tenantId" : null
      }
   ],
   "total":2,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":2
}

查询流程实例

POST query/process-instances

请求体:

{
  "processDefinitionKey":"oneTaskProcess",
  "variables":
  [
    {
        "name" : "myVariable",
        "value" : 1234,
        "operation" : "equals",
        "type" : "long"
    }
  ]
}

请求体可以包含在获取流程实例列表 URL 查询中使用的所有可能过滤器。除此之外,还可以提供一个变量数组以包含在查询中,其格式在此处描述。

可以对此 URL 使用通用的分页和排序查询参数。

查询流程实例 - 响应码
响应码 描述

200

表示请求成功,并已返回流程实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
   "data":[
      {
         "id":"7",
         "url":"http://localhost:8182/runtime/process-instances/7",
         "businessKey":"myBusinessKey",
         "suspended":false,
         "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",
         "activityId":"processTask",
         "tenantId" : null
      }
   ],
   "total":2,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":2
}

获取流程实例的图表

GET runtime/process-instances/{processInstanceId}/diagram
获取流程实例的图表 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取图表的流程实例的 ID。

获取流程实例的图表 - 响应码
响应码 描述

200

表示已找到流程实例并已返回图表。

400

表示未找到请求的流程实例,但该流程不包含任何图形信息(BPMN:DI),因此无法创建图表。

404

表示未找到请求的流程实例。

成功响应体:

响应是一个包含二进制数据的 Blob 对象或 null。

获取流程实例的相关人员

GET runtime/process-instances/{processInstanceId}/identitylinks
获取流程实例的相关人员 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取关联的流程实例的 ID。

获取流程实例的相关人员 - 响应码
响应码 描述

200

表示已找到流程实例并已返回关联。

404

表示未找到请求的流程实例。

成功响应体:

[
   {
      "url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/john/customType",
      "user":"john",
      "group":null,
      "type":"customType"
   },
   {
      "url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/paul/candidate",
      "user":"paul",
      "group":null,
      "type":"candidate"
   }
]

注意,groupId 始终为 null,因为只能将用户与流程实例关联。

为流程实例添加相关用户

POST runtime/process-instances/{processInstanceId}/identitylinks
为流程实例添加相关用户 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要添加关联的流程实例的 ID。

请求体:

{
  "userId":"kermit",
  "type":"participant"
}

userId 和 type 都是必需的。

为流程实例添加相关用户 - 响应码
响应码 描述

201

表示已找到流程实例并已创建关联。

400

表示请求体中未包含 userId 或 type。

404

表示未找到请求的流程实例。

成功响应体:

{
   "url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/john/customType",
   "user":"john",
   "group":null,
   "type":"customType"
}

注意,groupId 始终为 null,因为只能将用户与流程实例关联。

从流程实例中移除相关用户

DELETE runtime/process-instances/{processInstanceId}/identitylinks/users/{userId}/{type}
从流程实例中移除相关用户 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

流程实例的 ID。

userId

是

String

要删除关联的用户 ID。

type

是

String

要删除的关联类型。

从流程实例中移除相关用户 - 响应码
响应码 描述

204

表示已找到流程实例并已删除关联。响应体有意为空。

404

表示未找到请求的流程实例或要删除的关联不存在。响应状态包含有关错误的其他信息。

成功响应体:

{
   "url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/john/customType",
   "user":"john",
   "group":null,
   "type":"customType"
}

注意,groupId 始终为 null,因为只能将用户与流程实例关联。

获取流程实例的变量列表

GET runtime/process-instances/{processInstanceId}/variables
获取流程实例的变量列表 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取变量的流程实例的 ID。

获取流程实例的变量列表 - 响应码
响应码 描述

200

表示已找到流程实例并已返回变量。

404

表示未找到请求的流程实例。

成功响应体:

[
   {
      "name":"intProcVar",
      "type":"integer",
      "value":123,
      "scope":"local"
   },
   {
      "name":"byteArrayProcVar",
      "type":"binary",
      "value":null,
      "valueUrl":"http://localhost:8182/runtime/process-instances/5/variables/byteArrayProcVar/data",
      "scope":"local"
   }
]

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。 注意,由于流程实例变量没有全局作用域,因此只返回本地作用域的变量。

获取流程实例的变量

GET runtime/process-instances/{processInstanceId}/variables/{variableName}
获取流程实例的变量 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取变量的流程实例的 ID。

variableName

是

String

要获取的变量名称。

获取流程实例的变量 - 响应码
响应码 描述

200

表示已找到流程实例和变量,并已返回变量。

400

表示请求体不完整或包含非法值。状态描述包含有关错误的其他信息。

404

表示未找到请求的流程实例,或流程实例不存在具有给定名称的变量。状态描述包含有关错误的其他信息。

成功响应体:

   {
      "name":"intProcVar",
      "type":"integer",
      "value":123,
      "scope":"local"
   }

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。注意,由于流程实例变量没有全局作用域,因此只返回本地作用域的变量。

在流程实例上创建(或更新)变量

POST runtime/process-instances/{processInstanceId}/variables

PUT runtime/process-instances/{processInstanceId}/variables

使用 POST 时,将创建所有传递的变量。如果流程实例上已存在其中一个变量,则请求会导致错误(409 - CONFLICT)。使用 PUT 时,会在流程实例上创建不存在的变量,并覆盖现有变量,不会产生任何错误。

在流程实例上创建(或更新)变量 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要设置变量的流程实例的 ID。

请求体:

[
   {
      "name":"intProcVar",
      "type":"integer",
      "value":123
   },

   ...
]

可以在请求体数组中传递任意数量的变量。有关变量格式的更多信息,请参见REST 变量部分。请注意,作用域会被忽略,只能在流程实例中设置本地变量。

在流程实例上创建(或更新)变量 - 响应码
响应码 描述

201

表示已找到流程实例并已创建变量。

400

表示请求体不完整或包含非法值。状态描述包含有关错误的其他信息。

404

表示未找到请求的流程实例。

409

表示已找到流程实例,但已包含具有给定名称的变量(仅在使用 POST 方法时抛出)。请改用更新方法。

成功响应体:

[
   {
      "name":"intProcVar",
      "type":"integer",
      "value":123,
      "scope":"local"
   },

   ...

]

更新流程实例的单个变量

PUT runtime/process-instances/{processInstanceId}/variables/{variableName}
更新流程实例的单个变量 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要设置变量的流程实例的 ID。

variableName

是

String

要获取的变量名称。

请求体:

 {
    "name":"intProcVar"
    "type":"integer"
    "value":123
 }

有关变量格式的更多信息,请参见REST 变量部分。请注意,作用域会被忽略,只能在流程实例中设置本地变量。

更新流程实例的单个变量 - 响应码
响应码 描述

200

表示已找到流程实例和变量,并已更新变量。

404

表示未找到请求的流程实例,或流程实例不存在具有给定名称的变量。状态描述包含有关错误的其他信息。

成功响应体:

{
  "name":"intProcVar",
  "type":"integer",
  "value":123,
  "scope":"local"
}

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。注意,由于流程实例变量没有全局作用域,因此只返回本地作用域的变量。

在流程实例上创建新的二进制变量

POST runtime/process-instances/{processInstanceId}/variables
在流程实例上创建新的二进制变量 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要创建新变量的流程实例的 ID。

请求体:

请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。

  • type: 要创建的变量类型。如果省略,则假定为二进制类型,请求中的二进制数据将作为字节数组存储。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/process-instances/123/variables/binaryVariable/data"
}
在流程实例上创建新的二进制变量 - 响应码
响应码 描述

201

表示已创建变量并已返回结果。

400

表示缺少要创建的变量名称。状态消息提供额外信息。

404

表示未找到请求的流程实例。

409

表示流程实例已包含具有给定名称的变量。请改用 PUT 方法更新任务变量。

415

表示可序列化数据包含一个对象,但运行 Flowable 引擎的 JVM 中不存在该对象的类,因此无法反序列化。

更新流程实例上的现有二进制变量

PUT runtime/process-instances/{processInstanceId}/variables
更新流程实例上的现有二进制变量 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要创建新变量的流程实例的 ID。

请求体: 请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。

  • type: 要创建的变量类型。如果省略,则假定为二进制类型,请求中的二进制数据将作为字节数组存储。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/process-instances/123/variables/binaryVariable/data"
}
更新流程实例上的现有二进制变量 - 响应码
响应码 描述

200

表示已更新变量并已返回结果。

400

表示缺少要更新的变量名称。状态消息提供额外信息。

404

表示未找到请求的流程实例,或流程实例不存在具有给定名称的变量。

415

表示可序列化数据包含一个对象,但运行 Flowable 引擎的 JVM 中不存在该对象的类,因此无法反序列化。

执行

获取执行

GET runtime/executions/{executionId}
获取执行 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要获取的执行的 ID。

获取执行 - 响应码
响应码 描述

200

表示已找到执行并已返回。

404

表示未找到执行。

成功响应体:

{
   "id":"5",
   "url":"http://localhost:8182/runtime/executions/5",
   "parentId":null,
   "parentUrl":null,
   "processInstanceId":"5",
   "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
   "suspended":false,
   "activityId":null,
   "tenantId": null
}

在执行上执行操作

PUT runtime/executions/{executionId}
在执行上执行操作 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要执行操作的执行的 ID。

请求体(发送信号到执行):

{
  "action":"signal"
}

接受 variables 和 transientVariables 属性,结构如下:

{
  "action":"signal",
  "variables" : [
    {
      "name": "myVar",
      "value": "someValue"
    }
  ]
}

请求体(执行接收到信号事件):

{
  "action":"signalEventReceived",
  "signalName":"mySignal"
  "variables": [  ]
}

通知执行已接收到信号事件,需要 signalName 参数。可以传递可选的变量,这些变量会在执行操作之前设置到执行中。

请求体(执行接收到消息事件):

{
  "action":"messageEventReceived",
  "messageName":"myMessage"
  "variables": [  ]
}

通知执行已接收到消息事件,需要 messageName 参数。可以传递可选的变量,这些变量会在执行操作之前设置到执行中。

在执行上执行操作 - 响应码
响应码 描述

200

表示已找到执行并已执行操作。

204

表示已找到执行,已执行操作,且该操作导致执行结束。

400

表示请求了非法操作,请求体中缺少必需参数或传入了非法变量。状态描述包含有关错误的其他信息。

404

表示未找到执行。

成功响应体(如果操作未导致执行结束):

{
   "id":"5",
   "url":"http://localhost:8182/runtime/executions/5",
   "parentId":null,
   "parentUrl":null,
   "processInstanceId":"5",
   "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
   "suspended":false,
   "activityId":null,
   "tenantId" : null
}

获取执行中的活动活动

GET runtime/executions/{executionId}/activities

返回执行及其所有子执行(以及它们的子执行,递归)中的所有活动活动(如果有)。

获取执行中的活动活动 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要获取活动的执行的 ID。

获取执行中的活动活动 - 响应码
响应码 描述

200

表示已找到执行并已返回活动。

404

表示未找到执行。

成功响应体:

[
  "userTaskForManager",
  "receiveTask"
]

执行列表

GET runtime/executions
执行列表 - URL 查询参数
参数 是否必需 值类型 描述

id

否

String

仅返回具有给定 ID 的执行。

activityId

否

String

仅返回具有给定活动 ID 的执行。

processDefinitionKey

否

String

仅返回具有给定流程定义键的执行。

processDefinitionId

否

String

仅返回具有给定流程定义 ID 的执行。

processInstanceId

否

String

仅返回属于具有给定 ID 的流程实例的执行。

messageEventSubscriptionName

否

String

仅返回订阅了具有给定名称的消息的执行。

signalEventSubscriptionName

否

String

仅返回订阅了具有给定名称的信号的执行。

parentId

否

String

仅返回作为给定执行的直接子执行的执行。

tenantId

否

String

仅返回具有给定租户 ID 的执行。

tenantIdLike

否

String

仅返回租户 ID 类似于给定值的执行。

withoutTenantId

否

Boolean

如果为 true,则仅返回未设置租户 ID 的执行。如果为 false,则忽略 withoutTenantId 参数。

sort

否

String

排序字段,应为 processInstanceId(默认)、processDefinitionId、processDefinitionKey 或 tenantId 之一。

执行列表 - 响应码
响应码 描述

200

表示请求成功且已返回执行列表。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
   "data":[
      {
         "id":"5",
         "url":"http://localhost:8182/runtime/executions/5",
         "parentId":null,
         "parentUrl":null,
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "suspended":false,
         "activityId":null,
         "tenantId":null
      },
      {
         "id":"7",
         "url":"http://localhost:8182/runtime/executions/7",
         "parentId":"5",
         "parentUrl":"http://localhost:8182/runtime/executions/5",
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "suspended":false,
         "activityId":"processTask",
         "tenantId":null
      }
   ],
   "total":2,
   "start":0,
   "sort":"processInstanceId",
   "order":"asc",
   "size":2
}

查询执行

POST query/executions

请求体:

{
  "processDefinitionKey":"oneTaskProcess",
  "variables":
  [
    {
        "name" : "myVariable",
        "value" : 1234,
        "operation" : "equals",
        "type" : "long"
    }
  ],
  "processInstanceVariables":
  [
    {
        "name" : "processVariable",
        "value" : "some string",
        "operation" : "equals",
        "type" : "string"
    }
  ]
}

请求体可以包含在执行列表 URL 查询中使用的所有可能的过滤条件。除此之外,还可以提供变量和流程实例变量数组以包含在查询中,其格式在此处描述。

可以对此 URL 使用通用的分页和排序查询参数。

查询执行 - 响应码
响应码 描述

200

表示请求成功且已返回执行列表。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
   "data":[
      {
         "id":"5",
         "url":"http://localhost:8182/runtime/executions/5",
         "parentId":null,
         "parentUrl":null,
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "suspended":false,
         "activityId":null,
         "tenantId":null
      },
      {
         "id":"7",
         "url":"http://localhost:8182/runtime/executions/7",
         "parentId":"5",
         "parentUrl":"http://localhost:8182/runtime/executions/5",
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "suspended":false,
         "activityId":"processTask",
         "tenantId":null
      }
   ],
   "total":2,
   "start":0,
   "sort":"processInstanceId",
   "order":"asc",
   "size":2
}

获取执行的变量列表

GET runtime/executions/{executionId}/variables?scope={scope}
获取执行的变量列表 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要获取变量的执行的 ID。

scope

否

String

可以是 local 或 global。如果省略,则返回本地和全局作用域的变量。

获取执行的变量列表 - 响应码
响应码 描述

200

表示已找到执行并已返回变量。

404

表示未找到请求的执行。

成功响应体:

[
   {
      "name":"intProcVar",
      "type":"integer",
      "value":123,
      "scope":"global"
   },
   {
      "name":"byteArrayProcVar",
      "type":"binary",
      "value":null,
      "valueUrl":"http://localhost:8182/runtime/process-instances/5/variables/byteArrayProcVar/data",
      "scope":"local"
   }
]

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。

获取执行的变量

GET runtime/executions/{executionId}/variables/{variableName}?scope={scope}
获取执行的变量 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要获取变量的执行的 ID。

variableName

是

String

要获取的变量名称。

scope

否

String

可以是 local 或 global。如果省略,则返回本地变量(如果存在)。如果不存在,则返回全局变量(如果存在)。

获取执行的变量 - 响应码
响应码 描述

200

表示已找到执行和变量,并已返回变量。

400

表示请求体不完整或包含非法值。状态描述包含有关错误的其他信息。

404

表示未找到请求的执行,或执行在请求的作用域中不存在具有给定名称的变量(如果省略了作用域查询参数,则变量在本地和全局作用域中都不存在)。状态描述包含有关错误的其他信息。

成功响应体:

{
   "name":"intProcVar",
   "type":"integer",
   "value":123,
   "scope":"local"
}

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。

在执行上创建(或更新)变量

POST runtime/executions/{executionId}/variables

PUT runtime/executions/{executionId}/variables

使用 POST 时,会创建所有传入的变量。如果在请求的作用域中执行已存在其中一个变量,则请求会导致错误(409 - CONFLICT)。使用 PUT 时,会在执行上创建不存在的变量,并覆盖现有变量,不会产生任何错误。

在执行上创建(或更新)变量 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要创建变量的执行的 ID。

请求体:

[
   {
      "name":"intProcVar"
      "type":"integer"
      "value":123,
      "scope":"local"
   }
]

注意,你只能提供具有相同作用域的变量。如果请求体数组包含来自混合作用域的变量,则请求会导致错误(400 - BAD REQUEST)。可以在请求体数组中传入任意数量的变量。有关变量格式的更多信息,请参见REST 变量部分。请注意,作用域会被忽略,只能在流程实例中设置本地变量。

在执行上创建(或更新)变量 - 响应码
响应码 描述

201

表示已找到执行并已创建变量。

400

表示请求体不完整或包含非法值。状态描述包含有关错误的其他信息。

404

表示未找到请求的执行。

409

表示已找到执行,但已包含具有给定名称的变量(仅在使用 POST 方法时抛出)。请改用更新方法。

成功响应体:

[
   {
      "name":"intProcVar",
      "type":"integer",
      "value":123,
      "scope":"local"
   }
]

更新执行的变量

PUT runtime/executions/{executionId}/variables/{variableName}
更新执行的变量 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要更新变量的执行的 ID。

variableName

是

String

要更新的变量名称。

请求体:

{
   "name":"intProcVar"
   "type":"integer"
   "value":123,
   "scope":"global"
}

有关变量格式的更多信息,请参见REST 变量部分。

更新执行的变量 - 响应码
响应码 描述

200

表示已找到流程实例和变量,并已更新变量。

404

表示未找到请求的流程实例,或流程实例不存在具有给定名称的变量。状态描述包含有关错误的其他信息。

成功响应体:

{
   "name":"intProcVar",
   "type":"integer",
   "value":123,
   "scope":"global"
}

如果变量是二进制变量或可序列化的,valueUrl 指向一个用于获取原始值的 URL。如果是普通变量,则值直接包含在响应中。

在执行上创建新的二进制变量

POST runtime/executions/{executionId}/variables
在执行上创建新的二进制变量 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要创建新变量的执行的 ID。

请求体:

请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。

  • type: 要创建的变量类型。如果省略,则假定为二进制类型,请求中的二进制数据将作为字节数组存储。

  • scope: 要创建的变量的作用域。如果省略,则假定为本地作用域。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/executions/123/variables/binaryVariable/data"
}
在执行上创建新的二进制变量 - 响应码
响应码 描述

201

表示已创建变量并已返回结果。

400

表示缺少要创建的变量名称。状态消息提供额外信息。

404

表示未找到请求的执行。

409

表示执行已包含具有给定名称的变量。请改用 PUT 方法更新任务变量。

415

表示可序列化数据包含一个对象,但运行 Flowable 引擎的 JVM 中不存在该对象的类,因此无法反序列化。

更新流程实例中的现有二进制变量

PUT runtime/executions/{executionId}/variables/{variableName}
更新流程实例中的现有二进制变量 - URL 参数
参数 是否必需 值类型 描述

executionId

是

String

要创建新变量的执行的 ID。

variableName

是

String

要更新的变量名称。

请求体: 请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。

  • type: 要创建的变量类型。如果省略,则假定为二进制类型,请求中的二进制数据将作为字节数组存储。

  • scope: 要创建的变量的作用域。如果省略,则假定为本地作用域。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/executions/123/variables/binaryVariable/data"
}
更新流程实例中的现有二进制变量 - 响应码
响应码 描述

200

表示已更新变量并已返回结果。

400

表示缺少要更新的变量名称。状态消息提供额外信息。

404

表示未找到请求的执行,或执行不存在具有给定名称的变量。

415

表示可序列化数据包含一个对象,但运行 Flowable 引擎的 JVM 中不存在该对象的类,因此无法反序列化。

任务

获取任务

GET runtime/tasks/{taskId}
获取任务 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取的任务的 ID。

获取任务 - 响应码
响应码 描述

200

表示已找到并返回任务。

404

表示未找到请求的任务。

成功响应体:

{
  "assignee" : "kermit",
  "createTime" : "2013-04-17T10:17:43.902+0000",
  "delegationState" : "pending",
  "description" : "Task description",
  "dueDate" : "2013-04-17T10:17:43.902+0000",
  "execution" : "http://localhost:8182/runtime/executions/5",
  "id" : "8",
  "name" : "My task",
  "owner" : "owner",
  "parentTask" : "http://localhost:8182/runtime/tasks/9",
  "priority" : 50,
  "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
  "processInstanceUrl" : "http://localhost:8182/runtime/process-instances/5",
  "suspended" : false,
  "taskDefinitionKey" : "theTask",
  "url" : "http://localhost:8182/runtime/tasks/8",
  "tenantId" : null
}
  • delegationState: 任务的委派状态,可以是 null、"pending"(待处理)或"resolved"(已解决)。

任务列表

GET runtime/tasks
任务列表 - URL 查询参数
参数 是否必需 值类型 描述

name

否

String

仅返回具有给定名称的任务。

nameLike

否

String

仅返回名称类似于给定名称的任务。

description

否

String

仅返回具有给定描述的任务。

priority

否

Integer

仅返回具有给定优先级的任务。

minimumPriority

否

Integer

仅返回优先级大于给定值的任务。

maximumPriority

否

Integer

仅返回优先级小于给定值的任务。

assignee

否

String

仅返回分配给指定用户的任务。

assigneeLike

否

String

仅返回受理人类似于给定值的任务。

owner

否

String

仅返回由指定用户拥有的任务。

ownerLike

否

String

仅返回所有者类似于给定值的任务。

unassigned

否

Boolean

仅返回未分配给任何人的任务。如果传入 false,则忽略该值。

delegationState

否

String

仅返回具有给定委派状态的任务。可能的值为 pending(待处理)和 resolved(已解决)。

candidateUser

否

String

仅返回指定用户可以认领的任务。这包括用户作为显式候选人的任务,以及用户所属群组可以认领的任务。

candidateGroup

否

String

仅返回指定群组中的用户可以认领的任务。

candidateGroups

否

String

仅返回指定群组中的用户可以认领的任务。值以逗号分隔。

involvedUser

否

String

仅返回指定用户参与的任务。

taskDefinitionKey

否

String

仅返回具有指定任务定义 ID 的任务。

taskDefinitionKeyLike

否

String

仅返回任务定义 ID 类似于给定值的任务。

processInstanceId

否

String

仅返回属于指定 ID 的流程实例的任务。

processInstanceBusinessKey

否

String

仅返回属于具有指定业务键的流程实例的任务。

processInstanceBusinessKeyLike

否

String

仅返回属于业务键类似于给定值的流程实例的任务。

processDefinitionId

否

String

仅返回属于具有指定 ID 的流程定义的流程实例的任务。

processDefinitionKey

否

String

仅返回属于具有指定键的流程定义的流程实例的任务。

processDefinitionKeyLike

否

String

仅返回属于具有类似于给定值的键的流程定义的流程实例的任务。

processDefinitionName

否

String

仅返回属于具有指定名称的流程定义的流程实例的任务。

processDefinitionNameLike

否

String

仅返回属于具有类似于给定值的名称的流程定义的流程实例的任务。

executionId

否

String

仅返回属于指定 ID 的执行的任务。

createdOn

否

ISO Date

仅返回在指定日期创建的任务。

createdBefore

否

ISO Date

仅返回在指定日期之前创建的任务。

createdAfter

否

ISO Date

仅返回在指定日期之后创建的任务。

dueOn

否

ISO Date

仅返回在指定日期到期的任务。

dueBefore

否

ISO Date

仅返回在指定日期之前到期的任务。

dueAfter

否

ISO Date

仅返回在指定日期之后到期的任务。

withoutDueDate

否

boolean

仅返回没有到期日期的任务。如果值为 false,则忽略该属性。

excludeSubTasks

否

Boolean

仅返回不是其他任务的子任务的任务。

active

否

Boolean

如果为 true,仅返回未挂起的任务(属于未挂起的流程或完全不属于流程的任务)。如果为 false,仅返回属于已挂起流程实例的任务。

includeTaskLocalVariables

否

Boolean

指示是否在结果中包含任务本地变量。

includeProcessVariables

否

Boolean

指示是否在结果中包含流程变量。

tenantId

否

String

仅返回具有指定租户 ID 的任务。

tenantIdLike

否

String

仅返回租户 ID 类似于给定值的任务。

withoutTenantId

否

Boolean

如果为 true,仅返回未设置租户 ID 的任务。如果为 false,则忽略此参数。

candidateOrAssigned

否

String

选择已被用户认领或分配的任务,或等待用户(候选用户或群组)认领的任务。

category

否

string

选择具有指定类别的任务。注意,这是任务类别,而不是流程定义的类别(BPMN XML 中的命名空间)。

任务列表 - 响应码
响应码 描述

200

表示请求成功且已返回任务。

400

表示参数格式错误或 'delegationState' 具有无效值('pending' 和 'resolved' 之外的值)。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "assignee" : "kermit",
      "createTime" : "2013-04-17T10:17:43.902+0000",
      "delegationState" : "pending",
      "description" : "Task description",
      "dueDate" : "2013-04-17T10:17:43.902+0000",
      "execution" : "http://localhost:8182/runtime/executions/5",
      "id" : "8",
      "name" : "My task",
      "owner" : "owner",
      "parentTask" : "http://localhost:8182/runtime/tasks/9",
      "priority" : 50,
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceUrl" : "http://localhost:8182/runtime/process-instances/5",
      "suspended" : false,
      "taskDefinitionKey" : "theTask",
      "url" : "http://localhost:8182/runtime/tasks/8",
      "tenantId" : null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询任务

POST query/tasks

请求体:

{
  "name" : "My task",
  "description" : "The task description",

  ...

  "taskVariables" : [
    {
      "name" : "myVariable",
      "value" : 1234,
      "operation" : "equals",
      "type" : "long"
    }
  ],

    "processInstanceVariables" : [
      {
         ...
      }
    ]
  ]
}

所有支持的 JSON 参数字段与获取任务集合中的参数完全相同(除了 candidateGroupIn 仅在此 POST 任务查询 REST 服务中可用),但作为 JSON 请求体参数传入而不是 URL 参数,以允许更高级的查询并防止请求 URI 过长的错误。此外,查询还允许基于任务和流程变量进行过滤。taskVariables 和 processInstanceVariables 都是包含此处所述格式对象的 JSON 数组。

查询任务 - 响应码
响应码 描述

200

表示请求成功且已返回任务。

400

表示参数格式错误或 'delegationState' 具有无效值('pending' 和 'resolved' 之外的值)。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "assignee" : "kermit",
      "createTime" : "2013-04-17T10:17:43.902+0000",
      "delegationState" : "pending",
      "description" : "Task description",
      "dueDate" : "2013-04-17T10:17:43.902+0000",
      "execution" : "http://localhost:8182/runtime/executions/5",
      "id" : "8",
      "name" : "My task",
      "owner" : "owner",
      "parentTask" : "http://localhost:8182/runtime/tasks/9",
      "priority" : 50,
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceUrl" : "http://localhost:8182/runtime/process-instances/5",
      "suspended" : false,
      "taskDefinitionKey" : "theTask",
      "url" : "http://localhost:8182/runtime/tasks/8",
      "tenantId" : null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

更新任务

PUT runtime/tasks/{taskId}

请求体 JSON:

{
  "assignee" : "assignee",
  "delegationState" : "resolved",
  "description" : "New task description",
  "dueDate" : "2013-04-17T13:06:02.438+02:00", 
  "name" : "New task name",
  "owner" : "owner",
  "parentTaskId" : "3",
  "priority" : 20
}

所有请求值都是可选的。例如,你可以在请求体 JSON 对象中只包含 'assignee' 属性,这样只会更新任务的受理人,而不会影响其他字段。当显式包含某个属性并将其设置为 null 时,任务中对应的值将被更新为 null。例如:{"dueDate" : null} 将清除任务的到期日期。

更新任务 - 响应码
响应码 描述

200

表示任务已更新。

404

表示未找到请求的任务。

409

表示请求的任务被同时更新。

成功响应体: 参见 runtime/tasks/{taskId} 的响应。

任务操作

POST runtime/tasks/{taskId}

完成任务 - 请求体 JSON:

{
  "action" : "complete",
  "variables" : []
}

完成任务。可以使用 variables 属性传入可选的变量数组。有关变量格式的更多信息,请参见REST 变量部分。请注意,提供的变量作用域会被忽略,变量会设置在父作用域中,除非本地作用域中存在变量,在这种情况下会被覆盖。这与 TaskService.completeTask(taskId, variables) 调用的行为相同。

注意,此 json 还接受 transientVariables 属性,其结构与 variables 属性相同。

认领任务 - 请求体 JSON:

{
  "action" : "claim",
  "assignee" : "userWhoClaims"
}

由指定的受理人认领任务。如果受理人为 null,则任务不分配给任何人,可以再次认领。

委派任务 - 请求体 JSON:

{
  "action" : "delegate",
  "assignee" : "userToDelegateTo"
}

将任务委派给指定的受理人。受理人是必需的。

解决任务 - 请求体 JSON:

{
  "action" : "resolve"
}

解决任务委派。任务会重新分配给任务所有者(如果有)。

任务操作 - 响应码
响应码 描述

200

表示操作已执行。

400

当请求体包含无效值,或操作需要受理人但未提供时。

404

表示未找到请求的任务。

409

表示由于冲突无法执行操作。可能是任务被同时更新,或在"认领"操作时任务已被其他用户认领。

成功响应体: 参见 runtime/tasks/{taskId} 的响应。

删除任务

DELETE runtime/tasks/{taskId}?cascadeHistory={cascadeHistory}&deleteReason={deleteReason}
删除任务 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要删除的任务的 ID。

cascadeHistory

否

Boolean

删除任务时是否同时删除历史任务实例(如果适用)。如果未提供,此值默认为 false。

deleteReason

否

String

删除任务的原因。当 cascadeHistory 为 true 时,此值将被忽略。

删除任务 - 响应码
响应码 描述

204

表示已找到任务并已删除。响应体特意留空。

403

表示无法删除请求的任务,因为它是工作流的一部分。

404

表示未找到请求的任务。

获取任务的所有变量

GET runtime/tasks/{taskId}/variables?scope={scope}
获取任务的所有变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取变量的任务的 ID。

scope

否

String

要返回的变量作用域。当为 'local' 时,仅返回任务本地变量。当为 'global' 时,仅返回任务的父执行层次结构中的变量。当省略此参数时,将返回本地和全局变量。

获取任务的所有变量 - 响应码
响应码 描述

200

表示已找到任务并已返回请求的变量。

404

表示未找到请求的任务。

成功响应体:

[
  {
    "name" : "doubleTaskVar",
    "scope" : "local",
    "type" : "double",
    "value" : 99.99
  },
  {
    "name" : "stringProcVar",
    "scope" : "global",
    "type" : "string",
    "value" : "This is a ProcVariable"
  }
]

变量以 JSON 数组形式返回。完整的响应描述可以在REST 变量部分中找到。

获取任务的变量

GET runtime/tasks/{taskId}/variables/{variableName}?scope={scope}
获取任务的变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取变量的任务的 ID。

variableName

是

String

要获取的变量名称。

scope

否

String

要返回的变量作用域。当为 'local' 时,仅返回任务本地变量值。当为 'global' 时,仅返回任务的父执行层次结构中的变量值。当省略此参数时,如果存在本地变量则返回本地变量,否则返回全局变量。

获取任务的变量 - 响应码
响应码 描述

200

表示已找到任务并已返回请求的变量。

404

表示未找到请求的任务,或任务在给定作用域中没有具有给定名称的变量。状态消息提供额外信息。

成功响应体:

{
  "name" : "myTaskVariable",
  "scope" : "local",
  "type" : "string",
  "value" : "Hello my friend"
}

完整的响应体描述可以在REST 变量部分中找到。

获取变量的二进制数据

GET runtime/tasks/{taskId}/variables/{variableName}/data?scope={scope}
获取变量的二进制数据 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取变量数据的任务的 ID。

variableName

是

String

要获取数据的变量名称。只能使用二进制类型和可序列化类型的变量。如果使用其他类型的变量,将返回 404。

scope

否

String

要返回的变量作用域。当为 'local' 时,仅返回任务本地变量值。当为 'global' 时,仅返回任务的父执行层次结构中的变量值。当省略此参数时,如果存在本地变量则返回本地变量,否则返回全局变量。

获取变量的二进制数据 - 响应码
响应码 描述

200

表示已找到任务并已返回请求的变量。

404

表示未找到请求的任务,或任务在给定作用域中没有具有给定名称的变量,或变量没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含变量的二进制值。当变量类型为二进制时,响应的 content-type 设置为 application/octet-stream,无论变量的内容或请求的 accept-type 头如何。对于可序列化类型,使用 application/x-java-serialized-object 作为 content-type。

在任务上创建新变量

POST runtime/tasks/{taskId}/variables
在任务上创建新变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建新变量的任务的 ID。

创建简单(非二进制)变量的请求体:

[
  {
    "name" : "myTaskVariable",
    "scope" : "local",
    "type" : "string",
    "value" : "Hello my friend"
  },
  {

  }
]

请求体应该是一个包含一个或多个 JSON 对象的数组,这些对象表示要创建的变量。

  • name: 必需的变量名称
  • scope: 创建的变量的作用域。如果省略,则假定为 local。
  • type: 创建的变量的类型。如果省略,则恢复为原始 JSON 值类型(string、boolean、integer 或 double)。
  • value: 变量值。

有关变量格式的更多信息,请参见REST 变量部分。

成功响应体:

[
  {
    "name" : "myTaskVariable",
    "scope" : "local",
    "type" : "string",
    "value" : "Hello my friend"
  },
  {

  }
]
在任务上创建新变量 - 响应码
响应码 描述

201

表示变量已创建并已返回结果。

400

表示缺少要创建的变量的名称,或尝试在独立任务(没有关联的流程)上创建作用域为全局的变量,或请求中包含了空的变量数组,或请求未包含变量数组。状态消息提供额外信息。

404

表示未找到请求的任务。

409

表示任务已具有给定名称的变量。请使用 PUT 方法更新任务变量。

在任务上创建新的二进制变量

POST runtime/tasks/{taskId}/variables
在任务上创建新的二进制变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建新变量的任务的 ID。

请求体:

请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。
  • scope: 创建的变量的作用域。如果省略,则假定为 local。
  • type: 创建的变量的类型。如果省略,则假定为 binary,请求中的二进制数据将作为字节数组存储。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/tasks/123/variables/binaryVariable/data"
}
在任务上创建新的二进制变量 - 响应码
响应码 描述

201

表示变量已创建并已返回结果。

400

表示缺少要创建的变量的名称,或尝试在独立任务(没有关联的流程)上创建作用域为全局的变量。状态消息提供额外信息。

404

表示未找到请求的任务。

409

表示任务已具有给定名称的变量。请使用 PUT 方法更新任务变量。

415

表示可序列化数据包含一个对象,该对象在运行 Flowable 引擎的 JVM 中没有对应的类,因此无法反序列化。

更新任务上的现有变量

PUT runtime/tasks/{taskId}/variables/{variableName}
更新任务上的现有变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要更新变量的任务的 ID。

variableName

是

String

要更新的变量名称。

更新简单(非二进制)变量的请求体:

{
  "name" : "myTaskVariable",
  "scope" : "local",
  "type" : "string",
  "value" : "Hello my friend"
}
  • name: 必需的变量名称
  • scope: 更新的变量的作用域。如果省略,则假定为 local。
  • type: 更新的变量的类型。如果省略,则恢复为原始 JSON 值类型(string、boolean、integer 或 double)。
  • value: 变量值。

有关变量格式的更多信息,请参见REST 变量部分。

成功响应体:

{
  "name" : "myTaskVariable",
  "scope" : "local",
  "type" : "string",
  "value" : "Hello my friend"
}
更新任务上的现有变量 - 响应码
响应码 描述

200

表示变量已更新并已返回结果。

400

表示缺少要更新的变量的名称,或尝试在独立任务(没有关联的流程)上更新作用域为全局的变量。状态消息提供额外信息。

404

表示未找到请求的任务,或任务在给定作用域中没有具有给定名称的变量。状态消息包含有关错误的额外信息。

更新任务上的二进制变量

PUT runtime/tasks/{taskId}/variables/{variableName}
更新任务上的二进制变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要更新变量的任务的 ID。

variableName

是

String

要更新的变量名称。

请求体:

请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。
  • scope: 更新的变量的作用域。如果省略,则假定为 local。
  • type: 更新的变量的类型。如果省略,则假定为 binary,请求中的二进制数据将作为字节数组存储。

成功响应体:

{
  "name" : "binaryVariable",
  "scope" : "local",
  "type" : "binary",
  "value" : null,
  "valueUrl" : "http://.../runtime/tasks/123/variables/binaryVariable/data"
}

删除任务上的变量

DELETE runtime/tasks/{taskId}/variables/{variableName}?scope={scope}
更新任务上的二进制变量 - 响应码
响应码 描述

200

表示变量已更新并已返回结果。

400

表示缺少要更新的变量的名称,或尝试在独立任务(没有关联的流程)上更新作用域为全局的变量。状态消息提供额外信息。

404

表示未找到请求的任务,或给定作用域中的给定任务不存在要更新的变量。

415

表示可序列化数据包含一个对象,该对象在运行 Flowable 引擎的 JVM 中没有对应的类,因此无法反序列化。

删除任务上的变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要删除变量的任务的 ID。

variableName

是

String

要删除的变量名称。

scope

否

String

要删除的变量的作用域。可以是 local 或 global。如果省略,则假定为 local。

删除任务上的变量 - 响应码
响应码 描述

204

表示已找到任务变量并已删除。响应体特意留空。

404

表示未找到请求的任务,或任务没有具有给定名称的变量。状态消息包含有关错误的额外信息。

删除任务上的所有本地变量

DELETE runtime/tasks/{taskId}/variables
删除任务上的所有本地变量 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要删除变量的任务的 ID。

删除任务上的所有本地变量 - 响应码
响应码 描述

204

表示所有本地任务变量已被删除。响应体特意留空。

404

表示未找到请求的任务。

获取任务的所有身份链接

GET runtime/tasks/{taskId}/identitylinks
获取任务的所有身份链接 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取身份链接的任务的 ID。

获取任务的所有身份链接 - 响应码
响应码 描述

200

表示已找到任务并已返回请求的身份链接。

404

表示未找到请求的任务。

成功响应体:

[
  {
    "userId" : "kermit",
    "groupId" : null,
    "type" : "candidate",
    "url" : "http://localhost:8081/flowable-rest/service/runtime/tasks/100/identitylinks/users/kermit/candidate"
  },
  {
    "userId" : null,
    "groupId" : "sales",
    "type" : "candidate",
    "url" : "http://localhost:8081/flowable-rest/service/runtime/tasks/100/identitylinks/groups/sales/candidate"
  },

  ...
]

获取任务的用户组或用户身份链接

GET runtime/tasks/{taskId}/identitylinks/users
GET runtime/tasks/{taskId}/identitylinks/groups

仅返回针对用户或组的身份链接。响应体和状态码与获取任务的完整身份链接列表时完全相同。

获取任务的单个身份链接

GET runtime/tasks/{taskId}/identitylinks/{family}/{identityId}/{type}
获取任务的用户组或用户身份链接 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

任务的 ID。

family

是

String

根据目标身份类型,可以是 groups 或 users。

identityId

是

String

身份的 ID。

type

是

String

身份链接的类型。

获取任务的用户组或用户身份链接 - 响应码
响应码 描述

200

表示已找到任务和身份链接并已返回。

404

表示未找到请求的任务,或任务没有请求的身份链接。状态包含有关此错误的额外信息。

成功响应体:

{
  "userId" : null,
  "groupId" : "sales",
  "type" : "candidate",
  "url" : "http://localhost:8081/flowable-rest/service/runtime/tasks/100/identitylinks/groups/sales/candidate"
}

在任务上创建身份链接

POST runtime/tasks/{taskId}/identitylinks
在任务上创建身份链接 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建身份链接的任务的 ID。

请求体(用户):

{
  "userId" : "kermit",
  "type" : "candidate",
}

请求体(用户组):

{
  "groupId" : "sales",
  "type" : "candidate",
}
在任务上创建身份链接 - 响应码
响应码 描述

201

表示已找到任务并已创建身份链接。

404

表示未找到请求的任务,或任务没有请求的身份链接。状态包含有关此错误的额外信息。

成功响应体:

{
  "userId" : null,
  "groupId" : "sales",
  "type" : "candidate",
  "url" : "http://localhost:8081/flowable-rest/service/runtime/tasks/100/identitylinks/groups/sales/candidate"
}

删除任务上的身份链接

DELETE runtime/tasks/{taskId}/identitylinks/{family}/{identityId}/{type}
删除任务上的身份链接 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

任务的 ID。

family

是

String

根据目标身份类型,可以是 groups 或 users。

identityId

是

String

身份的 ID。

type

是

String

身份链接的类型。

删除任务上的身份链接 - 响应码
响应码 描述

204

表示已找到任务和身份链接并已删除该链接。响应体特意留空。

404

表示未找到请求的任务,或任务没有请求的身份链接。状态包含有关此错误的额外信息。

在任务上创建新评论

POST runtime/tasks/{taskId}/comments
在任务上创建新评论 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建评论的任务的 ID。

请求体:

{
  "message" : "This is a comment on the task.",
  "saveProcessInstanceId" : true
}

参数 saveProcessInstanceId 是可选的,如果为 true,则将任务的流程实例 ID 与评论一起保存。

成功响应体:

{
  "id" : "123",
  "taskUrl" : "http://localhost:8081/flowable-rest/service/runtime/tasks/101/comments/123",
  "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/123",
  "message" : "This is a comment on the task.",
  "author" : "kermit",
  "time" : "2014-07-13T13:13:52.232+08:00"
  "taskId" : "101",
  "processInstanceId" : "100"
}
在任务上创建新评论 - 响应码
响应码 描述

201

表示评论已创建并已返回结果。

400

表示请求中缺少评论。

404

表示未找到请求的任务。

获取任务的所有评论

GET runtime/tasks/{taskId}/comments
获取任务的所有评论 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取评论的任务的 ID。

成功响应体:

[
  {
    "id" : "123",
    "taskUrl" : "http://localhost:8081/flowable-rest/service/runtime/tasks/101/comments/123",
    "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/123",
    "message" : "This is a comment on the task.",
    "author" : "kermit"
    "time" : "2014-07-13T13:13:52.232+08:00"
    "taskId" : "101",
    "processInstanceId" : "100"
  },
  {
    "id" : "456",
    "taskUrl" : "http://localhost:8081/flowable-rest/service/runtime/tasks/101/comments/456",
    "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/456",
    "message" : "This is another comment on the task.",
    "author" : "gonzo",
    "time" : "2014-07-13T13:13:52.232+08:00"
    "taskId" : "101",
    "processInstanceId" : "100"
  }
]
获取任务的所有评论 - 响应码
响应码 描述

200

表示已找到任务并已返回评论。

404

表示未找到请求的任务。

获取任务的评论

GET runtime/tasks/{taskId}/comments/{commentId}
获取任务的评论 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取评论的任务的 ID。

commentId

是

String

评论的 ID。

成功响应体:

{
  "id" : "123",
  "taskUrl" : "http://localhost:8081/flowable-rest/service/runtime/tasks/101/comments/123",
  "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/123",
  "message" : "This is a comment on the task.",
  "author" : "kermit",
  "time" : "2014-07-13T13:13:52.232+08:00"
  "taskId" : "101",
  "processInstanceId" : "100"
}
获取任务的评论 - 响应码
响应码 描述

200

表示已找到任务和评论并已返回评论。

404

表示未找到请求的任务,或任务没有具有给定 ID 的评论。

删除任务上的评论

DELETE runtime/tasks/{taskId}/comments/{commentId}
删除任务上的评论 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要删除评论的任务的 ID。

commentId

是

String

评论的 ID。

删除任务上的评论 - 响应码
响应码 描述

204

表示已找到任务和评论并已删除评论。响应体特意留空。

404

表示未找到请求的任务,或任务没有具有给定 ID 的评论。

获取任务的所有事件

GET runtime/tasks/{taskId}/events
获取任务的所有事件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取事件的任务的 ID。

成功响应体:

[
  {
    "action" : "AddUserLink",
    "id" : "4",
    "message" : [ "gonzo", "contributor" ],
    "taskUrl" : "http://localhost:8182/runtime/tasks/2",
    "time" : "2013-05-17T11:50:50.000+0000",
    "url" : "http://localhost:8182/runtime/tasks/2/events/4",
    "userId" : null
  }
]
获取任务的所有事件 - 响应码
响应码 描述

200

表示已找到任务并已返回事件。

404

表示未找到请求的任务。

获取任务的事件

GET runtime/tasks/{taskId}/events/{eventId}
获取任务的事件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取事件的任务的 ID。

eventId

是

String

事件的 ID。

成功响应体:

{
  "action" : "AddUserLink",
  "id" : "4",
  "message" : [ "gonzo", "contributor" ],
  "taskUrl" : "http://localhost:8182/runtime/tasks/2",
  "time" : "2013-05-17T11:50:50.000+0000",
  "url" : "http://localhost:8182/runtime/tasks/2/events/4",
  "userId" : null
}
获取任务的事件 - 响应码
响应码 描述

200

表示已找到任务和事件并已返回事件。

404

表示未找到请求的任务,或任务没有具有给定 ID 的事件。

在任务上创建包含外部资源链接的新附件

POST runtime/tasks/{taskId}/attachments
在任务上创建包含外部资源链接的新附件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建附件的任务的 ID。

请求体:

{
  "name":"Simple attachment",
  "description":"Simple attachment description", 
  "type":"simpleType",
  "externalUrl":"http://flowable.org"
}

只有附件名称是创建新附件所必需的。

成功响应体:

{
  "id":"3",
  "url":"http://localhost:8182/runtime/tasks/2/attachments/3",
  "name":"Simple attachment",
  "description":"Simple attachment description",
  "type":"simpleType", 
  "taskUrl":"http://localhost:8182/runtime/tasks/2",
  "processInstanceUrl":null,
  "externalUrl":"http://flowable.org",
  "contentUrl":null
}
在任务上创建包含外部资源链接的新附件 - 响应码
响应码 描述

201

表示附件已创建并已返回结果。

400

表示请求中缺少附件名称。

404

表示未找到请求的任务。

在任务上创建带附件文件的新附件

POST runtime/tasks/{taskId}/attachments
在任务上创建带附件文件的新附件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要创建附件的任务的 ID。

请求体:

请求类型应为 multipart/form-data。应包含一个带有变量二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • name: 必需的变量名称。

  • description: 附件的描述,可选。

  • type: 附件类型,可选。支持任意字符串或有效的 HTTP content-type。

成功响应体:

{
    "id":"5",
    "url":"http://localhost:8182/runtime/tasks/2/attachments/5",
    "name":"Binary attachment",
    "description":"Binary attachment description",
    "type":"binaryType",
    "taskUrl":"http://localhost:8182/runtime/tasks/2",
    "processInstanceUrl":null,
    "externalUrl":null,
    "contentUrl":"http://localhost:8182/runtime/tasks/2/attachments/5/content"
}
在任务上创建带附件文件的新附件 - 响应码
响应码 描述

201

表示附件已创建并已返回结果。

400

表示请求中缺少附件名称或请求中没有文件。错误消息包含额外信息。

404

表示未找到请求的任务。

获取任务的所有附件

GET runtime/tasks/{taskId}/attachments
获取任务的所有附件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取附件的任务的 ID。

成功响应体:

[
  {
    "id":"3",
    "url":"http://localhost:8182/runtime/tasks/2/attachments/3",
    "name":"Simple attachment",
    "description":"Simple attachment description",
    "type":"simpleType",
    "taskUrl":"http://localhost:8182/runtime/tasks/2",
    "processInstanceUrl":null,
    "externalUrl":"http://flowable.org",
    "contentUrl":null
  },
  {
    "id":"5",
    "url":"http://localhost:8182/runtime/tasks/2/attachments/5",
    "name":"Binary attachment",
    "description":"Binary attachment description",
    "type":"binaryType",
    "taskUrl":"http://localhost:8182/runtime/tasks/2",
    "processInstanceUrl":null,
    "externalUrl":null,
    "contentUrl":"http://localhost:8182/runtime/tasks/2/attachments/5/content"
  }
]
获取任务的所有附件 - 响应码
响应码 描述

200

表示已找到任务并已返回附件。

404

表示未找到请求的任务。

获取任务的附件

GET runtime/tasks/{taskId}/attachments/{attachmentId}
获取任务的附件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取附件的任务的 ID。

attachmentId

是

String

附件的 ID。

成功响应体:

{
  "id":"5",
  "url":"http://localhost:8182/runtime/tasks/2/attachments/5",
  "name":"Binary attachment",
  "description":"Binary attachment description",
  "type":"binaryType",
  "taskUrl":"http://localhost:8182/runtime/tasks/2",
  "processInstanceUrl":null,
  "externalUrl":null,
  "contentUrl":"http://localhost:8182/runtime/tasks/2/attachments/5/content"
}
  • externalUrl - contentUrl: 如果附件是外部资源的链接,则 externalUrl 包含指向外部内容的 URL。如果附件内容存在于 Flowable 引擎中,则 contentUrl 将包含可以从中流式传输二进制内容的 URL。

  • type: 可以是任意值。当包含有效格式的媒体类型(例如 application/xml、text/plain)时,二进制内容的 HTTP 响应 content-type 将设置为给定值。

获取任务的附件 - 响应码
响应码 描述

200

表示已找到任务和附件并已返回附件。

404

表示未找到请求的任务,或任务没有具有给定 ID 的附件。

获取附件的内容

GET runtime/tasks/{taskId}/attachment/{attachmentId}/content
获取附件的内容 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要获取变量数据的任务的 ID。

attachmentId

是

String

附件的 ID。如果附件指向外部 URL 而不是 Flowable 中附加的内容,则返回 404。

获取附件的内容 - 响应码
响应码 描述

200

表示已找到任务和附件并已返回请求的内容。

404

表示未找到请求的任务,或任务没有具有给定 ID 的附件,或附件没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含二进制内容。默认情况下,响应的 content-type 设置为 application/octet-stream,除非附件类型包含有效的 Content-type。

删除任务上的附件

DELETE runtime/tasks/{taskId}/attachments/{attachmentId}
删除任务上的附件 - URL 参数
参数 是否必需 值类型 描述

taskId

是

String

要删除附件的任务的 ID。

attachmentId

是

String

附件的 ID。

删除任务上的附件 - 响应码
响应码 描述

204

表示已找到任务和附件并已删除附件。响应体特意留空。

404

表示未找到请求的任务,或任务没有具有给定 ID 的附件。

历史

获取历史流程实例

GET history/historic-process-instances/{processInstanceId}
获取历史流程实例 - 响应码
响应码 描述

200

表示已找到历史流程实例。

404

表示未找到历史流程实例。

成功响应体:

{
  "id" : "5",
  "businessKey" : "myKey",
  "processDefinitionId" : "oneTaskProcess%3A1%3A4",
  "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
  "startTime" : "2013-04-17T10:17:43.902+0000",
  "endTime" : "2013-04-18T14:06:32.715+0000",
  "durationInMillis" : 86400056,
  "startUserId" : "kermit",
  "startActivityId" : "startEvent",
  "endActivityId" : "endEvent",
  "deleteReason" : null,
  "superProcessInstanceId" : "3",
  "url" : "http://localhost:8182/history/historic-process-instances/5",
  "variables": null,
  "tenantId":null
}

获取历史流程实例列表

GET history/historic-process-instances
获取历史流程实例列表 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

否

String

历史流程实例的 ID。

processDefinitionKey

否

String

历史流程实例的流程定义键。

processDefinitionId

否

String

历史流程实例的流程定义 ID。

businessKey

否

String

历史流程实例的业务键。

involvedUser

否

String

历史流程实例的参与用户。

finished

否

Boolean

历史流程实例是否已完成的标识。

superProcessInstanceId

否

String

历史流程实例的可选父流程 ID。

excludeSubprocesses

否

Boolean

仅返回不是子流程的历史流程实例。

finishedAfter

否

Date

仅返回在此日期之后完成的历史流程实例。

finishedBefore

否

Date

仅返回在此日期之前完成的历史流程实例。

startedAfter

否

Date

仅返回在此日期之后启动的历史流程实例。

startedBefore

否

Date

仅返回在此日期之前启动的历史流程实例。

startedBy

否

String

仅返回由此用户启动的历史流程实例。

includeProcessVariables

否

Boolean

是否同时返回历史流程实例变量的标识。

tenantId

否

String

仅返回具有给定租户 ID 的实例。

tenantIdLike

否

String

仅返回租户 ID 与给定值相似的实例。

withoutTenantId

否

Boolean

如果为 true,则仅返回未设置租户 ID 的实例。如果为 false,则忽略 withoutTenantId 参数。

获取历史流程实例列表 - 响应码
响应码 描述

200

表示可以查询历史流程实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "businessKey" : "myKey",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "startUserId" : "kermit",
      "startActivityId" : "startEvent",
      "endActivityId" : "endEvent",
      "deleteReason" : null,
      "superProcessInstanceId" : "3",
      "url" : "http://localhost:8182/history/historic-process-instances/5",
      "variables": [
        {
          "name": "test",
          "variableScope": "local",
          "value": "myTest"
        }
      ],
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询历史流程实例

POST query/historic-process-instances

请求体:

{
  "processDefinitionId" : "oneTaskProcess%3A1%3A4",
  
  "variables" : [
    {
      "name" : "myVariable",
      "value" : 1234,
      "operation" : "equals",
      "type" : "long"
    }
  ]
}

所有支持的 JSON 参数字段与获取历史流程实例集合中的参数完全相同,但作为 JSON 请求体参数而不是 URL 参数传递,以允许更高级的查询并防止请求 URI 过长的错误。此外,查询还允许基于流程变量进行过滤。variables 属性是一个 JSON 数组,包含此处描述的格式的对象。

查询历史流程实例 - 响应码
响应码 描述

200

表示请求成功并已返回任务。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "businessKey" : "myKey",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "startUserId" : "kermit",
      "startActivityId" : "startEvent",
      "endActivityId" : "endEvent",
      "deleteReason" : null,
      "superProcessInstanceId" : "3",
      "url" : "http://localhost:8182/history/historic-process-instances/5",
      "variables": [
        {
          "name": "test",
          "variableScope": "local",
          "value": "myTest"
        }
      ],
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

删除历史流程实例

DELETE history/historic-process-instances/{processInstanceId}
响应码
响应码 描述

200

表示已删除历史流程实例。

404

表示未找到历史流程实例。

获取历史流程实例的身份链接

GET history/historic-process-instance/{processInstanceId}/identitylinks
响应码
响应码 描述

200

表示请求成功并已返回身份链接。

404

表示未找到流程实例。

成功响应体:

[
 {
  "type" : "participant",
  "userId" : "kermit",
  "groupId" : null,
  "taskId" : null,
  "taskUrl" : null,
  "processInstanceId" : "5",
  "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/5"
 }
]

获取历史流程实例变量的二进制数据

GET history/historic-process-instances/{processInstanceId}/variables/{variableName}/data
获取历史流程实例变量的二进制数据 - 响应码
响应码 描述

200

表示已找到流程实例并已返回请求的变量数据。

404

表示未找到请求的流程实例,或流程实例没有具有给定名称的变量,或变量没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含变量的二进制值。当变量类型为二进制时,响应的 content-type 设置为 application/octet-stream,而不考虑变量的内容或请求的 accept-type 头。如果是可序列化的,则使用 application/x-java-serialized-object 作为 content-type。

在历史流程实例上创建新评论

POST history/historic-process-instances/{processInstanceId}/comments
在历史流程实例上创建新评论 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要创建评论的流程实例的 ID。

请求体:

{
  "message" : "This is a comment.",
  "saveProcessInstanceId" : true
}

参数 saveProcessInstanceId 是可选的,如果为 true,则将任务的流程实例 ID 与评论一起保存。

成功响应体:

{
  "id" : "123",
  "taskUrl" : "http://localhost:8081/flowable-rest/service/runtime/tasks/101/comments/123",
  "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/123",
  "message" : "This is a comment on the task.",
  "author" : "kermit",
  "time" : "2014-07-13T13:13:52.232+08:00",
  "taskId" : "101",
  "processInstanceId" : "100"
}
在历史流程实例上创建新评论 - 响应码
响应码 描述

201

表示评论已创建并已返回结果。

400

表示请求中缺少评论。

404

表示未找到请求的历史流程实例。

获取历史流程实例的所有评论

GET history/historic-process-instances/{processInstanceId}/comments
获取流程实例的所有评论 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取评论的流程实例的 ID。

成功响应体:

[
  {
    "id" : "123",
    "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/123",
    "message" : "This is a comment on the task.",
    "author" : "kermit",
    "time" : "2014-07-13T13:13:52.232+08:00",
    "processInstanceId" : "100"
  },
  {
    "id" : "456",
    "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/456",
    "message" : "This is another comment.",
    "author" : "gonzo",
    "time" : "2014-07-14T15:16:52.232+08:00",
    "processInstanceId" : "100"
  }
]
获取流程实例的所有评论 - 响应码
响应码 描述

200

表示已找到流程实例并已返回评论。

404

表示未找到请求的任务。

获取历史流程实例的评论

GET history/historic-process-instances/{processInstanceId}/comments/{commentId}
获取历史流程实例的评论 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要获取评论的历史流程实例的 ID。

commentId

是

String

评论的 ID。

成功响应体:

{
  "id" : "123",
  "processInstanceUrl" : "http://localhost:8081/flowable-rest/service/history/historic-process-instances/100/comments/456",
  "message" : "This is another comment.",
  "author" : "gonzo",
  "time" : "2014-07-14T15:16:52.232+08:00",
  "processInstanceId" : "100"
}
获取历史流程实例的评论 - 响应码
响应码 描述

200

表示已找到历史流程实例和评论并已返回评论。

404

表示未找到请求的历史流程实例,或历史流程实例没有具有给定 ID 的评论。

删除历史流程实例的评论

DELETE history/historic-process-instances/{processInstanceId}/comments/{commentId}
删除历史流程实例的评论 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

是

String

要删除评论的历史流程实例的 ID。

commentId

是

String

评论的 ID。

删除历史流程实例的评论 - 响应码
响应码 描述

204

表示已找到历史流程实例和评论并已删除评论。响应体特意留空。

404

表示未找到请求的任务,或历史流程实例没有具有给定 ID 的评论。

获取单个历史任务实例

GET history/historic-task-instances/{taskId}
获取单个历史任务实例 - 响应码
响应码 描述

200

表示已找到历史任务实例。

404

表示未找到历史任务实例。

成功响应体:

{
  "id" : "5",
  "processDefinitionId" : "oneTaskProcess%3A1%3A4",
  "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
  "processInstanceId" : "3",
  "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/3",
  "executionId" : "4",
  "name" : "My task name",
  "description" : "My task description",
  "deleteReason" : null,
  "owner" : "kermit",
  "assignee" : "fozzie",
  "startTime" : "2013-04-17T10:17:43.902+0000",
  "endTime" : "2013-04-18T14:06:32.715+0000",
  "durationInMillis" : 86400056,
  "workTimeInMillis" : 234890,
  "claimTime" : "2013-04-18T11:01:54.715+0000",
  "taskDefinitionKey" : "taskKey",
  "formKey" : null,
  "priority" : 50,
  "dueDate" : "2013-04-20T12:11:13.134+0000",
  "parentTaskId" : null,
  "url" : "http://localhost:8182/history/historic-task-instances/5",
  "variables": null,
  "tenantId":null
}

获取历史任务实例

GET history/historic-task-instances
获取历史任务实例 - URL 参数
参数 是否必需 值类型 描述

taskId

否

String

历史任务实例的 ID。

processInstanceId

否

String

历史任务实例的流程实例 ID。

processDefinitionKey

否

String

历史任务实例的流程定义键。

processDefinitionKeyLike

否

String

历史任务实例的流程定义键,匹配给定值。

processDefinitionId

否

String

历史任务实例的流程定义 ID。

processDefinitionName

否

String

历史任务实例的流程定义名称。

processDefinitionNameLike

否

String

历史任务实例的流程定义名称,匹配给定值。

processBusinessKey

否

String

历史任务实例的流程实例业务键。

processBusinessKeyLike

否

String

历史任务实例的流程实例业务键,匹配给定值。

executionId

否

String

历史任务实例的执行 ID。

taskDefinitionKey

否

String

流程中任务的任务定义键。

taskName

否

String

历史任务实例的任务名称。

taskNameLike

否

String

使用 'like' 运算符的历史任务实例的任务名称。

taskDescription

否

String

历史任务实例的任务描述。

taskDescriptionLike

否

String

使用 'like' 运算符的历史任务实例的任务描述。

taskDefinitionKey

否

String

历史任务实例的流程定义中的任务标识符。

taskCategory

否

String

选择具有给定类别的任务。注意这是任务类别,而不是流程定义的类别(BPMN XML 中的命名空间)。

taskDeleteReason

否

String

历史任务实例的任务删除原因。

taskDeleteReasonLike

否

String

使用 'like' 运算符的历史任务实例的任务删除原因。

taskAssignee

否

String

历史任务实例的受理人。

taskAssigneeLike

否

String

使用 'like' 运算符的历史任务实例的受理人。

taskOwner

否

String

历史任务实例的所有者。

taskOwnerLike

否

String

使用 'like' 运算符的历史任务实例的所有者。

taskInvolvedUser

否

String

历史任务实例的参与用户。

taskPriority

否

String

历史任务实例的优先级。

finished

否

Boolean

历史任务实例是否已完成的标识。

processFinished

否

Boolean

历史任务实例的流程实例是否已完成的标识。

parentTaskId

否

String

历史任务实例的可选父任务 ID。

dueDate

否

Date

仅返回到期日等于此日期的历史任务实例。

dueDateAfter

否

Date

仅返回到期日在此日期之后的历史任务实例。

dueDateBefore

否

Date

仅返回到期日在此日期之前的历史任务实例。

withoutDueDate

否

Boolean

仅返回没有到期日的历史任务实例。当提供 false 作为值时,此参数将被忽略。

taskCompletedOn

否

Date

仅返回在此日期完成的历史任务实例。

taskCompletedAfter

否

Date

仅返回在此日期之后完成的历史任务实例。

taskCompletedBefore

否

Date

仅返回在此日期之前完成的历史任务实例。

taskCreatedOn

否

Date

仅返回在此日期创建的历史任务实例。

taskCreatedBefore

否

Date

仅返回在此日期之前创建的历史任务实例。

taskCreatedAfter

否

Date

仅返回在此日期之后创建的历史任务实例。

includeTaskLocalVariables

否

Boolean

是否同时返回历史任务实例的本地变量。

includeProcessVariables

否

Boolean

是否同时返回历史任务实例的全局变量。

tenantId

否

String

仅返回具有给定租户 ID 的历史任务实例。

tenantIdLike

否

String

仅返回租户 ID 与给定值相似的历史任务实例。

withoutTenantId

否

Boolean

如果为 true,则仅返回未设置租户 ID 的历史任务实例。如果为 false,则忽略 withoutTenantId 参数。

获取历史任务实例 - 响应码
响应码 描述

200

表示可以查询历史流程实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceId" : "3",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/3",
      "executionId" : "4",
      "name" : "My task name",
      "description" : "My task description", 
      "deleteReason" : null,
      "owner" : "kermit",
      "assignee" : "fozzie",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "workTimeInMillis" : 234890,
      "claimTime" : "2013-04-18T11:01:54.715+0000",
      "taskDefinitionKey" : "taskKey",
      "formKey" : null,
      "priority" : 50,
      "dueDate" : "2013-04-20T12:11:13.134+0000",
      "parentTaskId" : null,
      "url" : "http://localhost:8182/history/historic-task-instances/5",
      "taskVariables": [
        {
          "name": "test",
          "variableScope": "local",
          "value": "myTest"
        }
      ],
      "processVariables": [
        {
          "name": "processTest",
          "variableScope": "global", 
          "value": "myProcessTest"
        }
      ],
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询历史任务实例

POST query/historic-task-instances

查询历史任务实例 - 请求体:

{
  "processDefinitionId" : "oneTaskProcess%3A1%3A4",
  ...

  "variables" : [
    {
      "name" : "myVariable",
      "value" : 1234,
      "operation" : "equals",
      "type" : "long"
    }
  ]
}

所有支持的 JSON 参数字段与获取历史任务实例集合中的参数完全相同,但作为 JSON 请求体参数而不是 URL 参数传递,以允许更高级的查询并防止请求 URI 过长的错误。此外,查询还允许基于流程变量进行过滤。taskVariables 和 processVariables 属性是 JSON 数组,包含此处描述的格式的对象。

查询历史任务实例 - 响应码
响应码 描述

200

表示请求成功并已返回任务。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceId" : "3",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/3",
      "executionId" : "4",
      "name" : "My task name",
      "description" : "My task description",
      "deleteReason" : null,
      "owner" : "kermit",
      "assignee" : "fozzie",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "workTimeInMillis" : 234890,
      "claimTime" : "2013-04-18T11:01:54.715+0000",
      "taskDefinitionKey" : "taskKey",
      "formKey" : null,
      "priority" : 50,
      "dueDate" : "2013-04-20T12:11:13.134+0000",
      "parentTaskId" : null,
      "url" : "http://localhost:8182/history/historic-task-instances/5",
      "taskVariables": [
        {
          "name": "test",
          "variableScope": "local",
          "value": "myTest"
        }
      ],
      "processVariables": [
        {
          "name": "processTest",
          "variableScope": "global",
          "value": "myProcessTest"
        }
      ],
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

删除历史任务实例

DELETE history/historic-task-instances/{taskId}
响应码
响应码 描述

200

表示已删除历史任务实例。

404

表示未找到历史任务实例。

获取历史任务实例的身份链接

GET history/historic-task-instance/{taskId}/identitylinks
响应码
响应码 描述

200

表示请求成功并已返回身份链接。

404

表示未找到任务实例。

成功响应体:

[
 {
  "type" : "assignee",
  "userId" : "kermit",
  "groupId" : null,
  "taskId" : "6",
  "taskUrl" : "http://localhost:8182/history/historic-task-instances/5",
  "processInstanceId" : null,
  "processInstanceUrl" : null
 }
]

获取历史任务实例变量的二进制数据

GET history/historic-task-instances/{taskId}/variables/{variableName}/data
获取历史任务实例变量的二进制数据 - 响应码
响应码 描述

200

表示已找到任务实例并已返回请求的变量数据。

404

表示未找到请求的任务实例,或流程实例没有具有给定名称的变量,或变量没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含变量的二进制值。当变量类型为二进制时,响应的 content-type 设置为 application/octet-stream,而不考虑变量的内容或请求的 accept-type 头。如果是可序列化的,则使用 application/x-java-serialized-object 作为 content-type。

获取历史活动实例

GET history/historic-activity-instances
获取历史活动实例 - URL 参数
参数 是否必需 值类型 描述

activityId

否

String

活动实例的 ID。

activityInstanceId

否

String

历史活动实例的 ID。

activityName

否

String

历史活动实例的名称。

activityType

否

String

历史活动实例的元素类型。

executionId

否

String

历史活动实例的执行 ID。

finished

否

Boolean

历史活动实例是否已完成的标识。

taskAssignee

否

String

历史活动实例的受理人。

processInstanceId

否

String

历史活动实例的流程实例 ID。

processDefinitionId

否

String

历史活动实例的流程定义 ID。

tenantId

否

String

仅返回具有给定租户 ID 的实例。

tenantIdLike

否

String

仅返回租户 ID 与给定值相似的实例。

withoutTenantId

否

Boolean

如果为 true,则仅返回未设置租户 ID 的实例。如果为 false,则忽略 withoutTenantId 参数。

获取历史活动实例 - 响应码
响应码 描述

200

表示可以查询历史活动实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "activityId" : "4", 
      "activityName" : "My user task",
      "activityType" : "userTask",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceId" : "3",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/3",
      "executionId" : "4",
      "taskId" : "4",
      "calledProcessInstanceId" : null,
      "assignee" : "fozzie",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询历史活动实例

POST query/historic-activity-instances

请求体:

{
  "processDefinitionId" : "oneTaskProcess%3A1%3A4"
}

所有支持的 JSON 参数字段与获取历史任务实例集合中的参数完全相同,但作为 JSON 请求体参数而不是 URL 参数传递,以允许更高级的查询并防止请求 URI 过长的错误。

查询历史活动实例 - 响应码
响应码 描述

200

表示请求成功并已返回活动。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "5",
      "activityId" : "4",
      "activityName" : "My user task",
      "activityType" : "userTask",
      "processDefinitionId" : "oneTaskProcess%3A1%3A4",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
      "processInstanceId" : "3",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/3",
      "executionId" : "4",
      "taskId" : "4",
      "calledProcessInstanceId" : null,
      "assignee" : "fozzie",
      "startTime" : "2013-04-17T10:17:43.902+0000",
      "endTime" : "2013-04-18T14:06:32.715+0000",
      "durationInMillis" : 86400056,
      "tenantId":null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

获取历史变量实例列表

GET history/historic-variable-instances
获取历史变量实例列表 - URL 参数
参数 是否必需 值类型 描述

processInstanceId

否

String

历史变量实例的流程实例 ID。

taskId

否

String

历史变量实例的任务 ID。

excludeTaskVariables

否

Boolean

是否从结果中排除任务变量的标识。

variableName

否

String

历史变量实例的变量名称。

variableNameLike

否

String

使用 'like' 运算符的历史变量实例的变量名称。

获取历史变量实例列表 - 响应码
响应码 描述

200

表示可以查询历史变量实例。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "14",
      "processInstanceId" : "5",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/5",
      "taskId" : "6",
      "variable" : {
        "name" : "myVariable",
        "variableScope": "global",
        "value" : "test"
      }
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询历史变量实例

POST query/historic-variable-instances

请求体:

{
  "processDefinitionId" : "oneTaskProcess%3A1%3A4",
  ...

  "variables" : [
    {
      "name" : "myVariable",
      "value" : 1234,
      "operation" : "equals",
      "type" : "long"
    }
  ]
}

所有支持的 JSON 参数字段与获取历史流程实例集合中的参数完全相同,但作为 JSON 请求体参数而不是 URL 参数传递,以允许更高级的查询并防止请求 URI 过长的错误。此外,查询还允许基于流程变量进行过滤。variables 属性是一个 JSON 数组,包含此处描述的格式的对象。

查询历史变量实例 - 响应码
响应码 描述

200

表示请求成功并已返回任务。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "14",
      "processInstanceId" : "5",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/5",
      "taskId" : "6",
      "variable" : {
        "name" : "myVariable",
        "variableScope": "global",
        "value" : "test"
      }
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

获取历史任务实例变量的二进制数据

GET history/historic-variable-instances/{varInstanceId}/data
获取历史任务实例变量的二进制数据 - 响应码
响应码 描述

200

表示已找到变量实例并已返回请求的变量数据。

404

表示未找到请求的变量实例,或变量实例没有具有给定名称的变量,或变量没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含变量的二进制值。当变量类型为二进制时,响应的 content-type 设置为 application/octet-stream,而不考虑变量的内容或请求的 accept-type 头。如果是可序列化的,则使用 application/x-java-serialized-object 作为 content-type。

获取历史详情

GET history/historic-detail
获取历史详情 - URL 参数
参数 是否必需 值类型 描述

id

否

String

历史详情的 ID。

processInstanceId

否

String

历史详情的流程实例 ID。

executionId

否

String

历史详情的执行 ID。

activityInstanceId

否

String

历史详情的活动实例 ID。

taskId

否

String

历史详情的任务 ID。

selectOnlyFormProperties

否

Boolean

指示是否仅在结果中返回表单属性。

selectOnlyVariableUpdates

否

Boolean

指示是否仅在结果中返回变量更新。

获取历史详情 - 响应码
响应码 描述

200

表示可以查询历史详情。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "26",
      "processInstanceId" : "5",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/5",
      "executionId" : "6",
      "activityInstanceId", "10",
      "taskId" : "6",
      "taskUrl" : "http://localhost:8182/history/historic-task-instances/6",
      "time" : "2013-04-17T10:17:43.902+0000",
      "detailType" : "variableUpdate",
      "revision" : 2,
      "variable" : {
        "name" : "myVariable",
        "variableScope": "global",
        "value" : "test"
      },
      "propertyId": null,
      "propertyValue": null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

查询历史详情

POST query/historic-detail

请求体:

{
  "processInstanceId" : "5",
}

所有支持的 JSON 参数字段与获取历史流程实例集合中的参数完全相同,但作为 JSON 请求体参数而不是 URL 参数传递,以允许更高级的查询并防止请求 URI 过长的错误。

查询历史详情 - 响应码
响应码 描述

200

表示请求成功并已返回历史详情。

400

表示参数格式错误。状态消息包含额外信息。

成功响应体:

{
  "data": [
    {
      "id" : "26",
      "processInstanceId" : "5",
      "processInstanceUrl" : "http://localhost:8182/history/historic-process-instances/5",
      "executionId" : "6",
      "activityInstanceId", "10",
      "taskId" : "6",
      "taskUrl" : "http://localhost:8182/history/historic-task-instances/6",
      "time" : "2013-04-17T10:17:43.902+0000",
      "detailType" : "variableUpdate",
      "revision" : 2,
      "variable" : {
        "name" : "myVariable",
        "variableScope": "global",
        "value" : "test"
      },
      "propertyId" : null,
      "propertyValue" : null
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

获取历史详情变量的二进制数据

GET history/historic-detail/{detailId}/data
获取历史详情变量的二进制数据 - 响应码
响应码 描述

200

表示已找到历史详情实例并已返回请求的变量数据。

404

表示未找到请求的历史详情实例,或历史详情实例没有具有给定名称的变量,或变量没有可用的二进制流。状态消息提供额外信息。

成功响应体:

响应体包含变量的二进制值。当变量类型为二进制时,响应的 content-type 设置为 application/octet-stream,而不考虑变量的内容或请求的 accept-type 头。如果是可序列化的,则使用 application/x-java-serialized-object 作为 content-type。

表单

获取表单数据

GET form/form-data
获取表单数据 - URL 参数
参数 是否必需 值类型 描述

taskId

是(如果没有 processDefinitionId)

String

需要获取表单数据的任务的 ID。

processDefinitionId

是(如果没有 taskId)

String

需要获取开始事件表单数据的流程定义的 ID。

获取表单数据 - 响应码
响应码 描述

200

表示可以查询表单数据。

404

表示未找到表单数据。

成功响应体:

{
  "data": [
    {
      "formKey" : null,
      "deploymentId" : "2",
      "processDefinitionId" : "3",
      "processDefinitionUrl" : "http://localhost:8182/repository/process-definition/3",
      "taskId" : "6",
      "taskUrl" : "http://localhost:8182/runtime/task/6",
      "formProperties" : [
        {
          "id" : "room",
          "name" : "Room",
          "type" : "string",
          "value" : null,
          "readable" : true,
          "writable" : true,
          "required" : true,
          "datePattern" : null,
          "enumValues" : [
            {
              "id" : "normal",
              "name" : "Normal bed"
            },
            {
              "id" : "kingsize",
              "name" : "Kingsize bed"
            },
          ]
        }
      ]
    }
  ],
  "total": 1,
  "start": 0,
  "sort": "name",
  "order": "asc",
  "size": 1
}

提交任务表单数据

POST form/form-data

任务表单的请求体:

{
  "taskId" : "5",
  "properties" : [
    {
      "id" : "room",
      "value" : "normal"
    }
  ]
}

开始事件表单的请求体:

{
  "processDefinitionId" : "5",
  "businessKey" : "myKey",
  "properties" : [
    {
      "id" : "room",
      "value" : "normal"
    }
  ]
}
提交任务表单数据 - 响应码
响应码 描述

200

表示请求成功并已提交表单数据。

400

表示参数格式错误。状态消息包含额外信息。

开始事件表单数据的成功响应体(任务表单数据没有响应):

{
  "id" : "5",
  "url" : "http://localhost:8182/history/historic-process-instances/5",
  "businessKey" : "myKey",
  "suspended": false,
  "processDefinitionId" : "3",
  "processDefinitionUrl" : "http://localhost:8182/repository/process-definition/3",
  "activityId" : "myTask"
}

数据库表

获取表列表

GET management/tables
获取表列表 - 响应码
响应码 描述

200

表示请求成功。

成功响应体:

[
   {
      "name":"ACT_RU_VARIABLE",
      "url":"http://localhost:8182/management/tables/ACT_RU_VARIABLE",
      "count":4528
   },
   {
      "name":"ACT_RU_EVENT_SUBSCR",
      "url":"http://localhost:8182/management/tables/ACT_RU_EVENT_SUBSCR",
      "count":3
   }
]

获取单个表

GET management/tables/{tableName}
获取单个表 - URL 参数
参数 是否必需 值类型 描述

tableName

是

String

要获取的表的名称。

成功响应体:

{
      "name":"ACT_RE_PROCDEF",
      "url":"http://localhost:8182/management/tables/ACT_RE_PROCDEF",
      "count":60
}
获取单个表 - 响应码
响应码 描述

200

表示表存在并已返回表计数。

404

表示请求的表不存在。

获取单个表的列信息

GET management/tables/{tableName}/columns
获取单个表的列信息 - URL 参数
参数 是否必需 值类型 描述

tableName

是

String

要获取的表的名称。

成功响应体:

{
   "tableName":"ACT_RU_VARIABLE",
   "columnNames":[
      "ID_",
      "REV_",
      "TYPE_",
      "NAME_"


   ],
   "columnTypes":[
      "VARCHAR",
      "INTEGER",
      "VARCHAR",
      "VARCHAR"


   ]
}
获取单个表的列信息 - 响应码
响应码 描述

200

表示表存在并已返回表列信息。

404

表示请求的表不存在。

获取单个表的行数据

GET management/tables/{tableName}/data
获取单个表的行数据 - URL 参数
参数 是否必需 值类型 描述

tableName

是

String

要获取的表的名称。

获取单个表的行数据 - URL 查询参数
参数 是否必需 值类型 描述

start

否

Integer

要获取的第一行的索引。默认为 0。

size

否

Integer

要获取的行数,从 start 开始。默认为 10。

orderAscendingColumn

否

String

用于对结果行进行升序排序的列名。

orderDescendingColumn

否

String

用于对结果行进行降序排序的列名。

成功响应体:

{
  "total":3,
   "start":0,
   "sort":null,
   "order":null,
   "size":3,

   "data":[
      {
         "TASK_ID_":"2",
         "NAME_":"var1",
         "REV_":1,
         "TEXT_":"123",
         "LONG_":123,
         "ID_":"3",
         "TYPE_":"integer"
      }



   ]

}
获取单个表的行数据 - 响应码
响应码 描述

200

表示表存在并已返回表行数据。

404

表示请求的表不存在。

引擎

获取引擎属性

GET management/properties

返回引擎内部使用的属性的只读视图。

成功响应体:

{
   "next.dbid":"101",
   "schema.history":"create(5.15)",
   "schema.version":"5.15"
}
获取引擎属性 - 响应码
响应码 描述

200

表示已返回属性。

获取引擎信息

GET management/engine

返回此 REST 服务中使用的引擎的只读视图。

成功响应体:

{
   "name":"default",
   "version":"5.15",
   "resourceUrl":"file://flowable/flowable.cfg.xml",
   "exception":null
}
获取引擎信息 - 响应码
响应码 描述

200

表示已返回引擎信息。

运行时

接收信号事件

POST runtime/signals

通知引擎已收到信号事件,该事件未明确关联到特定执行。

请求体 JSON:

{
  "signalName": "My Signal",
  "tenantId" : "execute",
  "async": true,
  "variables": [
      {"name": "testVar", "value": "This is a string"}
  ]
}
接收信号事件 - JSON 请求体参数
参数 描述 是否必需

signalName

信号的名称

是

tenantId

应处理信号事件的租户的 ID

否

async

如果为 true,信号处理将异步进行。返回码将为 202 - Accepted,表示请求已接受但尚未执行。如果为 false,信号处理将立即完成,结果(200 - OK)仅在成功完成后返回。如果省略则默认为 false。

否

variables

用作与信号一起传递的有效负载的变量数组(采用通用变量格式)。当 async 设置为 true 时不能使用,这将导致错误。

否

成功响应体:

接收信号事件 - 响应码
响应码 描述

200

表示信号已处理且未发生错误。

202

表示信号处理已作为作业排队,准备执行。

400

信号未处理。缺少信号名称或变量与 async 一起使用(这是不允许的)。响应体包含有关错误的额外信息。

作业

获取单个作业

GET management/jobs/{jobId}
获取单个作业 - URL 参数
参数 是否必需 值类型 描述

jobId

是

String

要获取的作业的 ID。

成功响应体:

{
   "id":"8",
   "url":"http://localhost:8182/management/jobs/8",
   "processInstanceId":"5",
   "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
   "processDefinitionId":"timerProcess:1:4",
   "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/timerProcess%3A1%3A4",
   "executionId":"7",
   "executionUrl":"http://localhost:8182/runtime/executions/7",
   "retries":3,
   "exceptionMessage":null,
   "dueDate":"2013-06-04T22:05:05.474+0000",
   "tenantId":null
}
获取单个作业 - 响应码
响应码 描述

200

表示作业存在并已返回。

404

表示请求的作业不存在。

删除作业

DELETE management/jobs/{jobId}
删除作业 - URL 参数
参数 是否必需 值类型 描述

jobId

是

String

要删除的作业的 ID。

删除作业 - 响应码
响应码 描述

204

表示已找到作业并已删除。响应体特意留空。

404

表示请求的作业不存在。

执行单个作业

POST management/jobs/{jobId}

请求体 JSON:

{
  "action" : "execute"
}
执行单个作业 - JSON 请求体参数
参数 描述 是否必需

action

要执行的操作。仅支持 execute。

是

执行单个作业 - 响应码
响应码 描述

204

表示作业已执行。响应体特意留空。

404

表示未找到请求的作业。

500

表示执行作业时发生异常。状态描述包含有关错误的额外详细信息。如果需要,可以稍后获取完整的错误堆栈跟踪。

获取作业的异常堆栈跟踪

GET management/jobs/{jobId}/exception-stacktrace
获取作业的异常堆栈跟踪 - URL 参数
参数 描述 是否必需

jobId

要获取堆栈跟踪的作业的 ID。

是

获取作业的异常堆栈跟踪 - 响应码
响应码 描述

200

表示已找到请求的作业并已返回堆栈跟踪。响应包含原始堆栈跟踪,且 Content-type 始终为 text/plain。

404

表示未找到请求的作业,或作业没有异常堆栈跟踪。状态描述包含有关错误的额外信息。

获取作业列表

GET management/jobs
获取作业列表 - URL 查询参数
参数 描述 类型

id

仅返回具有给定 ID 的作业

String

processInstanceId

仅返回属于具有给定 ID 的流程的作业

String

executionId

仅返回属于具有给定 ID 的执行的作业

String

processDefinitionId

仅返回具有给定流程定义 ID 的作业

String

withRetriesLeft

如果为 true,仅返回还有重试次数的作业。如果为 false,则忽略此参数。

Boolean

executable

如果为 true,仅返回可执行的作业。如果为 false,则忽略此参数。

Boolean

timersOnly

如果为 true,仅返回定时器类型的作业。如果为 false,则忽略此参数。不能与 'messagesOnly' 一起使用。

Boolean

messagesOnly

如果为 true,仅返回消息类型的作业。如果为 false,则忽略此参数。不能与 'timersOnly' 一起使用。

Boolean

withException

如果为 true,仅返回执行时发生异常的作业。如果为 false,则忽略此参数。

Boolean

dueBefore

仅返回在给定日期之前到期执行的作业。没有到期日期的作业永远不会使用此参数返回。

Date

dueAfter

仅返回在给定日期之后到期执行的作业。没有到期日期的作业永远不会使用此参数返回。

Date

exceptionMessage

仅返回具有给定异常消息的作业

String

tenantId

仅返回具有给定租户 ID 的作业。

String

tenantIdLike

仅返回租户 ID 与给定值相似的作业。

String

withoutTenantId

如果为 true,仅返回未设置租户 ID 的作业。如果为 false,则忽略此参数。

Boolean

withoutScopeType

如果为 true,仅返回未设置作用域类型的作业。如果为 false,则忽略此参数。

Boolean

sort

用于对结果排序的字段,应为 id、dueDate、executionId、processInstanceId、retries 或 tenantId 之一。

String

成功响应体:

{
   "data":[
      {
         "id":"13",
         "url":"http://localhost:8182/management/jobs/13",
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "processDefinitionId":"timerProcess:1:4",
         "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/timerProcess%3A1%3A4",
         "executionId":"12",
         "executionUrl":"http://localhost:8182/runtime/executions/12",
         "retries":0,
         "exceptionMessage":"Can't find scripting engine for 'unexistinglanguage'",
         "dueDate":"2013-06-07T10:00:24.653+0000",
         "tenantId":null
      }



   ],
   "total":2,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":2
}
获取作业列表 - 响应码
响应码 描述

200

表示已返回请求的作业。

400

表示在 URL 查询参数中使用了非法值,或同时使用了 'messagesOnly' 和 'timersOnly' 参数。状态描述包含有关错误的额外详细信息。

获取单个死信作业

GET management/deadletter-jobs/{jobId}
获取单个死信作业 - URL 参数
参数 是否必需 值类型 描述

jobId

是

String

要获取的死信作业的 ID。

成功响应体:

{
   "id":"8",
   "url":"http://localhost:8182/management/jobs/8",
   "processInstanceId":"5",
   "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
   "processDefinitionId":"timerProcess:1:4",
   "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/timerProcess%3A1%3A4",
   "executionId":"7",
   "executionUrl":"http://localhost:8182/runtime/executions/7",
   "retries":0,
   "exceptionMessage":"Can't find scripting engine for 'unexistinglanguage'",
   "dueDate":"2013-06-04T22:05:05.474+0000",
   "tenantId":null
}
获取单个死信作业 - 响应码
响应码 描述

200

表示死信作业存在并已返回。

404

表示请求的死信作业不存在。

删除死信作业

DELETE management/deadletter-jobs/{jobId}
删除死信作业 - URL 参数
参数 是否必需 值类型 描述

jobId

是

String

要删除的死信作业的 ID。

删除死信作业 - 响应码
响应码 描述

204

表示已找到死信作业并已删除。响应体特意留空。

404

表示请求的死信作业不存在。

恢复并执行死信作业

POST management/deadletter-jobs/{jobId}

请求体 JSON:

{
  "action" : "move"
}
恢复并执行死信作业 - JSON 请求体参数
参数 描述 是否必需

action

要执行的操作。仅支持 execute。

是

恢复并执行死信作业 - 响应码
响应码 描述

204

表示死信作业已执行。响应体特意留空。

404

表示未找到请求的死信作业。

500

表示执行死信作业时发生异常。状态描述包含有关错误的额外详细信息。如果需要,可以稍后获取完整的错误堆栈跟踪。

获取死信作业的异常堆栈跟踪

GET management/deadletter-jobs/{jobId}/exception-stacktrace
获取死信作业的异常堆栈跟踪 - URL 参数
参数 描述 是否必需

jobId

要获取堆栈跟踪的死信作业的 ID。

是

获取死信作业的异常堆栈跟踪 - 响应码
响应码 描述

200

表示已找到请求的死信作业并已返回堆栈跟踪。响应包含原始堆栈跟踪,且 Content-type 始终为 text/plain。

404

表示未找到请求的死信作业,或作业没有异常堆栈跟踪。状态描述包含有关错误的额外信息。

获取死信作业列表

GET management/deadletter-jobs
获取死信作业列表 - URL 查询参数
参数 描述 类型

id

仅返回具有给定 ID 的作业

String

processInstanceId

仅返回属于具有给定 ID 的流程的作业

String

executionId

仅返回属于具有给定 ID 的执行的作业

String

processDefinitionId

仅返回具有给定流程定义 ID 的作业

String

executable

如果为 true,仅返回可执行的作业。如果为 false,则忽略此参数。

Boolean

timersOnly

如果为 true,仅返回定时器类型的作业。如果为 false,则忽略此参数。不能与 'messagesOnly' 一起使用。

Boolean

messagesOnly

如果为 true,仅返回消息类型的作业。如果为 false,则忽略此参数。不能与 'timersOnly' 一起使用。

Boolean

withException

如果为 true,仅返回执行时发生异常的作业。如果为 false,则忽略此参数。

Boolean

dueBefore

仅返回在给定日期之前到期执行的作业。没有到期日期的作业永远不会使用此参数返回。

Date

dueAfter

仅返回在给定日期之后到期执行的作业。没有到期日期的作业永远不会使用此参数返回。

Date

withException

如果为 true,仅返回执行时发生异常的作业。如果为 false,则忽略此参数。

Boolean

tenantId

String

仅返回具有异常的作业。

tenantIdLike

String

仅返回租户 ID 与给定值相似的作业。

withoutTenantId

Boolean

如果为 true,仅返回未设置租户 ID 的作业。如果为 false,则忽略此参数。

locked

Boolean

如果为 true,仅返回已锁定的作业。如果为 false,则忽略此参数。

unlocked

Boolean

如果为 true,仅返回未锁定的作业。如果为 false,则忽略此参数。

withoutScopeType

Boolean

如果为 true,仅返回未设置作用域类型的作业。如果为 false,则忽略此参数。

sort

用于对结果排序的字段,应为 id、dueDate、executionId、processInstanceId、retries 或 tenantId 之一。

String

成功响应体:

{
   "data":[
      {
         "id":"13",
         "url":"http://localhost:8182/management/jobs/13",
         "processInstanceId":"5",
         "processInstanceUrl":"http://localhost:8182/runtime/process-instances/5",
         "processDefinitionId":"timerProcess:1:4",
         "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/timerProcess%3A1%3A4",
         "executionId":"12",
         "executionUrl":"http://localhost:8182/runtime/executions/12",
         "retries":0,
         "withException":"Can't find scripting engine for 'unexistinglanguage'",
         "dueDate":"2013-06-07T10:00:24.653+0000",
         "createTime":"2013-06-06T08:08:24.007+0000"
         "tenantId":null
      }
   ],
   "total":2,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":2
}
获取死信作业列表 - 响应码
响应码 描述

200

表示已返回请求的作业。

400

表示在 URL 查询参数中使用了非法值,或同时使用了 'messagesOnly' 和 'timersOnly' 参数。状态描述包含有关错误的额外详细信息。

用户

获取单个用户

GET identity/users/{userId}
获取单个用户 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要获取的用户的 ID。

成功响应体:

{
   "id":"testuser",
   "firstName":"Fred",
   "lastName":"McDonald",
   "url":"http://localhost:8182/identity/users/testuser",
   "email":"[email protected]"
}
获取单个用户 - 响应码
响应码 描述

200

表示用户存在并已返回。

404

表示请求的用户不存在。

获取用户列表

GET identity/users
获取用户列表 - URL 查询参数
参数 描述 类型

id

仅返回具有给定 ID 的用户

String

firstName

仅返回具有给定名字的用户

String

lastName

仅返回具有给定姓氏的用户

String

email

仅返回具有给定电子邮件的用户

String

firstNameLike

仅返回名字与给定值相似的用户。使用 % 作为通配符。

String

lastNameLike

仅返回姓氏与给定值相似的用户。使用 % 作为通配符。

String

emailLike

仅返回电子邮件与给定值相似的用户。使用 % 作为通配符。

String

memberOfGroup

仅返回是给定组成员的用户。

String

potentialStarter

仅返回是给定 ID 的流程定义的潜在启动者的用户。

String

sort

用于对结果排序的字段,应为 id、firstName、lastname 或 email 之一。

String

成功响应体:

{
   "data":[
      {
         "id":"anotherUser",
         "firstName":"Tijs",
         "lastName":"Barrez",
         "url":"http://localhost:8182/identity/users/anotherUser",
         "email":"[email protected]"
      },
      {
         "id":"kermit",
         "firstName":"Kermit",
         "lastName":"the Frog",
         "url":"http://localhost:8182/identity/users/kermit",
         "email":null
      },
      {
         "id":"testuser",
         "firstName":"Fred",
         "lastName":"McDonald",
         "url":"http://localhost:8182/identity/users/testuser",
         "email":"[email protected]"
      }
   ],
   "total":3,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":3
}
获取用户列表 - 响应码
响应码 描述

200

表示已返回请求的用户。

更新用户

PUT identity/users/{userId}

请求体 JSON:

{
  "firstName":"Tijs",
  "lastName":"Barrez", 
  "email":"[email protected]",
  "password":"pass123"
}

所有请求值都是可选的。例如,你可以在请求体 JSON 对象中只包含 'firstName' 属性,只更新用户的名字,而不影响其他字段。当显式包含某个属性并将其设置为 null 时,用户的该值将被更新为 null。例如:{"firstName" : null} 将清除用户的名字。

更新用户 - 响应码
响应码 描述

200

表示用户已更新。

404

表示未找到请求的用户。

409

表示请求的用户被同时更新。

成功响应体: 参见 identity/users/{userId} 的响应。

创建用户

POST identity/users

请求体 JSON:

{
  "id":"tijs",
  "firstName":"Tijs",
  "lastName":"Barrez",
  "email":"[email protected]",
  "password":"pass123"
}
创建用户 - 响应码
响应码 描述

201

表示用户已创建。

400

表示请求中缺少用户的 ID。

成功响应体: 参见 identity/users/{userId} 的响应。

删除用户

DELETE identity/users/{userId}
删除用户 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要删除的用户的 ID。

删除用户 - 响应码
响应码 描述

204

表示已找到用户并已删除。响应体特意留空。

404

表示未找到请求的用户。

获取用户头像

GET identity/users/{userId}/picture
获取用户头像 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要获取头像的用户的 ID。

响应体:

响应体包含原始图片数据,表示用户的头像。响应的 Content-type 对应于创建图片时设置的 mimeType。

获取用户头像 - 响应码
响应码 描述

200

表示已找到用户且用户有头像,头像已在响应体中返回。

404

表示未找到请求的用户,或用户没有头像。状态描述包含有关错误的额外信息。

更新用户头像

GET identity/users/{userId}/picture
更新用户头像 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要获取头像的用户的 ID。

请求体:

请求类型应为 multipart/form-data。应包含一个带有图片二进制值的单个文件部分。此外,还可以包含以下额外的表单字段:

  • mimeType: 上传图片的可选 mime 类型。如果省略,则使用默认的 image/jpeg 作为图片的 mime 类型。
更新用户头像 - 响应码
响应码 描述

200

表示已找到用户且头像已更新。响应体特意留空。

404

表示未找到请求的用户。

列出用户信息

PUT identity/users/{userId}/info
列出用户信息 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要获取信息的用户的 ID。

响应体:

[
   {
      "key":"key1",
      "url":"http://localhost:8182/identity/users/testuser/info/key1"
   },
   {
      "key":"key2",
      "url":"http://localhost:8182/identity/users/testuser/info/key2"
   }
]
列出用户信息 - 响应码
响应码 描述

200

表示已找到用户并已返回信息列表(键和 URL)。

404

表示未找到请求的用户。

获取用户信息

GET identity/users/{userId}/info/{key}
获取用户信息 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要获取信息的用户的 ID。

key

是

String

要获取的用户信息的键。

成功响应体:

{
   "key":"key1",
   "value":"Value 1",
   "url":"http://localhost:8182/identity/users/testuser/info/key1"
}
获取用户信息 - 响应码
响应码 描述

200

表示已找到用户且用户具有给定键的信息。

404

表示未找到请求的用户,或用户没有给定键的信息。状态描述包含有关错误的额外信息。

更新用户信息

PUT identity/users/{userId}/info/{key}
更新用户信息 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要更新信息的用户的 ID。

key

是

String

要更新的用户信息的键。

请求体:

{
   "value":"更新后的值"
}

响应体:

{
   "key":"key1",
   "value":"更新后的值",
   "url":"http://localhost:8182/identity/users/testuser/info/key1"
}
更新用户信息 - 响应码
响应码 描述

200

表示已找到用户且信息已更新。

400

表示请求体中缺少值。

404

表示未找到请求的用户,或用户没有具有给定键的信息。状态描述包含有关错误的额外信息。

创建新的用户信息条目

POST identity/users/{userId}/info
创建新的用户信息条目 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要创建信息的用户的 ID。

请求体:

{
   "key":"key1",
   "value":"The value"
}

响应体:

{
   "key":"key1",
   "value":"The value",
   "url":"http://localhost:8182/identity/users/testuser/info/key1"
}
创建新的用户信息条目 - 响应码
响应码 描述

201

表示已找到用户且已创建信息。

400

表示请求体中缺少键或值。状态描述包含有关错误的额外信息。

404

表示未找到请求的用户。

409

表示用户已存在具有给定键的信息条目,需要更新资源实例(PUT)。

删除用户信息

DELETE identity/users/{userId}/info/{key}
删除用户信息 - URL 参数
参数 是否必需 值类型 描述

userId

是

String

要删除信息的用户的 ID。

key

是

String

要删除的用户信息的键。

删除用户信息 - 响应码
响应码 描述

204

表示已找到用户且已删除给定键的信息。响应体特意留空。

404

表示未找到请求的用户,或用户没有具有给定键的信息。状态描述包含有关错误的额外信息。

用户组

获取单个用户组

GET identity/groups/{groupId}
获取单个用户组 - URL 参数
参数 是否必需 值类型 描述

groupId

是

String

要获取的用户组的 ID。

成功响应体:

{
   "id":"testgroup",
   "url":"http://localhost:8182/identity/groups/testgroup",
   "name":"Test group",
   "type":"Test type"
}
获取单个用户组 - 响应码
响应码 描述

200

表示用户组存在并已返回。

404

表示请求的用户组不存在。

获取用户组列表

GET identity/groups
获取用户组列表 - URL 查询参数
参数 描述 类型

id

仅返回具有给定 ID 的用户组

String

name

仅返回具有给定名称的用户组

String

type

仅返回具有给定类型的用户组

String

nameLike

仅返回名称与给定值相似的用户组。使用 % 作为通配符。

String

member

仅返回具有给定用户名成员的用户组。

String

potentialStarter

仅返回其成员是给定 ID 的流程定义的潜在启动者的用户组。

String

sort

用于对结果排序的字段,应为 id、name 或 type 之一。

String

成功响应体:

{
   "data":[
     {
        "id":"testgroup",
        "url":"http://localhost:8182/identity/groups/testgroup",
        "name":"Test group",
        "type":"Test type"
     }
   ],
   "total":3,
   "start":0,
   "sort":"id",
   "order":"asc",
   "size":3
}
获取用户组列表 - 响应码
响应码 描述

200

表示已返回请求的用户组。

更新用户组

PUT identity/groups/{groupId}

请求体 JSON:

{
   "name":"Test group",
   "type":"Test type"
}

所有请求值都是可选的。例如,你可以在请求体 JSON 对象中只包含 'name' 属性,只更新用户组的名称,而不影响其他字段。当显式包含某个属性并将其设置为 null 时,用户组的该值将被更新为 null。

更新用户组 - 响应码
响应码 描述

200

表示用户组已更新。

404

表示未找到请求的用户组。

409

表示请求的用户组被同时更新。

成功响应体: 参见 identity/groups/{groupId} 的响应。

创建用户组

POST identity/groups

请求体 JSON:

{
   "id":"testgroup",
   "name":"Test group",
   "type":"Test type"
}
创建用户组 - 响应码
响应码 描述

201

表示用户组已创建。

400

表示请求中缺少用户组的 ID。

成功响应体: 参见 identity/groups/{groupId} 的响应。

删除用户组

DELETE identity/groups/{groupId}
删除用户组 - URL 参数
参数 是否必需 值类型 描述

groupId

是

String

要删除的用户组的 ID。

删除用户组 - 响应码
响应码 描述

204

表示已找到用户组并已删除。响应体特意留空。

404

表示未找到请求的用户组。

获取用户组中的成员

不允许对 identity/groups/members 使用 GET。使用 identity/users?memberOfGroup=sales URL 来获取属于特定用户组的所有用户。

向用户组添加成员

POST identity/groups/{groupId}/members
向用户组添加成员 - URL 参数
参数 是否必需 值类型 描述

groupId

是

String

要添加成员的用户组的 ID。

请求体 JSON:

{
   "userId":"kermit"
}
向用户组添加成员 - 响应码
响应码 描述

201

表示已找到用户组并已添加成员。

404

表示请求体中未包含用户 ID。

404

表示未找到请求的用户组。

409

表示请求的用户已经是该用户组的成员。

响应体:

{
   "userId":"kermit",
   "groupId":"sales",
    "url":"http://localhost:8182/identity/groups/sales/members/kermit"
}

从用户组中删除成员

DELETE identity/groups/{groupId}/members/{userId}
从用户组中删除成员 - URL 参数
参数 是否必需 值类型 描述

groupId

是

String

要删除成员的用户组的 ID。

userId

是

String

要删除的用户的 ID。

从用户组中删除成员 - 响应码
响应码 描述

204

表示已找到用户组且成员已删除。响应体特意留空。

404

表示未找到请求的用户组,或该用户不是该组的成员。状态描述包含有关错误的额外信息。

响应体:

{
   "userId":"kermit",
   "groupId":"sales",
    "url":"http://localhost:8182/identity/groups/sales/members/kermit"
}
← 身份管理Next →
  • Flowable REST 基本原则
    • 安装和认证
    • 配置
    • 在 Tomcat 中使用
    • HTTP 方法和返回码
    • 错误响应体
    • 请求参数
  • 部署
    • 部署列表
    • 获取部署
    • 创建新部署
    • 删除部署
    • 列出部署中的资源
    • 获取部署资源
    • 获取部署资源内容
  • 流程定义
    • 流程定义列表
    • 获取流程定义
    • 更新流程定义的类别
    • 获取流程定义资源内容
    • 获取流程定义的 BPMN 模型
    • 挂起流程定义
    • 激活流程定义
    • 获取流程定义的所有候选启动者
    • 为流程定义添加候选启动者
    • 从流程定义中删除候选启动者
    • 获取流程定义的候选启动者
  • 模型
    • 获取模型列表
    • 获取模型
    • 更新模型
    • 创建模型
    • 删除模型
    • 获取模型的编辑器源码
    • 设置模型的编辑器源码
    • 获取模型的额外编辑器源码
    • 设置模型的额外编辑器源码
  • 流程实例
    • 获取流程实例
    • 删除流程实例
    • 激活或挂起流程实例
    • 启动流程实例
    • 获取流程实例列表
    • 查询流程实例
    • 获取流程实例的图表
    • 获取流程实例的相关人员
    • 为流程实例添加相关用户
    • 从流程实例中移除相关用户
    • 获取流程实例的变量列表
    • 获取流程实例的变量
    • 在流程实例上创建(或更新)变量
    • 更新流程实例的单个变量
    • 在流程实例上创建新的二进制变量
    • 更新流程实例上的现有二进制变量
  • 执行
    • 获取执行
    • 在执行上执行操作
    • 获取执行中的活动活动
    • 执行列表
    • 查询执行
    • 获取执行的变量列表
    • 获取执行的变量
    • 在执行上创建(或更新)变量
    • 更新执行的变量
    • 在执行上创建新的二进制变量
    • 更新流程实例中的现有二进制变量
  • 任务
    • 获取任务
    • 任务列表
    • 查询任务
    • 更新任务
    • 任务操作
    • 删除任务
    • 获取任务的所有变量
    • 获取任务的变量
    • 获取变量的二进制数据
    • 在任务上创建新变量
    • 在任务上创建新的二进制变量
    • 更新任务上的现有变量
    • 更新任务上的二进制变量
    • 删除任务上的变量
    • 删除任务上的所有本地变量
    • 获取任务的所有身份链接
    • 获取任务的用户组或用户身份链接
    • 获取任务的单个身份链接
    • 在任务上创建身份链接
    • 删除任务上的身份链接
    • 在任务上创建新评论
    • 获取任务的所有评论
    • 获取任务的评论
    • 删除任务上的评论
    • 获取任务的所有事件
    • 获取任务的事件
    • 在任务上创建包含外部资源链接的新附件
    • 在任务上创建带附件文件的新附件
    • 获取任务的所有附件
    • 获取任务的附件
    • 获取附件的内容
    • 删除任务上的附件
  • 历史
    • 获取历史流程实例
    • 获取历史流程实例列表
    • 查询历史流程实例
    • 删除历史流程实例
    • 获取历史流程实例的身份链接
    • 获取历史流程实例变量的二进制数据
    • 在历史流程实例上创建新评论
    • 获取历史流程实例的所有评论
    • 获取历史流程实例的评论
    • 删除历史流程实例的评论
    • 获取单个历史任务实例
    • 获取历史任务实例
    • 查询历史任务实例
    • 删除历史任务实例
    • 获取历史任务实例的身份链接
    • 获取历史任务实例变量的二进制数据
    • 获取历史活动实例
    • 查询历史活动实例
    • 获取历史变量实例列表
    • 查询历史变量实例
    • 获取历史任务实例变量的二进制数据
    • 获取历史详情
    • 查询历史详情
    • 获取历史详情变量的二进制数据
  • 表单
    • 获取表单数据
    • 提交任务表单数据
  • 数据库表
    • 获取表列表
    • 获取单个表
    • 获取单个表的列信息
    • 获取单个表的行数据
  • 引擎
    • 获取引擎属性
    • 获取引擎信息
  • 运行时
    • 接收信号事件
  • 作业
    • 获取单个作业
    • 删除作业
    • 执行单个作业
    • 获取作业的异常堆栈跟踪
    • 获取作业列表
    • 获取单个死信作业
    • 删除死信作业
    • 恢复并执行死信作业
    • 获取死信作业的异常堆栈跟踪
    • 获取死信作业列表
  • 用户
    • 获取单个用户
    • 获取用户列表
    • 更新用户
    • 创建用户
    • 删除用户
    • 获取用户头像
    • 更新用户头像
    • 列出用户信息
    • 获取用户信息
    • 更新用户信息
    • 创建新的用户信息条目
    • 删除用户信息
  • 用户组
    • 获取单个用户组
    • 获取用户组列表
    • 更新用户组
    • 创建用户组
    • 删除用户组
    • 获取用户组中的成员
    • 向用户组添加成员
    • 从用户组中删除成员
Flowable 中文文档
文档
指南Java文档
法律
免责声明政策开源协议
联系方式
邮箱: [email protected]
版权 © 2025 Flowable AG. 中文文档基于 Apache License 2.0 协议翻译