PowerAutomate

【PowerAutomate入門】条件に応じて処理を変える方法~条件分岐~

ミムチ
ミムチ
Power Automateで、メールの件名に含まれるキーワードごとに、Teams通知先や、保存先を変えたいのですが、どのように実装したらよいのか分かりませんぞ…

パワ実
パワ実
その場合は「条件」と「Apply to each」を組み合わせた実装で実現できるよ!

この記事では、Power Automateで条件に応じて処理を変える、条件分岐の方法について解説します。

例えばメール受信時に件名に特定の文字が含まれる場合など、条件に応じて後続の処理を変えたい場合、Power Automateの条件アクション等を使います。

少し応用的な「Apply to each」と組み合わせた実装方法も紹介します!

この記事でわかること

  1. Power Automateの「分岐(条件分岐)」で何ができるか
  2. 「条件」「スイッチ」アクションの使い方
  3. 「条件」と「Apply to each」を組み合わせた実装方法

Youtube動画で見たい方は、こちらからどうぞ!

プログラミングの基本処理「順次」 「分岐」 「反復」とは?

前提知識として、プログラミングの基本となる3つの処理、順次、分岐、反復について復習したい方は、以下の記事を参考にしてください。

【PowerAutomate入門】Apply to eachとは?~アレイ(配列)を1つずつ処理する方法~ この記事では、Power Automateの「コントロール」アクションの一つ「Apply to each」の使い方を解説します。...

PowerAutomateはローコードプラットフォームですが、フローで実行する基本的な処理は、この3つになります。

<順次>

  • 上から下に順番に、処理1、処理2と実行していくこと

<分岐> ⇒「条件」「スイッチ」等

  • 条件を満たしているかによって、その後の処理が変わること

<反復> ⇒「Apply to each」「Do Until」等

  • 条件を満たしている間、繰り返し同じ処理を実行すること

今回解説するのは、真ん中の「分岐処理」になります。

分岐(条件分岐)で何ができる?

分岐処理では、指定した条件に当てはまる場合と、当てはまらない場合で、後続の処理を変えることができます。

PowerAutomateでは、条件分岐のアクションとして「条件」と「スイッチ」アクションが用意されています。

<条件の例>

  • メールを受信した時をトリガーに、件名に請求書の文字が入っているかという条件を評価する
  • 「はい」の場合はTeamsに通知、「いいえ」の場合は何もしないとの処理を分ける

<スイッチの例>

  • メールを受信した時をトリガーに、差出人がAの場合、Bの場合、それ以外の場合で通知先のチームを分ける等処理を分ける

パワ実
パワ実
「条件」や「スイッチ」のアクションは非常によく使い、様々な作業の自動化実装に役立ちます!

Power Automateで、条件分岐を使ったフローの実装方法

それでは、Power Automateの「条件」や「スイッチ」を使った条件分岐の実装方法について解説していきます。

シナリオ①「条件」アクション

まずは最もシンプルな「条件」アクションを使った条件分岐のフローを作成してみます。

シナリオ①

Outlookメールを受信した時に、件名に「請求書」の文字列が入っていた時は、Teamsの指定したチャネルに投稿する

以下が、完成したフローの全体像になります。

1.トリガーは、「Outlook」コネクタの「新しいメールが届いたとき(V3)」を選択します。

ミムチ
ミムチ
「Outlook」トリガーの詳細オプションで、「件名フィルター」に請求書と記載すればいいのではないですかな?

パワ実
パワ実
今回のシナリオだとそれでいいんだけど、練習のために「条件」アクションを使って実装してみるよ!

2.「新しいステップ」を追加し、コントロールの「条件」アクションを追加します。

「条件」アクションでは、ここで指定した条件に当てはまる場合と、当てはまらない場合で処理を分けることができます。

今回指定する条件は、Outlook受信時の件名に、「請求書」の文字列を含む場合です。

3.以下のように条件を設定します。

  • 値の選択:動的なコンテンツから、「新しいメールが届いたとき(V3)」の「件名」を選択
  • 真ん中:次の値を含む
  • 右:請求書

これで条件式は設定できたため、あとは「はい」の場合に、Teams通知をするアクションを追加するだけです。

4.はいの中で「アクションの追加」を選択し、「Teams」コネクタの「チャットまたはチャネルでメッセージを投稿する」アクションを選びます。

5.投稿先のチャネルを選び、メッセージを設定すればOKです。

※条件に当てはまらない場合のアクションは、いいえに追加しますが、今回は何もアクションを追加する必要はありません。

6.フローを保存し、動作確認してみます。

7.Outlookで、件名に「請求書」の文字列が入ったメールが届くと、Teamsに通知されればOKです!

このような感じで、条件アクションを使うことができます。

ミムチ
ミムチ
条件アクションは、案外分かりやすいですな!

シナリオ②「スイッチ」アクション

次に「スイッチ」アクションを使った条件分岐のフローを作成してみます。

シナリオ②

