使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本
此集成利用了 Microsoft Power Automate 在工作流程自动化方面的优势,以及 Azure Functions 在执行自定义 Python 代码方面的能力。可以使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本。在与 Power Automate
可以使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本。以下是实现这一目标的分步指南:
工作流程概述
- 触发器: 当 Microsoft Forms 提交新响应时触发。
- 操作: 创建一个审批请求。
- 条件: 如果审批通过。
- 操作: 运行 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 应用:
- 登录 Azure 门户。
- 点击 “创建资源”,搜索 “Function App”。
- 点击 “创建”,并填写必要的详细信息:
- 订阅: 您的 Azure 订阅。
- 资源组: 创建一个新的资源组或使用现有的资源组。
- Function App 名称: 为您的函数应用选择一个唯一名称。
- 运行时堆栈: 选择 Python。
- 版本: 选择适当的 Python 版本。
- 区域: 选择一个靠近您的区域。
- 审核并创建 Function App。
b. 开发您的 Python 函数:
- 创建完成后,在 Azure 门户中导航到您的 Function App。
- 转到 “函数” > “添加” > “HTTP 触发器”。
- 为您的函数提供一个名称,并根据您的安全需求将授权级别设置为 “Function” 或 “Anonymous”。
- 在代码编辑器中输入您的 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
)
- 保存并测试您的函数,确保其按预期工作。
- 获取函数 URL:
- 点击 “获取函数 URL” 并复制该 URL。您将在 Power Automate 中使用此 URL。
2. 创建 Power Automate 流程
现在,在 Power Automate 中设置流程,将 Microsoft Forms、审批和 Azure Functions 集成起来。
a. 登录 Power Automate:
- 访问 Power Automate 并使用您的 Microsoft 账户登录。
b. 创建一个新的自动化流程:
- 在左侧菜单中点击 “创建”。
- 选择 “自动化云流”。
- 为您的流程命名,例如 “表单审批和 Python 执行”。
- 搜索触发器 “当新响应被提交”(来自 Microsoft Forms)并选择它。
- 点击 “创建”。
c. 配置触发器:
- 表单 ID: 从下拉菜单中选择您要监控的表单。
d. 获取响应详情:
- 点击 “新步骤”。
- 搜索 “获取响应详情”(来自 Microsoft Forms)并选择它。
- 表单 ID: 选择相同的表单。
- 响应 ID: 从动态内容中选择 “响应 ID”。
e. 创建审批请求:
- 点击 “新步骤”。
- 搜索 “开始并等待审批” 并选择它。
- 审批类型: 根据您的需求选择 “批准/拒绝 – 首个响应者”(或其他类型)。
- 标题: 提供一个有意义的标题,例如 “表单提交审批”。
- 分配给: 输入审批人(或审批人的邮箱地址)。
- 详情: 使用动态内容包含来自表单提交的相关详细信息。
f. 根据审批结果添加条件:
- 在审批步骤之后,点击 “新步骤”。
- 选择 “条件”。
- 条件: 设置为检查审批结果是否为 “批准”。
- 值:
@equals(outputs('Start_and_wait_for_an_approval')?['body/outcome'], 'Approve')
- 值:
g. 如果批准,运行 Python 脚本:
-
在条件的 “如果是” 分支中,点击 “添加操作”。
-
搜索 “HTTP” 并选择 “HTTP” 操作。
-
配置 HTTP 操作:
- 方法:
POST(假设您的 Azure Function 设置为处理 POST 请求)。 - URI: 粘贴您之前从 Azure Functions 复制的函数 URL。
- 标头: 如果您的函数需要特定的标头(例如 Content-Type),请在此处添加。例如:
- 键:
Content-Type - 值:
application/json
- 键:
- 正文: 包含您希望发送给 Python 脚本的任何数据。您可以使用来自表单响应的动态内容。
示例正文:
{ "responseId": "@{triggerBody()?['responseId']}", "formData": @{body('Get_response_details')} }(请根据您的 Python 脚本所需内容调整正文。)
- 方法:
h. (可选)处理来自 Python 脚本的响应:
- 在 HTTP 操作之后,您可以添加其他步骤来处理响应,例如发送确认邮件或更新 SharePoint 列表。
i. 如果被拒绝,进行相应处理:
- 在条件的 “如果否” 分支中,您可以添加如发送拒绝邮件或记录拒绝的信息等操作。
3. 测试您的流程
- 提交响应: 填写并提交您配置的 Microsoft Form。
- 审批流程: 确保审批人收到审批请求并做出响应。
- 执行 Python 脚本: 审批通过后,验证 Azure Functions 中的 Python 脚本是否被触发并按预期执行。
- 监控流程:
- 在 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 代码方面的能力。根据您的具体需求和组织政策调整步骤。
如果您遇到任何问题或有特定需求,欢迎随时提问以获得进一步的帮助!
更多推荐




所有评论(0)