Grails5环境下如何通过URL设置Camunda流程实例businessKey
Camunda设置流程实例businessKey的REST接口说明
Camunda原生提供了对应REST接口支持businessKey的设置,分两种使用场景:
1. 创建流程实例时直接设置(推荐)
绝大多数场景下businessKey会在流程实例启动时就和业务数据绑定,直接调用流程实例创建接口时传入参数即可:
- 请求方法:
POST - 接口地址:
{你的Camunda服务地址}/engine-rest/process-instance - 请求示例:
{ "processDefinitionKey": "对应流程的定义Key", "businessKey": "你需要设置的业务主键值(如业务单据ID、订单号)", "variables": {} // 流程启动需要的变量,无需求可传空对象 }
调用成功后返回的流程实例信息里会直接带上你设置的businessKey值。
2. 已创建的流程实例更新businessKey
如果流程实例已经启动完成,需要后续补充/修改businessKey,Camunda 7.12及以上版本提供了专门的更新接口:
- 请求方法:
PUT - 接口地址:
{你的Camunda服务地址}/engine-rest/process-instance/{processInstanceId}/businessKey - 路径参数说明:把
{processInstanceId}替换为你要操作的流程实例ID - 请求示例:
{ "businessKey": "更新后的业务主键值" }
Grails5调用注意事项
因为你是通过URL方式发起调用,直接在Grails5中使用HTTP客户端(比如框架自带的RestBuilder、常用的http-builder依赖)发起对应格式的请求即可,注意两点:
- 请求头必须携带
Content-Type: application/json - 如果Camunda引擎开启了身份鉴权,需要在请求头中携带合法的鉴权凭证(如Basic Auth头、Token头)
注意:同一流程定义下的businessKey存在数据库唯一约束,禁止给同一流程定义下的不同流程实例设置重复的businessKey,否则会触发唯一键冲突报错。
内容的提问来源于stack exchange,提问作者Marcelo Cerqueira
相关产品推荐
相关产品推荐

