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

如何通过IWorkflowBuilder让Elsa子工作流继承父工作流CorrelationId?

Elsa Workflow 子工作流继承父工作流CorrelationId解决方案

在Elsa Workflow v2.10.2.2中,默认RunWorkflow活动不会自动传递父工作流的CorrelationId给子工作流,需通过显式配置实现继承。

修改父工作流代码

调整MyWorkflow中RunWorkflow活动的配置,从父工作流执行上下文提取CorrelationId并传递给子工作流:

public class MyWorkflow : IWorkflow
{
    public void Build(IWorkflowBuilder builder)
    {
        builder.WorkflowBuilder
            .HttpEndpoint(setup => setup.WithPath("myworkflow"))
            .RunWorkflow<OtherWorkflow>(setup => 
            {
                setup.Mode = RunWorkflowMode.Blocking;
                // 从父工作流上下文获取CorrelationId,传递给子工作流
                setup.CorrelationId = context => context.CorrelationId;
            })
            .Finish();
    }
}

原理说明

通过RunWorkflow活动的setup委托,可直接访问父工作流的执行上下文(context),从中获取已有的CorrelationId并赋值给子工作流的对应属性。子工作流启动时会直接使用该值,而非生成新的标识。

额外提示

如果OtherWorkflow仅作为父工作流的子流程被调用,无需外部HTTP触发,可以移除其HttpEndpoint节点,避免外部调用时生成独立的CorrelationId。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:05:07