You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camunda技术问询:能否通过REST API按流程实例变量值查询流程实例?

当然可以!2014年的时候Camunda的REST API确实没提供直接按变量查询流程实例的能力,但现在早已支持标准的实现方式,完全不用再像当年讨论里那样折腾自定义扩展了。

具体实现方法

1. 核心接口:/process-instance查询

Camunda提供了标准的GET/POST /process-instance接口,专门用于筛选流程实例,其中就包含按变量值过滤的能力。

简单查询(URL参数方式)

如果只是单变量的简单匹配,直接通过URL参数传递即可。比如查询变量orderId等于12345的流程实例:

GET /engine-rest/process-instance?variableName=orderId&variableValue=12345&variableOperator=eq

复杂查询(请求体方式)

如果需要多变量组合、特殊操作符或者处理复杂变量类型,推荐用POST请求,通过JSON请求体传递更灵活的查询条件:

POST /engine-rest/process-instance
Content-Type: application/json

{
  "variables": [
    {
      "name": "orderId",
      "operator": "eq",
      "value": "12345"
    },
    {
      "name": "orderAmount",
      "operator": "gt",
      "value": 1000
    }
  ],
  "processDefinitionKey": "order-process" // 可选,限定查询某个流程定义的实例
}

2. 支持的变量操作符

Camunda提供了丰富的操作符来满足不同查询场景:

  • eq:等于(默认值,可省略)
  • neq:不等于
  • gt:大于
  • lt:小于
  • gteq:大于等于
  • lteq:小于等于
  • contains:字符串包含(仅适用于字符串类型变量)
  • like:模糊匹配(用%作为通配符,比如%test%)

3. 额外注意事项

  • 对于对象、列表这类复杂变量类型,可以通过variableType指定变量类型,或者配合valueInfo参数做更精确的匹配。
  • 默认多个变量条件是**逻辑与(AND)**的关系,如果需要逻辑或(OR),可以通过variableConditions参数指定组合规则。
  • 这个标准能力从Camunda 7.4版本开始就已完善支持,目前主流的Camunda版本(7.x全系列、8.x)都完全兼容。

内容的提问来源于stack exchange,提问作者Sergey Shcherbakov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:32:23