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

携带请求体调用Elsa Workflow 2.11报错,类型转换失败求助

问题分析与解决方案

错误原因

你当前调用工作流时,将memoModel序列化为JSON字符串传入,但工作流中的HttpEndpoint活动期望接收HttpRequestModel类型对象而非字符串,因此触发类型转换异常。

解决方案

1. 直接传入对象(无需序列化)

Elsa支持直接传入对象,无需手动序列化为字符串,框架会自动处理对象的序列化/反序列化逻辑:

var workflow = await _workflowRegistry.FindByNameAsync(workflowDefinitionName, VersionOptions.Latest);
await _workflowDispatcher.DispatchAsync(new ExecuteWorkflowDefinitionRequest(workflow!.Id, Input: new WorkflowInput() { Input = memoModel }), CancellationToken.None);

2. 配置工作流变量接收数据

如果需要在工作流中明确管理传入的数据,可通过Variables配置实现:

  • 在工作流的Variables区域,添加一个与memoModel类型匹配的变量(例如命名为MemoModel)
  • 调度工作流时,将输入值映射到该变量:
    var workflow = await _workflowRegistry.FindByNameAsync(workflowDefinitionName, VersionOptions.Latest);
    var inputDict = new Dictionary<string, object> { { "MemoModel", memoModel } };
    await _workflowDispatcher.DispatchAsync(new ExecuteWorkflowDefinitionRequest(workflow!.Id, Input: new WorkflowInput(inputDict)), CancellationToken.None);
    
  • 后续工作流活动中,可通过Variables.MemoModel访问传入的数据

3. 手动处理字符串反序列化(可选)

如果必须传入字符串格式数据,可在工作流中添加Script活动,用C#脚本将字符串反序列化为目标类型:

using Newtonsoft.Json;
var memoModel = JsonConvert.DeserializeObject<你的MemoModel类型>(Input);
return memoModel;

将脚本输出绑定到后续活动所需的变量即可。


内容的提问来源于stack exchange,提问作者Roman Raj Bajracharya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:32:54