我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复463或者20220306可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!
做项目的时候如果flow很多,可能希望监控flow的运行情况,官方的统计分析 https://admin.powerplatform.microsoft.com/analytics/flow 有些汇总信息,Errors显示的是最近的报错时间,flow显示的也是id不是flow的名字等。
那我们可以自己做点监控吗?安排用户定期去看flow的运行状况有点low,我这里介绍一种通过flow获取flow的运行记录的方法,主要来自 Dharani 的文章 HOW TO CREATE CUSTOM CONNECTOR TO GET THE FLOW RUN HISTORY ,写得更加详细,方便各位参考。
首先登录到 https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade ,点击 New registration来注册一个App。
输入App名字后点击 Register按钮。
首先为这个App registration设置 API permission,点击 Add a permission,然后选择 Flow Service
再在新的窗口选中需要的权限,要至少包括这两个权限:Activity.Read.All 和Flows.Read.All 。
当然Type of permission选择 Delegated permissions,也只有这个可选。
最好再点击 Grant admin consent for Contoso 按钮,再弹出提示中点击 Yes。
然后在Authentication页面添加一个Platform configruations,Web applications选择Web,其余设置如下,Redirect URIs设置为 https://global.consent.azure-apim.net/redirect 。
最后生成 Client secrets,也就是点击 Certificates & secrets > New Client secret,为client secret取个名字后点击 Add 按钮,然后注意复制保存好生成的Secret Value。这样准备工作差不多完成了。
然后我们到 https://make.powerapps.com 中以Create from blank的方式创建一个 Custom Connector
为这个Custom Connector起个名字后点击 Continue按钮。
在General这个Tab点击Swagger Editor,将其打开,
我这里使用Swagger文件内容如下,这个Host元素的值的获取可以通过在 https://make.powerapps.com 中打开某个flow,看下Network就可以找到,这个不同的环境可能不同,具体以Network中显示的为准:
swagger: '2.0'
info: {title: '连接Flow相关服务', description: '用于获取Flow的运行记录等', version: '1.0'}
host: asia.api.flow.microsoft.com
basePath: /
schemes: [https]
consumes: []
produces: []
paths:
/providers/Microsoft.ProcessSimple/environments/{environment_name}/flows/{flow_name}/runs:
get:
responses:
default:
description: default
schema: {}
summary: Get Flow Run History
description: Get the run history of specified flow in specified environment
operationId: GetFlowRunHistory
x-ms-visibility: important
parameters:
- {name: environment_name, in: path, required: true, type: string, default: Default-82e5f1fb-9ffd-49c1-b0e1-1aae52374ff1,
x-ms-visibility: important, description: Environment ID}
- {name: flow_name, in: path, required: true, type: string, default: 39190573-dbe9-40a2-a99f-183bb2a3fd31,
x-ms-visibility: important, description: Flow ID}
- {name: api-version, in: query, required: true, type: string, default: '2016-11-01'}
definitions: {}
parameters: {}
responses: {}
securityDefinitions:
oauth2_auth:
type: oauth2
flow: accessCode
authorizationUrl: https://login.windows.net/common/oauth2/authorize
tokenUrl: https://login.windows.net/common/oauth2/authorize
scopes: {}
security:
- oauth2_auth: []
tags: []
然后点击Security这个Tab,填写之前复制保存好的Client secret,Resource URL填写为 https://service.flow.microsoft.com/ 。 Client id可以查看前面注册的 App registration的Overview页面显示的 Application (client) ID 值就是。
点击Definition这个Tab,可以看到已经有一个定义好的Action如下,保持不变,当然可以改。点击右上角的 Create connetor创建好。
下面我们来测试下,点击 Test这个Tab, 点击New connection,在弹出窗口中点击Create按钮。
登录后我这里的测试界面如下:
environment_name 和 flow_name 两个参数的值从哪儿来?可以在 https://make.powerapps.com 中打开一个flow找到类似如下请求就可以知道了。
点击Test operation后我这里显示调用成功如下:
然后我们到自己建立的flow中去使用这个Custom Connector,编辑自己的flow,增加步骤,切换到 Custom 这个tab就可以看到了,选择要使用的Action。
登录后,我这里传递的参数如下图:
触发这个flow后看运行记录,调用成功: