使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本
可以使用 Microsoft Power Automate 创建一个自动化工作流程,当 Microsoft Forms 提交新响应时触发,启动审批流程,并在审批通过后运行 Python 脚本。以下是实现这一目标的分步指南:
工作流程概述
- 触发器: 当 Microsoft Forms 提交新响应时触发。
- 操作: 创建一个审批请求。
- 条件: 如果审批通过。
- 操作: 运行 Python 脚本。
前提条件
分步指南
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. 其他注意事项
安全性:
错误处理:
日志记录和监控:
可扩展性:
总结
通过上述步骤,您可以自动化处理表单提交、启动审批工作流程,并在审批通过后执行 Python 脚本。此集成利用了 Microsoft Power Automate 在工作流程自动化方面的优势,以及 Azure Functions 在执行自定义 Python 代码方面的能力。根据您的具体需求和组织政策调整步骤。
如果您遇到任何问题或有特定需求,欢迎随时提问以获得进一步的帮助!
作者:Channing Lewis