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

如何在Azure Logic App中获取触发器JSON数据并发送至ServiceBus?

解决Dynamics365集成Azure ServiceBus的消息内容构造问题

错误原因分析

你用@{base64ToString(triggerBody())}报错的核心原因是:base64ToString函数要求输入是base64编码的字符串,但D365触发器的triggerBody()返回的是JSON对象(而非base64字符串),当触发器未正确返回数据时还会出现null值,自然触发类型不匹配错误。

正确的消息内容构造方法

根据D365触发器的输出结构,选择对应的模板写法:

情况1:triggerBody()直接返回D365记录数据

如果你的D365触发器输出中,triggerBody()本身就是创建/更新的记录JSON对象,直接用对象嵌套构造目标格式:

{"message": @{triggerBody()}}

逻辑应用会自动将嵌套的JSON对象序列化为合法的JSON字符串,作为ServiceBus消息的Content。

情况2:记录数据在triggerBody()的body子节点下

部分D365触发器的输出结构会在外层包一层body节点,此时需要指定子节点路径,同时用?做空值保护避免报错:

{"message": @{triggerBody()?['body']}}

空值兜底处理

如果担心触发器返回空数据导致消息格式异常,可使用coalesce函数设置兜底值(比如空对象):

{"message": @{coalesce(triggerBody()?['body'], {})}}

验证步骤

  1. 保存逻辑应用后,手动在D365中创建或更新一条记录触发逻辑应用。
  2. 进入Azure ServiceBus的队列/主题,查看接收的消息内容,确认格式为{"message": 原始触发数据}的JSON结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:28:22