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

Camunda Http-Connector非200/201状态码创建Incident配置方案咨询

Camunda 无Java开发权限下接口状态码校验自动生成Incident实现方案

方案1:脚本任务内直接抛出异常(最简便,适配现有配置)

你已经为脚本任务开启了Asynchronous Before属性,只需要在原有调用web service的脚本末尾追加状态码校验逻辑,不符合条件时主动抛出异常,Camunda异步作业执行器捕获异常后会自动生成符合要求的Incident,无需额外配置其他节点。
Groovy脚本示例(也可替换为你正在使用的JavaScript等其他脚本语言):

// 原有调用web service的逻辑,此处假设你已拿到响应状态码并存入statusCode变量
// 状态码校验逻辑
if (statusCode != 200 && statusCode != 201) {
    // 自定义异常信息会直接展示在Incident详情中
    throw new RuntimeException("接口调用异常,响应状态码:" + statusCode)
}

方案2:排他网关分支+手动创建Incident(适配需要额外失败分支逻辑的场景)

如果状态码校验失败后需要执行其他处理逻辑(如重试、通知等),可通过流程节点配置实现:

  • 在原有调用web service的脚本任务后新增排他网关,设置两个分支的判断条件:
    • 正常分支:${statusCode == 200 || statusCode == 201},指向后续正常业务节点
    • 异常分支:${statusCode != 200 && statusCode != 201},指向异常处理节点
  • 异常分支新增脚本任务,调用Camunda内置API手动生成Incident,示例脚本:
def runtimeService = execution.getProcessEngineServices().getRuntimeService()
// 自定义Incident类型、关联执行ID、异常描述
runtimeService.createIncident("web_service_failure", execution.getId(), "接口调用失败,状态码:" + statusCode)

注意事项

  • 上述方案依赖的execution内置对象、脚本调用引擎API能力均为Camunda原生提供,无需额外部署Java代码
  • 确保你使用的脚本语言(Groovy/JavaScript等)已在服务端预启用,主流Camunda发行版默认均已启用Groovy、JavaScript支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:27:02