如何在Power Apps中点击取消按钮时停止关联的Power Automate审批流?
停止关联Power Automate审批流的实现方案
提前存储流实例ID
在触发审批流的环节(比如项目创建或状态变更时触发流),把Power Automate返回的runId存入SharePoint列表的新增列(例如命名为FlowRunId)。这是后续精准停止对应流实例的核心依据。调用Power Automate管理API终止实例
在应用的取消按钮逻辑中,新增API调用步骤来停止目标流实例:- 构造POST请求,URL格式为:
https://management.azure.com/providers/Microsoft.ProcessSimple/environments/{环境ID}/flows/{流ID}/runs/{实例ID}/cancel?api-version=2016-11-01 - 请求头部需携带授权令牌:通过
AzureAD.GetAccessToken("https://management.azure.com")获取令牌,放入Authorization头,值为Bearer {获取到的令牌} - 请求体传空JSON对象
{}即可
- 构造POST请求,URL格式为:
Power Apps中整合完整取消逻辑
在按钮的OnSelect事件中,将更新SharePoint列和取消流的逻辑合并:// 更新SharePoint状态为"取消" Patch( 你的SharePoint列表名称, 当前选中项目, {状态: "取消"} ); // 获取存储的流实例ID var targetRunId = 当前选中项目.FlowRunId; // 调用API取消流(仅当实例ID存在时执行) If( !IsBlank(targetRunId), Http.Post( "https://management.azure.com/providers/Microsoft.ProcessSimple/environments/你的环境ID/flows/你的流ID/runs/" & targetRunId & "/cancel?api-version=2016-11-01", { Headers: { "Authorization": "Bearer " & AzureAD.GetAccessToken("https://management.azure.com"), "Content-Type": "application/json" }, Body: "{}" } ) )注意替换代码中的占位符(如
你的SharePoint列表名称、你的环境ID、你的流ID)为实际值。权限配置要求
确保应用运行账号拥有对应Power Automate流的参与者或所有者权限,同时具备Azure管理API的访问权限,否则会出现调用失败的情况。
内容的提问来源于stack exchange,提问作者Ashish Kumar
相关产品推荐
相关产品推荐

