Power Automate云流中ChangeType字段始终为空的问题排查
解决Dynamics 365触发流中ChangeType字段为空的问题
你当前使用的@triggerOutputs()?['body/changeType']路径完全错误——Dynamics 365的"当记录被创建或更新"触发器输出里根本不存在changeType这个字段,这就是它始终为空的原因。不需要拆分流,换个取值逻辑就能解决。
两种可靠的解决方法
方法1:读取触发器请求头的操作标识
Dynamics 365的这个触发器会在请求头中携带操作类型标识,直接用以下表达式就能拿到准确的Create或Update值:
"ChangeType": "@triggerOutputs()?['headers/x-ms-trigger-operation']"
方法2:通过记录时间字段判断
如果因环境限制无法读取头字段,也可以对比记录的创建和修改时间来判断操作类型:
"ChangeType": "@if(equals(triggerBody()?['createdon'], triggerBody()?['modifiedon']), 'Create', 'Update')"
注:默认情况下,Dynamics 365创建记录时createdon和modifiedon完全一致,更新记录时modifiedon会被修改,这个逻辑是可靠的。
修改后的完整IaC代码
{ "type": "Http", "inputs": { "uri": "https://something-fancy.azurewebsites.net/api/event/client", "method": "POST", "headers": { "content-type": "application/json" }, "body": { "AccountId": "@triggerOutputs()?['body/accountid']", "ChangeType": "@triggerOutputs()?['headers/x-ms-trigger-operation']", "ModifiedValue": "@triggerOutputs()?['body/_modifiedby_value']" } }, "runAfter": {}, "metadata": { "operationMetadataId": "f5fefacf-3-91a7-7ac05305e1b8" } }
内容的提问来源于stack exchange,提问作者Roelant M
相关产品推荐
相关产品推荐

