はじめに
Power Automateでは、データ操作
アクションを使用し、JSON 配列入力を、CSV
またはHTML
テーブルに変換することができます。
JSON 配列入力から、サクっとヘッダーを含めてテーブルを作成できるため、便利に感じていますが、マークダウン記法
のテーブルは、変換できないのかな…と若干モヤモヤしておりました。
というのも、Power Automate の承認要求で Markdown 言語を使用することができるため、この方法にフィットさせるためには、「マークダウン」もサポートされてほしいという想いもあったりします。
Power Automate
、Teams
、Outlook
といったクライアントでMarkdown のサポートに一貫性がないようです。
現在の公式リファレンスを読んで利用をご検討ください。
承認ワークフローについては、先日記事を書き、沢山の方に見ていただきました。
こちらのレベルアップも含めて、「今ないものは自分で作ろう!」 ということで、対策を考えてみました!
テーブルの作成
と同じような体験ができる方法を考える
出来ることであれば、JSON 配列入力から、サクっと変換できることが理想です。
Power Automateのデータ型で、取り扱われる配列はJSON 配列入力
がほとんど。
例えばSharePoint Lists
の複数の項目を取得
し、Markdown記法のテーブルに変換できれば嬉しい。
要件として
- JSON 配列入力から変換する
- 力業ではない、データ操作にする(Apply to eachは利用しない)
ということで、Let's データ操作 Cooking!
試したこと
Lists
に、下記のようなテーブルを設けました。
ID | FlowID | approver(ユーザー列) | position | result(選択肢列) | comment |
---|---|---|---|---|---|
1 | Flow0001 | 荒賀 翼 | 部門長 | 承認 | プロジェクトの目的と予算が明確であり、承認します。次のステップを進めてください。 |
2 | Flow0001 | 大久保 絵梨 | 財務部責任者 | 承認 | 予算の詳細確認しました。財務面から問題ありません。 |
3 | Flow0001 | 荒川 賢二 | 法務部責任者 | 承認 | 契約内容についてレビューしました。法的なリスクは見受けられません。 |
4 | Flow0001 | 成瀬 亜弓 | IT部門長 | 条件付き承認 | システムに必要な変更がいくつかあります。それらが完了次第、全面的な承認とします。 |
5 | Flow0001 | 森屋 英明 | 経営者 | 承認 | すべての部署からの承認を確認しました。プロジェクトを開始してください。 |
ダミーデータです
上記のうち、ID
、approver
、position
、result
を、それぞれ
- ID -
そのまま
- approver -
承認者
- position -
役職
- result -
結果
と置き換えて、テーブルを作りたいと思います。
実現するためのアクション
実現するために、データ操作
アクションを、駆使します。
登場するアクションは、データ操作三銃士!
流れ
-
SharePoint - 複数の項目の取得で、
JSON 配列入力
を取得 -
作成
でマークダウン
用のヘッダーを作成 -
選択
で、JSON 配列入力
から、テーブルデータを抽出 -
結合
で、(3)選択
で作成した配列から、マークダウン用に要素を結合 -
作成
で、(2)ヘッダー
と(4)結合
の文字列を合体(ついでにほかの文面も追加する) -
承認
を実行
上記で実現できないか見てみます。
1. SharePoint - 複数の項目の取得
フィルタークエリを使って、対象の項目を抽出します。
環境変数
を使って、サイトのアドレス
、リスト名
を設定しています。
2. 作成
でマークダウン
用のヘッダーを作成
|ID|承認者|役職|結果|
|---|---|---|---|
選択
で、JSON 配列入力
から、テーブルデータを抽出
シンプルな配列
に仕立てるため、テキストモード
に切り替えて、下記のように設定します。
{
"from": "@outputs('複数の項目の取得')?['body/value']",
"select": "|@{item()?['ID']}|@{item()?['approver']?['DisplayName']}|@{item()?['position']}|@{item()?['result']?['Value']}|"
}
テキストモードで、直接値を指定することにより、[`key:value"]にならず、["value"]として構成されます。
やや強引な技のためか、保存は成功するものの、ほかの項目をいじるたびに、エラーがでます。(2024.05.25時点)
保存後、ほかの項目を修正して上書きしようとすると、"
ダブルクオーテーションが消え、エラーと評価されてしまいます。
3. 結合
で、(2)選択
で作成した配列から、マークダウン用に要素を結合
結合
は(2)選択
で作成した配列@{body('選択')}
を指定して、改行で結合します。
4. 作成
で、ヘッダー
と(4)結合
の文字列を合体(ついでにほかの文面も追加する)
作成
で、(2)ヘッダー
と(4)結合
の文字列を合体させます。
↓の黄色#ffce44
の部分です。
# 承認申請 プロジェクトの委託
G社のシステムを移管するプロジェクトを発注するため、承認を願う
# 背景
いろいろもう限界で、現場からも不満の声が絶えないため
## 依頼者
- デジタル健康推進部 鰹男
## 選定理由
1. 安い
1. はやい
1. 上手い
## 参考資料
[発注先 G社](https://qiita.com/DEmodoriGatsuO)
## 承認プロセス
** 1次承認者 荒賀 翼**
@{outputs('ヘッダー')}
@{body('結合')}
これを開始して承認を待機
の詳細に
設定します。
さて、挙動を見てみましょう!
結果!
■ Teams - デスクトップアプリ
■ Outlook
■ Power Automate モバイルアプリ
表形式にはなりました!
マークダウン変換の手法として活用していきたいと思います!