这是我的第512篇原创文章,写于2024年10月12日。
在中国大陆版Power Automate门户中打开Flow的格式是 https://make.powerautomate.cn/environments/{EnvironmentId}/flows/{FlowId}/details ,这里用到了两个参数,第二个参数FlowId好办,就是workflows这个表的主键列workflowid的值,第一个参数EnvironmentId的值如何通过程序的方式获取呢?我以前的文章 利用Flow每天获取Flow的状态及运行记录 是自己手工写入环境变量的,这样每个环境都需要配置一次,有点麻烦,可以通过程序自动获取吗?
我拿这个问题问了下微软人工智能Copilot,如图:
回答挺好的,第一个找到这个ID我们可以在 https://make.powerapps.cn/ 点击右上角的Setting按钮,在弹出的页面点击 Developer resources。
看到的Environment Id的界面如下:
回答的第二条就是Power Automate获取的方法,这里用到了 Power Automate Management 这个Connector的 List My Environments 这个Action。
这里获取到的环境是一个数组,如何筛选出当前环境呢?这里利用当前环境的url来筛选返回的记录就可以,如何获取当前环境的url参考我的博文 Power Automate实用常见问题解答(FAQ) 就可以,简单来说就是利用Microsoft Dataverse的 List rows操作查询出任何一条记录。
然后用类似 first(split(outputs('List_all_flows')?['body']['@odata.context'], 'api/')) 的表达式获取到这个url,我这里将其放到变量 baseUrl中,然后筛选 Power Automate Management 这个Connector的 List My Environments 这个Action的结果。
我们再用 Data Operation这个Connector的Filter Array来筛选出需要的Environment Id。
Filter Array 用到的表达式分别是 outputs('List_My_Environments')?['body/value'] ,item()?['properties/linkedEnvironmentMetadata/instanceUrl'] 和 variables('baseUrl') 。
最后要获取的Environment Id就可以用 last(split(first(body('Filter_current_environment'))?['id'],'environments/')) 这个表达式拿到值了。
标签:Power,Flow,List,Environment,获取,Automate,ID From: https://blog.51cto.com/luoyong/12231591