Azure Logic Apps调用Dataverse触发器返回500错误:Value cannot be null
解决Dynamics 365触发Azure Logic Apps预览触发器时的500空输入错误
问题场景
- 配置信息:使用Azure Logic Apps预览版触发器**"When a row is added, modified or deleted"**,参数设置如下:
- 环境:Dynamics 365沙箱环境
- 表名:Contacts
- 变更类型:Added
- 范围:Organization
- 逻辑流仅包含将触发数据发布到Servicebus Topic的步骤
- 触发异常:添加新联系人时,触发器步骤抛出500错误,错误详情:
{ "error": { "code": 500, "message": "Value cannot be null.\r\nParameter name: input\r\n at System.Text.RegularExpressions.Regex.Match(String input)", "source": "logic-apis-westeurope.azure-apim.net", "path": "choose[3]\\when[1]\\choose\\when[2]\\choose[3]\\when[1]\\return-response", "policyId": "", "clientRequestId": "947de49b-478b-47cf-9ea4-74459bb607db" } }
排查与解决步骤
- 检查触发器列筛选配置:预览版触发器的列筛选器可能存在正则解析问题。如果配置了仅包含/排除特定列的规则,确保语法无错误;若不需要筛选,直接清空筛选器,保持默认的"所有列"配置。
- 验证连接权限:确认Logic Apps使用的连接账户对Dynamics 365沙箱环境的Contacts表拥有Organization级别的读取权限,必要时重新授权连接,避免令牌过期或权限变更导致数据拉取异常。
- 切换触发器版本:预览版触发器可能存在未修复的bug,尝试改用非预览版的"When a record is created"触发器;若必须使用预览版,可临时将范围改为User级别测试,排查是否为Organization范围下的批量处理逻辑导致空值。
- 排查特殊字段空值:检查新增联系人记录是否包含空值的特殊字段(如富文本、Lookup类型字段),这类字段的空值可能触发触发器内部的正则解析错误。测试创建仅含必填字段的简单联系人,验证是否能正常触发。
- 查看运行历史原始数据:在Logic Apps运行历史中,查看触发器的输入原始数据,确认是否存在空字段或异常JSON结构;若输入为空,进一步排查Dynamics 365的变更通知是否正常发送。
内容的提问来源于stack exchange,提问作者MeanGreen
相关产品推荐
相关产品推荐

