【Power Automateではじめる業務の完全自動化】実務直結のノウハウが満載! 本連載では、企業へのMicrosoft 365の導入や活用支援を手がける著者・太田浩史氏による、Power Automateを使った業務自動化のノウハウを提供します。
変数を使うと便利な場面を知ろう
変数は、動的なコンテンツとしてアクションに設定できます。フローで変数を利用すると便利な場面は主に「同じ値を複数の場所で使いたいとき」「フローの構造をシンプルにしたいとき」「反復処理の終了条件に利用したいとき」の3つです。それぞれ見ていきましょう。
同じ値を複数の場所で使いたいとき
承認の結果をメールで送るフローを作成している場合、条件分岐の「はいの場合」と「いいえの場合」のそれぞれにメールを送信するアクションを追加することがあります。メールの最後に署名を入れるには、それぞれのアクションでメールの本文に同じ署名を書くことになります。仮に何かの事情で署名を変える必要がある場合、またそれぞれのアクションで同じ署名に書き換えなければなりません。このような場合、メールの署名を変数にすると変更が楽になります。
変数を使わない場合
変数を使った場合
フローの構造をシンプルにしたいとき
条件分岐などが増えてくると、設定の一部が異なるだけのアクションを複数の箇所で繰り返し利用することもあります。例えば、Formsで作成した問い合わせフォームに寄せられた内容を、問い合わせの内容に応じて異なる担当者にメールを送信したいとしましょう。
これを実現するためには、次のようなFormsの問い合わせフォームとフローを作成します。ポイントは、問い合わせフォームの設問の回答を利用して、フロー内でスイッチ分岐を利用しメール送り先の担当者を振り分けている点です。このフローは変数を利用することで、メールの送信アクションの数を減らし、よりシンプルにできます。
変数を使わない場合
❶の[ケース]と❷の[ケース2]
❸の[ケース3]と❹の[既定]
変数を使った場合を見ていきましょう。元のフローで条件によって異なる値になっているのは、[メールの送信(V2)]アクションに設定されている担当者のメールアドレスです。このように条件によって変わる部分が変数に置き換えられます。以下の例では[担当者]変数を作成し、条件に応じた担当者のメールアドレスを格納するようにしています。このためスイッチ分岐の中では、設定の簡単な[変数の設定]アクションのみを利用します。スイッチ分岐で設定される[担当者]変数を[メールの送信(V2)]アクションの[宛先]に設定することで、1つのアクションだけを利用し条件に応じてメールの送信先を変えることができます。このように、設定項目の多いメール送信のアクション数を減らせたことで、あとからフローを修正するときの手間も少なくなります。
変数を使った場合
❶の[ケース]と❷の[ケース2]
❸の[ケース3]と❹の[既定]
❺の[Office 365 Outlook]コネクタの[メールの送信(V2)]アクション
さらに上達![スイッチ]アクションの使い方
[スイッチ]アクションを利用することで、指定する[動的なコンテンツ]や[変数]の値に応じて実行されるアクションを変えることができます。条件で利用する値は[スイッチ]アクションの[オン]に設定します。[ケース]を追加して、条件分岐のパターンを増やすことができます。フローの実行時に[オン]に設定された値が、各ケースの[次の値と等しい]に設定された値と等しいかどうかを判定し、等しいと判断されたケースのアクションが実行されます。また、[既定]は、設定したすべてのケースにあてはまらない場合に実行される特殊なケースです。
反復処理の終了条件に利用したいとき
反復処理の[Do until]は、変数と一緒に利用されます。[Do until]の設定では反復処理を終了させる条件を指定しますが、この条件に変数を利用します。例として次のページを参考に、承認を行うフローで承認者がなかなか承認してくれない場合に自動的にリマインドを送る処理を作成してみましょう。
ポイントは、[Do until]を利用し、承認が行われるまで繰り返しリマインドを送るようにしている点です。また、承認が行われたかどうかを判断するためのブール値を含む変数を用意し、[Do until]の終了条件として利用しています。この変数の値は、[変数を初期化する]アクションでは「false」に設定されており、承認が終わると「true」に変更されます。この動作を実現するためには、承認が終わったタイミングの[開始して承認を待機]アクションの直後に[変数の設定]アクションを追加し、値を「true」に設定します。
そして、並列分岐の[開始して承認を待機]アクションがある側の最後に、[終了]アクションを追加しておきましょう。これは、承認が終わったのにも関わらず、[Do until]の反復処理が継続している場合に、フローを強制的に終了させるために必要です。
変数を使った[Do until]の利用例
❶の[変数の初期化]アクション
変数を使った[Do until]の利用例
❶「反復処理終了」と入力
❷[ブール値]を選択
❸「false」と入力
❷の[開始して承認を待機]アクション
❶[承認/拒否-すべてのユーザーの承認が必須]を選択
❷承認依頼であることが分かるタイトルを入力
❸承認者を指定
❹通知に表示されるメッセージを入力
❸の[変数の設定]アクション
❶ [反復処理終了]を選択
❷「true」と入力
❹の[条件]アクション
❶動的なコンテンツから[結果]を選択
❷[次の値に等しい]を選択
❸「Approve」と入力
❺の[終了]アクション
❶ [成功]を選択
❻の[遅延]アクション
❶「1」と入力
❷[日]を選択
❼の[Do until]アクション
❶動的なコンテンツから[反復処理終了]を選択
❷[次の値に等しい]を選択
❸[値の選択]欄を選択し[式]クリックして「true」と入力し[OK]をクリック
❽の[メールの送信(V2)]アクション
❶リマインドのメールの送り先である承認者を指定
❷承認依頼の確認であることが分かる件名と本文を入力
❾の[遅延]アクション
❶「1」と入力
❷[日]を選択
ここもポイント![待ち時間]でリマインドの間隔を調整する
[待ち時間]でリマインドの間隔を調整する リマインドで送信されるメールの間隔を調整するには、[スケジュール]コネクタの[遅延]アクションを利用します。このアクションは、フロー編集画面では[待ち時間]と表示されることもあります。アクションの設定で「1日」と指定することで、1日おきにリマインドのメールが送信されます。
さらに上達![Do until]の[制限の変更]って?
[Do until]の[制限の変更]の設定では、反復処理の回数や時間の上限を指定することができます。[回数]は反復処理の上限数で、指定した回数まで繰り返し実行されると、終了条件を満たしているかによらず[Do until]アクションは終了します。[タイムアウト]の設定では、反復処理の時間的な上限を指定できます。
[Do until]の反復処理を開始し、1時間経過したら終了するといった指定が可能です。[タイムアウト]の設定は、ISO8601表記にて行います。期間を意味する「Period」の「P」から始まり、1日単位であれば「D」、1時間や30分などの時間単位であれば「T」と「H」や「M」「S」を組み合わせて指定します。既定値は「PT1H」で1時間となっています。承認のリマインドに[Do until]を利用するときには、7日間などの適切な長さに変更しましょう。
なお、指定できる期間の最長は30日間です。フローは実行されてから最長30日間以内に終了する必要があります。それを超えて実行中のアクションはすべてタイムアウトで終了します。
タイムアウトの設定例
設定値 | 期間 |
---|---|
設定値 | 期間 |
P1M | 1カ月間 |
P1D | 1日間 |
PT1H | 1時間 |
PT30M | 30分間 |
PT10S | 10秒間 |
PT1H30M | 1時間30分間 |
関連記事
本連載は、インプレスの書籍『Power Automateではじめる業務の完全自動化(できるエキスパート)』の内容に基づいています。紹介している情報は、書籍発行時点(2023年9月)のものです。