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

如何通过Power Automate定时从SharePoint列表填充MS Form?

用Power Automate实现SharePoint列表自动填充MS Form的方案

一、设置触发规则

  • 固定日期触发:直接用计划触发器(Recurrence),配置你需要的时间,比如每月1号凌晨2点,或者指定某一天的定时执行。
  • 基于列表日期字段触发:用当项目被创建或修改时触发器,再加个条件判断,只处理「目标日期」等于当天的项,判断公式:
    @equals(utcNow('yyyy-MM-dd'), formatDateTime(triggerBody()?['目标日期字段内部名称'], 'yyyy-MM-dd'))

二、拉取SharePoint目标数据

  • 添加「获取项目」(Get items)动作,关联你的SharePoint站点和列表。如果只需要特定日期的项,在「筛选查询」里写条件,比如:
    目标日期字段内部名称 eq '@{utcNow('yyyy-MM-dd')}'
  • 如果是单条精准数据,也可以用「获取项目ID」来直接定位。

三、核心:自动填充MS Form

MS Form没有现成的填充动作,得靠API调用实现,步骤如下:

  1. 先拿表单ID:打开表单编辑页,URL里的formId=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX这串就是表单ID。
  2. 添加「HTTP」动作,配置参数:
    • 方法:POST
    • URI:https://forms.office.com/formapi/api/你的租户域名/forms('表单ID')/responses
    • 授权选「Active Directory OAuth」,资源填https://forms.office.com
    • 请求正文按你的表单字段构造JSON,示例:
      {
        "responses": [
          {
            "questionId": "文本框字段的ID",
            "answer": "@{items('Apply_to_each')?['SharePoint对应文本字段']}"
          },
          {
            "questionId": "下拉框字段的ID",
            "answer": "@{items('Apply_to_each')?['SharePoint对应下拉字段']}"
          }
        ]
      }
      
    • 怎么拿questionId:打开表单预览页按F12,切到「网络」标签,手动提交一次表单,找到提交的POST请求,看请求体里的questionId就行。

四、批量处理多条列表项

如果有多个符合条件的项要处理,加个「应用到每一个」(Apply to each)动作,把「获取项目」的输出作为循环对象,把填充表单的HTTP请求放循环里,每条数据生成一个表单响应。

五、补全错误处理与状态标记

  • 加个错误捕获:用Scope包裹填充动作,设置运行后条件,失败的话发邮件/Teams消息给管理员,带上错误信息和对应列表项ID。
  • 成功后更新SharePoint列表:加「更新项目」动作,把项的状态改成「已提交」,防止重复处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:05:19