1. 简单介绍
调用Web Api获取的数据经常是json格式的,Power Automate提供了内置的Parse Json action来解析json数据。一个常见的场景是将json数据变成html table,然后通过邮件的形式发送出去,或者也可以将table数据放置到Approval的details中来发送审批请求。
这边尝试一下将获取的json数据以html table的形式发送出去;同时创建一个Approval,将table添加到Approval details中。
2. 具体说明
2.1 准备Web Api
假定已经创建了一个Asp.Net Core Web Api(.NET 9),这个web api提供了一个获取2024年巴黎奥运会各个地区金牌数据的接口,如下图所示,

note, 如果是本地的uri,可以通过ngrok或者花生壳等工具将其映射为公网可以访问的接口
2.2 发送包含table的邮件
下图是Instant flow工作的总体情况

2.2.1 制作Instant flow
-
创建一个Instant flow
-
添加HTTP action,将步骤2.1准备的web api配置到HTTP action中,如下图所示,

3)添加Parse Json action,

4)添加一个Select action,

5)添加Create a HTML table action,如下图所示,

- 添加一个Compose action,

主要是对Create HTML table生成的html内容添加一些样式,可以使用replace函数来进行
类似下面的Power Automate expression,需要将其中的...进一步细化一下
html
replace(
replace(
replace(
body('Create_HTML_table'),'<table>',
'<table style="width: 50%; border-collapse: collapse; background: white;
...">'
),'<td>',
'<td style="border: 1px solid #ddd;
...">'
),'<th>',
'<th style="padding: 12px;
...
color:white">'
)
7)添加Send email action,如下图所示,将Compose的output添加到邮件正文中,

2.2.2 运行一下
启动工作流,最后邮件中会收到一封邮件,邮件正文中包含一个table,如下图所示,

2.3 创建包含table的审批
Approval request的大概效果如下图所示,


2.3.1 制作Instant flow
-
创建一个Instant flow
-
添加HTTP action, 同步骤2.2.1
-
初始化一个回车的variable

- 初始化markdown variable

-
添加 Parse Json action,同步骤2.2.1
-
使用Apply to each 对Parse Json生成的结果进行遍历,然后以markdown的形式append到markdown变量中,

- 添加Create an approval action,如下图所示,

2.3.2 运行一下
启动工作流,在MS Teams的Approvals中会看到如下包含了table的审批请求,

同时也将收到一封包含了table数据的审批邮件,

3. 总结
本文简单记录了一下从web api获取json数据,然后转换成table,最后分别以email和审批请求的形式发送出去的过程。如果是将table放置到email中,则可以使用Create HTML table action同时进行一些样式定制;如果是发送审批请求方式,则需要组织markdown内容的。
本文如果哪里有错误,麻烦告之,谢谢谢谢!