【素人でもできた?】Power Automateのフローで平日と祝日をわけてみた
更新日 : 2024年09月30日
Power Automateを利用している中で、休日にはアクションを実行させない、Microsoft Teamsでチャットを送信しないようにしたいなど、土日や祝日を考慮したいと感じたことはありませんか。 今回はエンジニア経験のないマーケティング担当者がSharePointリストを使って、平日と祝日で対応を分ける方法をPower Automateで作成した流れをご紹介します。 エンジニアとしての実務経験もなくPower Automateに詳しくないユーザーでも、このようにPower Automateを活用できるということが伝われば幸いです。 |
目次 |
システムの全体イメージ
Power Automateはフローを実行できるタイミングを曜日単位で指定できますので、フローの実行タイミングから土日を除外します。祝日を除外するために、SharePointのリストで祝日一覧を作成し、Power Automateで今日が祝日に該当するかどうかを分岐させます。
本当は平日の場合はアクションを実行させ、祝日に該当する場合はアクションを実行しないという流れにしたいのですが、そもそもフローが想定通り機能しているか確かめるためにも、今回は祝日の場合は祝日用のメッセージを送るように設定します。(これで問題なければ、該当のフローは削除してみるとよいかと思います)
全体の流れ
大まかな流れとして下記のような4つのフェーズに分かれます。
- Excelで祝日データをまとめテーブルに変換し保存
- 上記をもとにSharePointでリストを作成
- Power Automateでフローの作成
- テストの実施
YouTube動画でもご覧いただけます
実際の操作方法などより詳しくご確認いただけますので合わせてご覧ください。
作成の流れ
1.Excelで祝日データをまとめる
- Excelで祝日データを記載します。祝日の記載方法としては、M/D/YYYYとします。
- データを選択し、「挿入」から「テーブル」をクリックします。
- 「先頭行をテーブルの見出しとして使用する」にチェックを入れて「OK」ボタンをクリックします。
- 適当な名前でExcelファイルを保存します。
2.SharePointでリストの作成
- SharePointにログインします。
- 「新規」から「リスト」をクリックします。
- 「Excelから」をクリックします。
- 「ファイルのアップロード」をクリックし、先ほど作成したExcelファイルを選択します。
- 「次へ」ボタンをクリックします。
- リスト名や説明文章を適当に入力し、作成ボタンをクリックします。
- 作成されたリストが表示されました。
3.Power Automateでフローの作成
1.初期設定、フローの実行タイミング(土日を除外)
- Power Automateにログインします。
- 作成をクリックします。
- 「スケジュール済みクラウド フロー」をクリックします。
- 「フロー名」を適当に入力し、繰り返し間隔のプルダウンを「週間」に変更します。
- 設定曜日から、"日"と"土"をクリックし、「作成」ボタンをクリックします。
- 「新しいデザイナー」のトグルスイッチをオフにします。
2.繰り返し設定、タイムゾーン変換
- Recurrenceをクリックし、編集をクリックし、「詳細オプションを表示する」をクリックします。
- タイムゾーンを「(UTC+09:00) 大阪、札幌、東京」を選択し、開始時刻の末尾にある"Z"を削除します。設置時刻(時間)、設置時刻(分)を適当に入力します。
- 「新しいステップ」をクリックします。
- 「コネクタとアクションを検索する」フィールドに「時刻」と入力し、「日時」のアイコンをクリックします。
- アクション一覧から「現在の時刻」をクリックします。
- 「新しいステップ」をクリックします。
- 「コネクタとアクションを検索する」フィールドに「時刻」と入力し、「日時」のアイコンをクリックします。
- アクション一覧から「タイムゾーンの変換」をクリックします。
- 基準時間に「現在の時刻」、書式設定文字列は「短い形式の日付パターン - 2009/6/15 [d]」、変換元のタイムゾーンは「(UTC) 協定世界時」、変換先のタイムゾーンは「(UTC+09:00) 大阪、札幌、東京」に設定します。
2-1.変数の初期化(祝日送信用のメッセージで利用するため、不要な場合は割愛可)
- 「新しいステップ」をクリックします。
- 「コネクタとアクションを検索する」フィールドに「変数」と入力し、「変数」のアイコンをクリックします。
- アクション一覧から「変数の初期化」をクリックします。
- 名前を適当に入力し、種類は「文字列」、値には式から"null"と入力します。
3.SharePointのリストを連携
- 「新しいステップ」をクリックします。
- 「コネクタとアクションを検索する」フィールドに「SharePoint」と入力し、「SharePoint」のアイコンをクリックします。
- アクション一覧から「複数の項目の取得」をクリックします。
- 先ほど作成したSharePointのリストがある、サイトのアドレス、リスト名を選択します。
- 「詳細オプションを表示する」をクリックし、フィルター クエリの欄に「Tittle ne ''」と入力します。
- 「新しいステップ」をクリックします。
- アクションから「条件」をクリックします。
- 左側の項目に「変換後の時間」を入力し、真ん中のプルダウンは「次の値を含まない」を選択し、右側の項目にはSharePointのリストの祝日が記載されている項目を選択します
4.祝日だった場合のアクション
※本来であれば祝日はアクションさせたくないのですが、このフローが正しいかを確認するため適当なチャットを送って確かめるため設定します。
- いいえの場合の「アクションを追加」をクリックします。
- 「コネクタとアクションを検索する」フィールドに「変数」と入力し、「変数」のアイコンをクリックします。
- アクション一覧から「文字列変数に追加」をクリックします。
- 名前に、2で作成した変数名を選択し、値にはSharePointの祝日名が記載されている項目を選択します
- 「アクションを追加」をクリックします。
- 「Microsoft Teams」のアイコンをクリックします。
- アクション一覧から「チャットまたはチャネルでメッセージを投稿する」をクリックします。
- 投稿者はフローボットのまま、投稿先は「Chat with Flow bot」を選択し、Recipientに送信先のメールアドレスを入力し、Message欄に適当な内容を入力します。
5.平日だった場合のアクション
- 「新しいステップ」をクリックします。
- アクション一覧から「条件」をクリックします。
- 左の項目に作成した変数を選択し、真ん中のプルダウンは「次の値を含まない」にし、右側は「日」と入力します。
- はいの場合の「アクションを追加」をクリックします。
- 「Microsoft Teams」のアイコンをクリックします。
- アクション一覧から「チャットまたはチャネルでメッセージを投稿する」をクリックします。
- 投稿者はフローボットのまま、投稿先は「Channel」を選択し、TeamsとChannelは送信先を選択し、Message欄に適当な内容を入力します。
4.テストの実行
- 保存ボタンをクリックします。
- テストをクリックし、手動をクリックし、テストボタンをクリックし、「フローの実行」をクリックし、「完了」ボタンをクリックします。
- Microsoft Teamsを確認します。
気づき
このフローを作成している中での所感や気づいた点がいくつかありました。
SharePointのリストに祝日を記載しているだけなので、創立記念日や休暇取得推奨日など企業独自の休みをリストに追加すればさらに有効活用できそうと感じました。
当初の想定では、祝日判定のところで平日の場合に判定された際にTeamsでチャットを送信したかったのですが、Apply to each内の処理のためMicrosoft Teamsのチャットが大量に発報されてしまいました。とりいそぎ紹介したフローで落ち着いたものの、もっとシンプルなフローにもできるかと思います。
まとめ
本記事では、マーケティング担当者がPower Automateで平日と祝日の処理を分ける設定をやってみた内容をご紹介しました。
自分のみへ通知する分はそこまで考慮しなくてもいいかもしれませんが、さまざまな人が参加しているグループチャットやチャネルへ送信するメッセージに関しては可能な限り配慮できたらより良いのではないかと思います。
JBサービス株式会社では、Microsoft 365をはじめとしたMicrosoft製品の導入や運用に精通したエンジニアが多数在籍しています。Microsoft製品の導入や運用会社をお探しであればお問い合わせください。これまでの実績については下記ページでご覧いただけます。