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

单记录负载Camunda Work flow多call activity子流程实现咨询

Camunda 多Call Activity子流程落地实践

核心设计原则

基于单记录payload的场景,落地多独立子流程调用的核心思路是最小参数传递、上下文隔离、变更统一收敛:

  • 父流程持有全局唯一单记录payload,仅向每个call activity传递该子流程必要的最小参数子集,避免子流程误改全局payload产生脏数据
  • 客户服务、座席服务等独立子流程单独定义processId、独立部署,无需和父流程绑定发布,降低业务模块耦合度
  • 子流程执行完成后仅返回自身业务产生的变更字段,父流程统一合并所有变更到全局单记录payload

客户服务+座席服务场景落地示例

父流程结构

父流程作为调度入口,全局payload初始结构示例:{"orderId":"xxx","customerInfo":{},"agentInfo":{},"serveResult":""},核心节点如下:

  1. 流程启动节点:接收并初始化全局payload
  2. 第一个Call Activity节点:调用客户服务子流程

入参映射配置:仅传递orderId、customerInfo两个字段到子流程,映射为子流程的inputOrderId、inputCustomerInfo变量
出参映射配置:子流程返回的customerVerifyResult、updatedCustomerInfo字段同步映射回父流程对应变量

  1. 网关判断:客户校验通过则进入座席服务调用逻辑,不通过直接跳转结束节点
  2. 第二个Call Activity节点:调用座席服务子流程

入参映射配置:传递orderId、customerVerifyResult、updatedCustomerInfo到子流程
出参映射配置:子流程返回的allocateAgentId、serveRecord同步映射回父流程对应变量

  1. 变量合并节点:将所有子流程返回的变更字段统一合并到全局单记录payload,完成业务数据落库

独立子流程定义

客户服务子流程(独立部署,processId:customer-serve-process)

内部核心节点:客户身份校验→历史服务记录查询→客户需求校验→结束事件,执行完成后返回customerVerifyResult(布尔值,标识是否通过校验)、updatedCustomerInfo(更新后的客户信息)
对应Call Activity配置示例:

<callActivity id="callCustomerProcess" name="调用客户服务子流程" calledElement="customer-serve-process">
  <extensionElements>
    <camunda:in source="orderId" target="inputOrderId" />
    <camunda:in source="customerInfo" target="inputCustomerInfo" />
    <camunda:out source="customerVerifyResult" target="customerVerifyResult" />
    <camunda:out source="updatedCustomerInfo" target="customerInfo" />
  </extensionElements>
</callActivity>

座席服务子流程(独立部署,processId:agent-allocate-process)

内部核心节点:按客户需求匹配座席技能组→空闲座席分配→服务工单生成→结束事件,执行完成后返回allocateAgentId、serveRecord
对应Call Activity配置示例:

<callActivity id="callAgentProcess" name="调用座席服务子流程" calledElement="agent-allocate-process">
  <extensionElements>
    <camunda:in source="orderId" target="inputOrderId" />
    <camunda:in source="customerVerifyResult" target="customerVerifyPass" />
    <camunda:in source="customerInfo" target="customerDetail" />
    <camunda:out source="allocateAgentId" target="agentInfo.agentId" />
    <camunda:out source="serveRecord" target="serveResult" />
  </extensionElements>
</callActivity>

单记录payload场景注意事项

  • 禁止配置全量payload传递给子流程,避免子流程修改不相关字段,提升问题排查效率
  • 若子流程需要异步执行,需配置camunda:async="true",同时父流程需补充子流程执行结果回调逻辑、超时判定逻辑
  • 可在call activity执行前后增加参数校验规则,提前拦截非法入参,避免无效流程执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:03