はじめに
明日からいよいよゴールデンウイークが終わってしまう。
皆様はいかがお過ごしでしょうか。
私は( ^ω^)・・・。
さて、ゴールデンウイークに、ちょくちょくQiita
を更新してきましたが、
Power Automate
のデータ操作の速度に焦点を当てて、繰り返し処理の速度について紹介します。
実行するシナリオ
繰り返し処理を用いて、2024年の日付タイムスタンプと曜日の一覧の配列を作成します。
イメージはこんな感じです。
Date | Weekday |
---|---|
2024-01-01T00:00:00.0000000 | 月 |
2024-01-02T00:00:00.0000000 | 火 |
2024-01-03T00:00:00.0000000 | 水 |
2024-01-04T00:00:00.0000000 | 木 |
2024-01-05T00:00:00.0000000 | 金 |
といった具合に作成します。
2024年は366日あるので、366回分の繰り返し処理です。
比較対象
- Apply to each(現: それぞれに適用する)
Do until
- 選択
上記の三つを比較します。
0. 事前準備
曜日
はオブジェクト
型の変数で、日本語表記に変換します。
Apply to each(現: それぞれに適用する)とDo until
は、結果を格納する配列を、あらかじめ用意します。
開始時間と終了時間は、作成アクションで決め打ちです。
年間の日数は、dayOfYear関数で簡単に取得できます。
dayOfYear(outputs('終了時刻'))
1. Apply to each(現: それぞれに適用する)
Apply to each
に渡す配列はrange関数で定義します。
@{range(1, outputs('日数'))}
配列変数に追加
に下記の値を設定します。
{
"Date": @{addDays(addDays(outputs('開始時刻'),item()),-1)},
"Weekday": @{variables('Weekday')?[string(dayOfWeek(addDays(addDays(outputs('開始時刻'),item()),-1)))]}
}
item()から、繰り返し処理の現在地を取得できるため、日別の繰り返し処理が実施できています。
2. Do until
内容はほぼApply to each
と一緒です。
変数i
をイテレーターとして利用します。
3. 選択
From
は、Apply to each
同様です。
range(1, outputs('日数'))
Map
は下記の設定にしています。
{
"Date": @{addDays(addDays(outputs('開始時刻'),item()),-1)},
"Weekday": @{variables('Weekday')?[string(dayOfWeek(addDays(addDays(outputs('開始時刻'),item()),-1)))]}
}
やっていることは他と一緒ですね。
結果は選択が圧勝
見てのとおり、ぶっちぎりで選択
が速いです。
方法 | 速度 |
---|---|
Apply to each | 2分20秒 |
Do until | 2分32秒 |
選択 🎊🔥✨ | 0.1秒 🎊🔥✨ |
作成された配列は、同じ内容です!
こんなに違うものかと驚きですね!
Power Automate始めたての時は、とっつきにくい印象がありましたが、
間違いなく便利なメソッドです!
一緒に身につけていきましょう!