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

Power App调用Power Automate Flow数据解析及更新需求求助

问题背景

我每半年给员工发周期性调研,现在用MS Form,打算换成Power App,核心需求:

  • 员工能看、改自己的历史回复
  • 绝对不能让用户碰到底层的SharePoint列表/Excel文件,也看不到别人的回复

已经搭了个拉取数据的Flow,逻辑是:

  1. Power App调用这个Flow(V2版本)
  2. 按用户邮箱筛选SharePoint里的对应列表项
  3. 生成键值对
  4. 转成字符串返回给Power App

现在卡两个点:

  • Power App里没法把返回的字符串拆成对应字段用
  • 还得做第二个Flow,用来接收Power App里用户改的内容,更新到数据源里

一、解决字符串解析问题

最优方案:让Flow直接返回JSON对象(不用折腾字符串)

别返回纯字符串了,改成JSON格式,Power Apps能直接用:

  1. Flow里做完「生成键值对」后,加个「Compose」动作,把键值对转成JSON结构(比如直接写{"问题1":"@{outputs('生成键值对')?['问题1']}","问题2":"@{outputs('生成键值对')?['问题2']}"},或者用json()函数转换)
  2. 把Flow的返回类型设成「JSON对象」(在Flow的响应步骤里选择对应类型)
  3. Power App里调用Flow后,直接用Flow名称.Run(User().Email).返回的对象名拿到数据,然后用.取字段,比如返回结果.调研问题1

要是必须用字符串返回的应急方法

如果Flow已经返回的是类似{"问题1":"答案1","问题2":"答案2"}的字符串,在Power Apps里用ParseJSON()解析:

Set(
    用户历史回复,
    ParseJSON(拉取数据Flow.Run(User().Email).输出字符串)
)

之后取字段的时候,根据类型转一下:文本用Text(用户历史回复.问题1),数字用Value(用户历史回复.问题2),布尔值用Boolean(用户历史回复.问题3)


二、做更新数据的Flow

Flow步骤一步步来

  1. 触发方式:选「Power Apps(V2)」当触发器
  2. 加输入参数:把需要更新的字段都加上,比如必填的「用户邮箱」(用来找要更新的列表项)、「问题1答案」「问题2答案」这些
  3. 筛选要更新的项:加「获取项目」动作,筛选条件写Email eq '@{triggerBody()['用户邮箱']}'(前提是SharePoint列表里存了用户邮箱字段)
  4. 更新列表项:加「更新项目」动作,选对应的SharePoint列表,把列表项ID设成「获取项目」返回的第一个项的ID,然后把每个输入参数对应到列表的字段上
  5. 给Power App回消息:加「响应」动作,返回个成功/失败的状态,比如{"状态":"更新成功"}

Power App里调用更新Flow的写法

在保存按钮的OnSelect里加公式:

更新数据Flow.Run(
    User().Email,
    文本输入框1.Text,
    下拉框1.Selected.Value
    // 其他调研字段按顺序传进去
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:47:08