この記事では、Power Automateの「コントロール」アクションの一つ「Apply to each」の使い方を解説します。
「Apply to each」を理解するための前提知識として、プログラミングの基本処理や、変数のアレイについて理解しておく必要がありますので、合わせて理解しましょう!
- プログラミングの基本処理とは何か?
- 変数のアレイ(配列)の使い方
- Apply to eachの仕組みと使い方
YouTube動画で見たいかたは、こちらからどうぞ!
Power Automateの基本的な仕組みを知りたい方は、以下の記事を参考にしてください。
プログラミングの基本処理「順次」 「分岐」 「反復」とは?
初めに前提知識として、プログラミングの基本となる3つの処理、順次、分岐、反復について説明します。
PowerAutomateはローコードプラットフォームですが、フローで実行する基本的な処理は、この3つになります。
そのため、この3つの基本処理を前提知識として理解しておくと、PowerAutomateの実装も理解がしやすくなります。
<順次>
- 上から下に順番に、処理1、処理2と実行していくこと
<分岐> ⇒「条件」「スイッチ」等
- 条件を満たしているかによって、その後の処理が変わること
<反復> ⇒「Apply to each」「Do Until」等
- 条件を満たしている間、繰り返し同じ処理を実行すること
「順次」は、感覚的に理解している人も多いと思いますが、一番上のトリガーでフローを開始し、その後のアクションを上から順に実行していくことです。
「分岐」は、例えばTeamsの件名に、”申請”という文字が入っていた場合は、処理1、”申請”の文字が入っていない場合は、処理2を実行する等で使います。
分岐についての詳細は、以下の記事も参考にしてください。
「反復」は、例えば条件で変数counterが0から始まり、3未満の場合は、処理1を繰り返す等があります。
この場合、処理1の最後に変数counterが+1され、1つずつカウントアップされていき、Counterが3になったときに、このループを抜け、処理2が実行されます。
アレイ(配列)とは何か?
今言った「アレイ(配列)」とは何ですかな?
「Apply to each」を理解するためには、先に「アレイ(配列)」について、理解しよう!
以下のテーブルの例を見てください。
例えば「数値のアレイ」として、[1, 2, 3]という値の集まりや、「文字列のアレイ」として、[“ブドウ”, “ミカン”, “リンゴ”]の値の集まり等がアレイになります。
複数の列を持つテーブルは、「オブジェクトのアレイ」になります。
Excelの表でもよく使うと思いますが、このようなものもアレイといいます。
「Apply to each」は、このようなアレイを1行ずつ取り出し、同じ処理を繰り返し実行できます。
Apply to each(反復処理)の使い方
Apply to eachの使い方を解説
それでは数値の[1, 2, 3]というアレイを例に、「Apply to each」の使い方の例を説明します。
まず、アレイ型の変数[1, 2, 3]を作成します。
そして「Apply to each」を使い、その中の処理で「Excelに行を追加する」というアクションを設定します。
このとき、どのように処理が進むのでしょうか?
まず、繰り返しの1回目で、アレイの1つ目の要素、数字の1が処理されます。
Apply to eachの中に設定したアクション、Excel表に行を追加が実行され、Excel表の1行目に、1が追加されます。
次に、繰り返しの2回目で、アレイの2つ目の要素、数字の2が処理されます。
Apply to eachの中に設定したアクション、Excel表に行を追加が実行され、Excel表の2行目に、2が追加されます。
最後に、アレイの3つ目の要素、数字の3が処理され、Excel表の3行目に、3が追加されます。
そしてアレイの、3つすべての値の処理が終わると、Apply to eachの中の処理は終わります。
Apply to eachの後に、別の処理を設定している場合は、その処理の実行に移ります。
このように、Apply to eachは、アレイの要素を1つずつ取り出し、中の処理を繰り返し実行することができます。
Power Automateでの実装方法
1.PowerAutomateを開き、作成から、自動化されたクラウドフローを作成します。
2.トリガーはひとまず手動にし、最初のアクションで「変数を初期化する」を選択し、以下の設定をします。
名前:任意の変数名を入力
種類:アレイ
値:[1, 2, 3]
※文字列の場合は、値を“”で囲う必要がありますが、数値の場合は必要ありません。
これで数値のアレイ型変数ができました。
3.次のアクションで「コントロール」>「それぞれに適用」を選択し、以下の設定をします。
この「それぞれに適用」が「Apply to each」です。
出力:「動的なコンテンツ」から2.で作成した変数(数値のアレイ)を設定
このApply to eachの中にアクションを追加すれば、数値のアレイが、1~3まで順に1つずつ取り出され、アクションが実行されます。
4.アクションの追加から「Excel」>「表に行を追加する」アクションをクリックし、以下の設定をします。
※今回はSharePointのドキュメントフォルダに、「番号列」だけ持つ空のExcelテーブルを用意しました。
場所:Excelファイルの保存場所
ドキュメントライブラリ:ドキュメント
ファイル:Excelファイルの格納場所
テーブル:テーブル名
5.テーブルの列が自動で表示されるため、「番号列」に動的なコンテンツから「現在のアイテム」を選択して設定します。
現在のアイテムというのが、アレイ[1, 2, 3]を1から順に一つずつ取り出した値が処理されます。
6.フローを保存して、テスト実行してみます。
フローが正常に終了した後、Excelのテーブルを見てみると、このようにちゃんと1~3までの数値が行に追加されています。
このような感じで、Power Automateで「Apply to each」を使うことができます。
最後に
本日はPower Automateの、Apply to eachの使い方を解説しました。
Apply to eachは、Power Automateの中でも、とてもよく使う処理です。
例えば、SharePointリストの列に保存した添付ファイルも、アレイとして取得されるため、1つ1つの添付ファイルを取り出すには、Apply to eachを使います。
「Apply to each」でオブジェクトのアレイを処理する方法についても、また別の記事で詳しく説明していくね。
Apply to eachはとてもよく使う反復処理なので、是非マスターしましょう!
Power Platform開発・学習支援のご相談については、以下のページをご覧ください。