SharePointのリスト×Power Automateで締切の数日前にTeamsのチームにお知らせを投稿する
きげんよう。百合宮桜です。
こちらは今年2つ目のアドベントカレンダー「Office 365 Advent Calendar 2021」の12日目の記事です。
今回はSharePointのリストで作成したタスク一覧をデータ元にして、締切数日前になったら、自動的にTeamsのチームにお知らせを投稿する方法について書きたいと思います。
■こんな人におすすめ!
・月次・年次など決まったタイミングで多く人からデータを提出してもらう業務がある人
・締切を設定する立場なのに告知を忘れてしまいがちな人
■目的
以下のような投稿をTeamsのチームに自動的に行うことがゴールです。
■ShrePointのリストを準備する
1.ShrePointサイトを作成する。
こちらは「サイトを作成する」を見て、やってみてください。
チームサイト・コミュニケーションサイトのどちらでもよいですが、私は「チームサイト」で作業しています。
2.ホーム画面で「+新規」→「リスト」をクリックする。
3.「空白のリスト」をクリックする。
4.リストの名前を入力し、「作成」ボタンをクリックする。
名前は何でもよいですが、私は「Task」にしました。
サイトナビゲーションは2のスクショに出ている、ホーム・スレッド・ドキュメント……というこのSharePointサイトにある主なコンテンツ一覧のことです。なので「サイトナビゲーションに表示」はチェックを入れておくと、リストに一発でたどり着きやすくなります。
「作成」ボタンを押すと、↑スクショのような空のリストが出来上がります。
5.「列の追加」→「日付と時刻」をクリックする。
6.列の名前を入力し、「保存」ボタンをクリックする。
PowerAppsでの展開予定がある方は列名をアルファベットにしておきましょう。私はPowerAppsで展開する予定はないので「締切」としましたが、どんな名前でもよいですよ。
「わかりやすい形式」を「はい」に変更すると、「○日後」という表記になります。これが便利な時もありますが、今回の目的には合わないので、「いいえ」にしてあります。
ここまでの設定が間違いなく終わった後にテストで新しいアイテムを入力すると、↑のようになります。
ここで↓画像のように日付が月/日/年になっている方はサイトの設定が米国時間になっていると思います。
あなたがサイト管理者の場合はこちらのdocsを見て、改善してください。管理者でない場合は管理者に連絡して、対処してもらいましょう。
Teamsのチームと連動しているサイトなら、チームの所有者が管理者なことがほとんどです。
7.「列の追加」→「その他」をクリックする。
8.「列の名前」を入力し、以下のように設定する。
私は「リマインド」という名前にしました。
・列の種類:集計値
・列の追加設定の「数式」「この式から返されるデータの種類」「日付と時刻の形式」を以下のように入力。
この数式は「締切の4日前の日付を入力する」という意味です。
なので年月日の「日」にあたる部分をマイナス4しています。
1か月前ならMONTH部分をマイナス1、1年前ならYEAR部分をマイナス1してくださいね。
このような↑リストが出来ていれば、OKです。
■Power Automateで自動通知フローを作る
まずフロー全体を見てみましょう。
毎日10時に自動的に動くようにしています。
今日=リマインド列の日だったら、Teamsに通知する。
今日≠リマインド列の日だったら、何もしない。
そういうフローです。
クラウドフローなので、PCをシャットダウンしている休みの日も稼働してくれます。
ポイントはPower Automate・SharePointのタイムゾーンを変換すること!
これをやらないと条件分岐でtrueにならず、痛い目をみます。
さて、それでは1個ずつ作り方を説明していきます。
1.「+作成」→「スケジュール済みクラウドフロー」をクリックする。
2.フロー名・開始日・時間・繰り返し間隔を設定し、「作成」をクリックする。
すべてお好みでどうぞ。私は↑スクショのように設定しました。
リマインド日の曜日がバラバラなら毎日確認させるのが、漏れがなくていいですよ。
3.↓のようなトリガーが作成されるので、「新しいステップ」をクリックする。
4.「現在の時刻」で検索し、「現在の時刻-日時」をクリックする。
私は名前を変更して、「PA:」と入れていますが、このような↑アクションが追加されます。
※これ以降、「○○で検索し~」と出てきたら、すべて新しいステップを追加しています。
5.「タイム」で検索し、「タイムゾーンの変換-日時」をクリックする。
6.「基準時間」に4で追加した「現在の時刻」アクションで取得した「現在の時刻」をクリックで入れる。その他はスクショの通りに設定する。
現在の時刻アクションで取得した時間はPower Automateでの時間なので、協定世界時です。なので日本時間に変換しています。
私はここも名前を変更して、「PA:」と入れています。
7.「複数の項目」で検索し、「複数の項目の取得」をクリックする。
8.「サイトのアドレス」「リスト名」を設定する。
サイトのアドレス・リスト名ともに「V」マークをクリックすると、自分が閲覧できるものが出てくるので、該当するものを選びましょう。
9.もう一度5と同じように検索して、「タイムゾーンの変換」を追加する。
今回の「タイムゾーンの変換」アクションはスクショのように設定する。
基準時間は「複数の項目の取得」から「リマインド」列を選択。
今回はSharePointの時間なので、太平洋標準時から日本時間に変換します。
複数の項目を取得しているので、自動的にForEach処理になり、最終的に↓のスクショのようになります。
10.「条件」で検索し、「条件-コントロール」をクリックする。
11.条件分岐を設定する。
両方とも「変換後の~」となっていて、わかりにくいですが
6で作ったPower Automateの変換後の時間=9で作ったSharePointリストのリマインド列の変換後の時間という意味です。
12.条件分岐「はい」で「アクションの追加」をクリックし、「チャネル」で検索。「チャットまたはチャネルでメッセージを投稿する」をクリックする。
13.スクショのように設定する。
投稿者はフローボット・ユーザー・Power Visual Agentsから選べます。
ユーザーを選んだ理由は投稿者を自分にしておけば、問い合わせ先がわかりやすいし、あとから編集も可能だからです。
Message・Subjectの「Title」・「締切」はすべて「複数の項目の取得」から選んでいます。
ここではやっていませんが、コードビューで<at>メールアドレス</at>と直打ちすればメンションも可能です。
条件分岐の全体感はこんな感じです。
いいえの方には何も入れていません。つまりいいえの時は「何もしない」という指示にしてあります。
以上で終わりです。向かって右上のテストボタンからテストしてみてくださいね。
実はこのアドベントカレンダー、前日は前川さん、明日はTeams踏み込み活用術の太田さんということで完璧に私が椅子取りゲーム間違えたな……とビビり倒しています。
前日と明日だけなく、他の日もすごい人祭りなので、ぜひそちらをみてくださーい!!!
それではごきげんよう。