PowerApps调用Power Automate流返回布尔值而非预期JSON问题
解决PowerApps调用Power Automate流返回布尔值的问题
核心问题原因
Power Automate的Response动作如果没有明确定义JSON架构,PowerApps会默认把流的返回值识别为布尔型(仅标识流执行成功/失败),而非实际返回的JSON数据。
修复步骤
1. 给Power Automate的Response动作添加JSON架构
- 打开你的Power Automate流,找到Response动作
- 点击生成架构按钮,把测试流时得到的预期JSON数据粘贴进去,系统会自动生成对应架构
- 如果手动编写架构,要保证和返回的JSON结构匹配,示例如下(根据你的实际数据调整):
{ "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" } } } - 保存流并重新发布
2. 调整PowerApps中的调用代码
- 流重新发布后,在PowerApps里重新添加该流的连接(刷新连接)
- 修改调用代码,先接收流返回的JSON对象,再按需转成集合:
要是流返回的是数组类型,也可以直接写:Set(myVar, myFlow.Run()); // 如果返回的是数组,再转成集合 ClearCollect(myCollection, myVar);ClearCollect(myCollection, myFlow.Run().body);
3. 验证Response动作的配置
- 确认Response的
body参数正确引用了HTTP动作的输出,也就是@outputs('HTTP')?['body'] - 检查Response的状态码设为200,没有额外的格式转换错误
补充说明
- 若HTTP返回的是JSON数组,Response的架构要定义为数组类型,示例:
{ "type": "array", "items": { "type": "object", "properties": { "id": {"type": "integer"}, "name": {"type": "string"} } } } - PowerApps中调用流后,可通过
myVar.属性名直接访问JSON里的字段,比如myVar.name
内容的提问来源于stack exchange,提问作者patrup
相关产品推荐
相关产品推荐

