背景
- 会社でOffice365を導入したことでslackからTeamsにチャットツールが変わった
- 今までslackのリマインダーを常用していたけどTeamsにはそんな便利な機能は無い
- Teamsは使いづらい(愚痴)
- PowerAutomateっていうちょっと面白そうなものがあるので試しに作ってみた
概要
- SharePointに通知したい内容、日時を記録したExcelを配置
- 5分間隔で起動し、日時が一致している場合はTeamsに通知
- 日付指定がない場合は毎日通知
内容
SharePoint上にExcelファイルを作成
こんな感じに簡単な一覧を作成。
Excelからデータを取得するには、取得したいデータがテーブルである必要があるので注意。
PowerAutomateでフローを作成
PowerAutomateの作成画面から、今回はスケジュール実行なので予定フローを作成を選択
フロー名と繰り返し間隔を指定して、作成する。
ここだけ後で画像を取ったので、名前が違うのは許してください…
フローの中身
Recurrence
予定フローを作成画面で指定した通り、5分間隔で実行するように初期状態で設定されている。
メッセージをフローボットとして投稿を使うので多分@メンショントークンを取得は無くても良い。
表内に存在する行を一覧表示
SharePoint上に作成したExcelファイルを指定する。
Apply to each
Excelから取得した行数分繰り返す。
ループ内のアクションで条件分岐を作成し、通知を送る条件に一致しているかを判定する。
- 日付が一致しているか(またはブランクか)
- 時刻が一致しているか
FormatDateTime関数の引数は以下の通りに指定する。
現在の日付を取得
formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'), 'yyyy/MM/dd')
現在の日時から時間を取得
formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'), 'HH')
現在の日時から分を取得
formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'), 'mm')
メッセージをフローボットとして投稿
メッセージの送信先、メッセージの内容を指定する
結果
こんな感じにFlowからメッセージが届く
感想
- アクションや関数の設定内容が分かりづらい
- 最初はとっつきづらいけれど慣れればなんとなくで作れそう
- Teamsは使いづらい(愚痴)