Outlookメールを受信したとき、差出人によってTeams投稿するチャネルや内容を変える

以下が、完成したフローの全体像になります。

1.トリガー先ほどと同じ「Outlook」コネクタの「新しいメールが届いたとき(V3)」です。

2.次のアクションで、コントロールの「スイッチ」を追加します。

スイッチは、条件の判定結果の値ごとに処理を変えることができます。

3.スイッチで判定する条件は、動的なコンテンツからトリガーの「差出人」を設定します。

4.差出人がAのとき、Bのとき、それ以外で処理を変える場合は、以下のように、最初のケースにはA、次のケースにはB、そしてそれ以外の場合は既定のアクションに追加します。

5.フローを保存し、動作確認してみます。

6.宛先ごとのケースで設定したTeams通知が届けばOKです。

このような感じで、スイッチを活用することができました!

ミムチ
ミムチ
「スイッチ」のケースでは、「〜の値に等しい」場合のみで、部分一致等の条件は指定できないのですな。

シナリオ③「条件」と「Apply to each」の組み合わせ

最後に条件アクションと、以前解説したApply to eachを組み合わせた活用法も紹介します。

シナリオ③

Outlookメールが届いたとき、件名に含まれるキーワードごとに、Teamsでメンション通知するユーザーを変える

以下が、完成したフローの全体像になります。

1.最初にSharePointフォルダーに以下のようなExcelテーブルを用意します。

キーワードと、宛先だけが記載されたシンプルなテーブルです。

件名に調査というキーワードが入っていたらパワ実、請求が入っていたらミムチ、申請が入っていたら山田さんに通知するフローを作ってみます。

2.トリガー先ほどと同じ「Outlook」コネクタの「新しいメールが届いたとき(V3)」です。

3.次のアクションで「Excel」コネクタの、「表内に存在する行を一覧表示する」アクションを追加します。

「表内に存在する行を一覧表示する」アクションで、ファイルの場所とテーブルを指定すると、対象のExcelテーブルデータを取得することができます。

4.取得したテーブルデータを1行ずつ処理するため、この後のアクションで、コントロールの「Apply to each(それぞれに適用)」を追加します。

Apply to eachの詳しい説明は、以下の記事を参考にしてください。

【PowerAutomate入門】Apply to eachとは?~アレイ(配列)を1つずつ処理する方法~ この記事では、Power Automateの「コントロール」アクションの一つ「Apply to each」の使い方を解説します。...

5.Apply to eachの「値」には、動的なコンテンツから「表内に存在する行を一覧表示」で取得された「Value」を設定します。

6.「Apply to each」の中に「条件」アクションを追加します。

7.条件は以下のように設定します。

  • 値の選択:動的なコンテンツから、「新しいメールが届いたとき(V3)」の「件名」を選択
  • 真ん中:次の値を含む
  • 右:動的なコンテンツから、「表内に存在する行を一覧表示する」の「キーワード」を設定

上記の設定これによりキーワードが1行ずつ判定され、件名にキーワードが含まれた場合、はいに設定したアクションが実行されます。

8.「はい」の中で、「Teams」コネクターの「ユーザーの@メンショントークンを取得する」アクションを追加します。

ユーザーに動的なコンテンツから、Excelテーブルの「宛先」を入れると、キーワードに一致した時の宛先で@メンショントークンを取得できます。

9.「チャットまたはチャネルへのメッセージを投稿する」アクションを追加し、動的なコンテンツから、@メンショントークンの「@mention」を設定します。

10.フローを保存し、動作確認してみます。

以下のように、件名に特定の文字が入っていた場合、 Excel表で指定した宛先に、Teamsメンション通知されればOKです。

このように「Apply to each」と、「条件」を組み合わせたフローを使うことができました。

ミムチ
ミムチ
「Apply to each」と「条件」アクションの組み合わせは少し複雑ですな…

ミムチももう一度自分で実装してみますぞ…!

Power Platform開発・学習支援のご相談については、以下のページをご覧ください。

Power Platformに関するご相談について パワ実のプロフィール IT部門にて、Power Platform等を活用した社内DX推進業務に従事(2021年~2023年9月)...

最後に

この記事では、Power Automateで条件に応じて処理を変える方法について解説しました。

特にPower Automateの「条件」アクションは、実装の中でも頻繁に使い、重要な処理の一つです。

また「~の値に一致する」という複数条件がある場合は、「スイッチ」アクションが有効です。

パワ実
パワ実
Power Automateの「条件」を使いこなせば、色々応用的な自動化実装ができるようになりますので、是非活用してみてください!

ABOUT ME
パワ実
DX推進担当(IT部門) 2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 Power Platformを使っていく中で、知りえた情報を発信している。 Youtube、Twitterでの情報発信もしています!

ご依頼・ご相談について

Power Platformに関するご相談は、こちらからお願いします!

Power Platform学習におすすめの無料ハンズオンセミナー、参考本は、こちらのページを参考にしてください。