Power Automateでカレンダー情報を取得するついでに「データ操作」アクションを試す

この記事は、[Power Automate Advent Calendar 2022](https://qiita.com/advent-calendar/2022/powerautomate "Microsoft Power Automate Advent Calendar 2022") 12月1日担当分の記事です。

勉強がてらPower Automateの「データ操作」関連アクションをいくつか使ってみたいと思います。
## 準備
まず２日間分のOutlookカレンダーを埋めてみました。
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/7cf86252-c65d-2f85-6c1d-593e5b843420.png">
## フロー作成
### トリガー：手動トリガー
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/a7eadf2b-1c21-899a-7280-8e96858dc49f.png">

### データ操作アクション：作成
先ほど用意した２日分のカレンダー情報を取得しようと思います。

まず終了日時を作成します。
「作成」アクションを追加し、以下の関数を式へ入力します。
```
addDays(triggerOutputs()['headers']['x-ms-user-timestamp'],2)
```
:::note info
実行日時に対しとりあえず２日加えています。
※ この辺は実行タイミングと取得したい期間に合わせて上手く調整してください。
:::
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/12adeebf-7753-4966-a749-1cc354e3f3f3.png">

※ 後で使いやすいようにアクション名を「終了日」へ変更します

### アクション：イベントのカレンダービューの取得（V3）
Outlook カレンダー情報を取得します。
開始時刻をトリガーの動的コンテンツ「タイムスタンプ」、終了時刻を先ほどの作成アクションの出力を選択します。
<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/170a58ef-5b4e-2ccb-891c-a12c2bcf5b33.png">
一旦フローをテストしてみます。
上手く動いて、ワールドカップ観戦の予定まで取得できています。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/05003832-ed3c-7098-e077-5f584044fda3.png">
 **※ ここで、value の内容をすべてコピーします。後のアクションで使用します。**

### データ操作アクション：JSONの解析
取得したカレンダー情報から必要な情報のみ抜き出せるようにします。
JSONの解析アクションから、「サンプルから生成」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/df4073aa-ce22-f619-480f-ed62b68fcd06.png)

サンプルJSONペイロードの挿入 へ先ほどコピーしたvalueの内容をペーストします。
ー ペースト前
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/5600a731-bca5-d1fc-44f5-3fad0a8e8511.png">
ー ペースト後
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/e002484c-bf7a-41ca-e4dd-111cb5881249.png">
完了を選択します。


JSONの解析アクションのコンテンツ項目へ動的コンテンツの「value」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/7e927a2a-456a-c7a6-60c4-c796d56ee1ed.png)

### データアクション：選択
JSONの解析で出力した内容から、必要な項目を抽出します。

開始項目へJSONの解析アクションの動的コンテンツ「本文」を選択します。
マップ項目へは以下の通り指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/654de56d-924d-62f6-6563-e1f3a672db8b.png)

一旦フローをテストしてみます。
選択アクションで必要な値のみ抽出できています。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/1a8b2acc-a098-7151-9407-7acba1665b7d.png">
### データ操作アクション：CSVテーブルの作成
取得できた値をCSVテーブルにしてみます。
開始項目に"選択"アクションの出力を選択します。
<img width="650" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/dcacaa99-99d0-ad64-ec56-21a98fb0a703.png">
フローをテストしてみます。
上手くCSVテーブル化できています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/096efe28-bb5e-6fb6-800e-5f37eccdf0ea.png)
必要な値が上手く抽出できていれば、後はもうやりたい放題です。

### データ操作アクション：HTMLテーブルの作成
今度はデータをHTMLテーブルに変換してみます。
開始項目に"選択"アクションの出力を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/a83fa06c-1212-d783-150a-b9f9963c34a9.png)

フローをテストしてみます。
上手くHTMLテーブル化できています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996237/c0dbf50c-0318-bb58-c166-a459a6653831.png)

後はこの出力結果をExcelやSPOリストに転記できたらいいですね。
今回はここまでとします。

:::note info
出力結果を見るとUTC時間になっているので、フローのどこかのタイミングで日本時間へ変換するアクションか関数を利用する必要がありそうですね。
:::

＜参考＞
・参考にしたMS公式のDocsです
タイトル：データ操作を使用する
https://learn.microsoft.com/ja-jp/power-automate/data-operations