使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本

可以使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本。以下是实现这一目标的分步指南:

工作流程概述

  1. 触发器: 当 Microsoft Forms 提交新响应时触发。
  2. 操作: 创建一个审批请求。
  3. 条件: 如果审批通过。
  4. 操作: 运行 Python 脚本。

前提条件

  • Microsoft Power Automate 账户: 确保您拥有 Power Automate 的访问权限。
  • Microsoft Forms: 创建一个表单用于收集响应。
  • Azure 账户(用于运行 Python 脚本): 由于 Power Automate 本身无法直接执行 Python 脚本,您需要将脚本托管在例如 Azure Functions 等平台上。
  • Azure Function 应用: 用于托管和运行您的 Python 脚本。
  • 适当的权限: 确保 Power Automate 具有与 Azure Functions 和 Microsoft Forms 交互所需的权限。
  • 分步指南

    1. 在 Azure Functions 中设置您的 Python 脚本

    在与 Power Automate 集成之前,您需要以能够通过 HTTP 请求触发的方式托管您的 Python 脚本。

    a. 创建 Azure Function 应用:

    1. 登录 Azure 门户。
    2. 点击 “创建资源”,搜索 “Function App”
    3. 点击 “创建”,并填写必要的详细信息:
    4. 订阅: 您的 Azure 订阅。
    5. 资源组: 创建一个新的资源组或使用现有的资源组。
    6. Function App 名称: 为您的函数应用选择一个唯一名称。
    7. 运行时堆栈: 选择 Python
    8. 版本: 选择适当的 Python 版本。
    9. 区域: 选择一个靠近您的区域。
    10. 审核并创建 Function App。

    b. 开发您的 Python 函数:

    1. 创建完成后,在 Azure 门户中导航到您的 Function App。
    2. 转到 “函数” > “添加” > “HTTP 触发器”
    3. 为您的函数提供一个名称,并根据您的安全需求将授权级别设置为 “Function”“Anonymous”
    4. 在代码编辑器中输入您的 Python 脚本。确保函数能够接受 HTTP 请求并执行所需的操作。

    示例 Python 函数:

    import logging
    import azure.functions as func
    
    def main(req: func.HttpRequest) -> func.HttpResponse:
        logging.info('Python HTTP trigger function processed a request.')
    
        try:
            # 从请求中提取数据(如果需要)
            req_body = req.get_json()
            # 在此处执行您的 Python 操作
            result = "Python 脚本执行成功。"
            return func.HttpResponse(result, status_code=200)
        except Exception as e:
            logging.error(f"错误: {e}")
            return func.HttpResponse(
                "执行 Python 脚本时出错。",
                status_code=500
            )
    
    1. 保存测试您的函数,确保其按预期工作。
    2. 获取函数 URL:
    3. 点击 “获取函数 URL” 并复制该 URL。您将在 Power Automate 中使用此 URL。

    2. 创建 Power Automate 流程

    现在,在 Power Automate 中设置流程,将 Microsoft Forms、审批和 Azure Functions 集成起来。

    a. 登录 Power Automate:

    1. 访问 Power Automate 并使用您的 Microsoft 账户登录。

    b. 创建一个新的自动化流程:

    1. 在左侧菜单中点击 “创建”
    2. 选择 “自动化云流”
    3. 为您的流程命名,例如 “表单审批和 Python 执行”
    4. 搜索触发器 “当新响应被提交”(来自 Microsoft Forms)并选择它。
    5. 点击 “创建”

    c. 配置触发器:

    1. 表单 ID: 从下拉菜单中选择您要监控的表单。

    d. 获取响应详情:

    1. 点击 “新步骤”
    2. 搜索 “获取响应详情”(来自 Microsoft Forms)并选择它。
    3. 表单 ID: 选择相同的表单。
    4. 响应 ID: 从动态内容中选择 “响应 ID”

    e. 创建审批请求:

    1. 点击 “新步骤”
    2. 搜索 “开始并等待审批” 并选择它。
    3. 审批类型: 根据您的需求选择 “批准/拒绝 – 首个响应者”(或其他类型)。
    4. 标题: 提供一个有意义的标题,例如 “表单提交审批”
    5. 分配给: 输入审批人(或审批人的邮箱地址)。
    6. 详情: 使用动态内容包含来自表单提交的相关详细信息。

    f. 根据审批结果添加条件:

    1. 在审批步骤之后,点击 “新步骤”
    2. 选择 “条件”
    3. 条件: 设置为检查审批结果是否为 “批准”
    4. 值: @equals(outputs('Start_and_wait_for_an_approval')?['body/outcome'], 'Approve')

    g. 如果批准,运行 Python 脚本:

    1. 在条件的 “如果是” 分支中,点击 “添加操作”

    2. 搜索 “HTTP” 并选择 “HTTP” 操作。

    3. 配置 HTTP 操作:

    4. 方法: POST(假设您的 Azure Function 设置为处理 POST 请求)。
    5. URI: 粘贴您之前从 Azure Functions 复制的函数 URL。
    6. 标头: 如果您的函数需要特定的标头(例如 Content-Type),请在此处添加。例如:
    7. 键: Content-Type
    8. 值: application/json
    9. 正文: 包含您希望发送给 Python 脚本的任何数据。您可以使用来自表单响应的动态内容。
    10. 示例正文:

      {
          "responseId": "@{triggerBody()?['responseId']}",
          "formData": @{body('Get_response_details')}
      }
      

      (请根据您的 Python 脚本所需内容调整正文。)

    h. (可选)处理来自 Python 脚本的响应:

    1. 在 HTTP 操作之后,您可以添加其他步骤来处理响应,例如发送确认邮件或更新 SharePoint 列表。

    i. 如果被拒绝,进行相应处理:

    1. 在条件的 “如果否” 分支中,您可以添加如发送拒绝邮件或记录拒绝的信息等操作。

    3. 测试您的流程

    1. 提交响应: 填写并提交您配置的 Microsoft Form。
    2. 审批流程: 确保审批人收到审批请求并做出响应。
    3. 执行 Python 脚本: 审批通过后,验证 Azure Functions 中的 Python 脚本是否被触发并按预期执行。
    4. 监控流程:
    5. 在 Power Automate 中,转到 “我的流程” > 选择您的流程 > “运行历史记录”,以监控每个步骤的执行情况并在必要时进行故障排除。

    4. 其他注意事项

  • 安全性:

  • 如果您的 Azure Function 需要身份验证,确保 Power Automate 能够提供必要的凭证或令牌。
  • 考虑使用 API 密钥或 Azure Active Directory 进行安全访问。
  • 错误处理:

  • 在 Power Automate 和您的 Python 脚本中实施错误处理,以便优雅地管理失败情况。
  • 日志记录和监控:

  • 使用 Azure 的监控工具跟踪 Python 脚本的执行和性能。
  • 利用 Power Automate 的运行历史记录跟踪流程的性能。
  • 可扩展性:

  • 确保您的 Azure Function 应用配置能够处理预期的负载,尤其是在表单提交频繁的情况下。
  • 总结

    通过上述步骤,您可以自动化处理表单提交、启动审批工作流程,并在审批通过后执行 Python 脚本。此集成利用了 Microsoft Power Automate 在工作流程自动化方面的优势,以及 Azure Functions 在执行自定义 Python 代码方面的能力。根据您的具体需求和组织政策调整步骤。

    如果您遇到任何问题或有特定需求,欢迎随时提问以获得进一步的帮助!

    作者:Channing Lewis

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本

    发表回复