6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Automateでslackにスケジュール通知を出してみたよ

Posted at

はじめましてこんにちは、役立たずです!
普段はMTやWPのテーマを書いたりサイト設計をしたりお客さんとお話ししたり、
稀にデザインのチェックをしたりリダイレクトを書いたり雑魚いjsやphpを書いたり、
浅く狭くなんだかよくわからないことをやっています。
IT業界に転職して早8年、未だに情弱の極みではございますが、
恐れ多くも天才たちが集うすごい場所、Qiitaに初めて投稿します。
とはいえ、自分ごときが技術的なすごいことを書けるはずもありませんので、
今日は以前 @tel-bitstar さんに教えていただきながら作ったPower Automateでslackにスケジュールを流すべんりなやつをご紹介しようと思います。( @tel-bitstar さんありがとうございます!)
わかってねーやつが書いている文章ですので、生温い目で流し読みしていただけると幸いです。

Power Automateってなに?

MicroSoftから提供されている これ です。office365を使っている方はアプリ一覧にあるかも?

なにかとなにかを連携させたりして、すごいなにかをしてくれる自動化ツールだと思っています。(理解が浅い)

どんなことをしたの?

webサイトのサーバ移設のスケジュールを管理しているエクセルと連携させて、
更新期限日・リリース日の〇日前にslackのチャンネルに通知を出す、というフローを作成しました。

  • いつ移設するのか
  • リリースNo
  • ドメイン名
  • IPアドレス

がわかるようになっています。
キャプチャ.jpg

作ってみよう!

最終的にこんな形になります。
フローの編集-Power-Automate (17).png

準備するもの

  • スケジュールが記載されたエクセル(SharePointに格納済み)
  • Power Automateの画面
  • リファレンス

フロー作成のステップ

  1. 実行タイミングの設定
  2. エクセルの準備
  3. エクセルの内容を取得・操作
  4. 移設予定日の日付を直す
  5. 条件分岐(移設予定日の〇日前だったら、という条件)
  6. slackに投稿

実行タイミングの設定

Power Automateの画面でいつフローを実行するか(slackに通知を流すか)のタイミングを設定します。

「スケジュール済みクラウドフロー」を選んで
フローの管理-Microsoft-Power-Automate.png
フロー名、実行タイミングを決めます。
毎日チェックして条件にあてはまるものがあれば1回流す、でOKかな~と思ったので、
開始日はお好みのタイミング(始業時に見れるようにしたいなら09:00AMとか)で、繰り返し間隔は「1日」に設定しました。
フローの管理-Microsoft-Power-Automate (1).png

エクセルの準備

こんなかんじのslackに流したい要素が記載されている表を作ります。
googleスプレッドシートを使う場合は先頭行がラベルになるようにしてあげると細かい設定がいらなくなるのでおすすめです。
Book2-xlsx.png
使いたいデータの範囲を選択して、テーブルに変更します。
Qiita用PowerAutomateのデータ.png
「先頭行をテーブルの見出しとして使用する」にチェックを入れて、OKボタンをクリックします。
Qiita用PowerAutomateのデータ (1).png
こんなかんじのテーブルになります。
範囲間違ったわ~という場合は、テーブル右下にある黒閉じ鍵括弧でぐいぐい範囲を動かしましょう。
Qiita用PowerAutomateのデータ (2).png
テーブルに名前を付けてあげると後々管理しやすくなるかも?
Qiita用PowerAutomateのデータ (3).png

エクセルの内容を取得・操作

Power Automateの画面に戻って、エクセルの内容を取得・操作します。

エクセルの内容を取得

「+新しいステップ」をクリックして、「Excel Online」を選びます。
フローの作成-Power-Automate.png
「表内に存在する行を一覧表示」をクリックします。
フローの作成-Power-Automate (1).png
「場所」「ドキュメントライブラリ」でエクセルが保存されている場所を選んで、
「ファイル」で使うエクセルを選択します。
「テーブル」は上段で名前を付けたテーブル名が表示されるはずなので、それを選びましょう。
フローの編集-Power-Automate (1).png
これでエクセルの内容を取得できました。

エクセルの内容を操作

今のままではデータの塊(jsonなのかな?わかってない)をごりっと取得しただけなので、
持ってきたデータをぐるぐる回して日付を比較します。

「+新しいステップ」をクリックして、検索ボックス「each」と入力します。
アクションの中に「Apply to each」という項目が出てきますので、クリックします。
フローの編集-Power-Automate (3).png

テキストボックスをクリックすると動的なコンテンツを選べるようになるので、valueをクリックします。
フローの編集-Power-Automate (4).png

移設予定日の日付を直す

エクセルから持ってきたままだと日付はシリアル値になっているので、日付に変換します。
「組み込み」の「作成」をクリックして
フローの編集-Power-Automate (5).png
移設予定日を入れます。
フローの編集-Power-Automate (6).png
テキストボックスに「時間」と入れて「時間への追加」をクリックします。
フローの編集-Power-Automate (7).png
基準時間には「1900/01/01」と入力したいところではありますが、Power Automateではずれてしまいます。
ので、「1899/12/30」を基準値にします。
下記の記事を参考にさせていただいたので、ぜひ読んでみてください。

「間隔」にエクセルから取得したシリアル値を入れ、「時間単位」を「日」にします。
int(outputs('作成'))
int … 数値に直す
outputs … アクションの出力を返す
だと思っていますが、細かいことは リファレンス を読んでみてください。

フローの編集-Power-Automate (8).png

読みやすいように日付のフォーマットをyyyy/M/dに変更します。
formatDateTime(body('時間への追加'), 'yyyy/M/d')
body … 「時間への追加」の出力結果を返します。
formatDateTime … 指定した形式でタイムスタンプを返します。
これも細かいことは リファレンス を読んでみてください。

フローの編集-Power-Automate (9).png

条件分岐(移設予定日の〇日前だったら、という条件)

今度は条件分岐を作ります。
「コントロール」→「条件」をクリックします。

フローの編集-Power-Automate (10).png

左側の「値の選択」に前段で作成したタイムスタンプを入れます。

フローの編集-Power-Automate (11).png

右の「値の選択」に formatDateTime(addDays(utcNow(), 3), 'yyyy/M/d') を入れます。
utcNow … 現在のタイムスタンプを返します。
addDays … タイムスタンプに日付を追加します。ここでは3日後にしています。

フローの編集-Power-Automate (12).png

slackに投稿

「はいの場合」(今日の日付が移設予定日の3日前だったら)はslackのチャンネルにメッセージを投げます。
検索窓に「slack」と入れ、「メッセージの投稿(V2)」を選択します。

フローの編集-Power-Automate (13).png

「チャネル名」投稿先のチャンネルを選択します。
リストに出てこない場合はカスタム値を入力します。チャンネルID(チャンネルのURLの末尾)を入れましょう。
DMの場合も同じ(だったはず)です。
https://ワークスペースの名前.slack.com/archives/チャンネルID

フローの編集-Power-Automate (14).png

「メッセージテキスト」に投稿内容を入力します。
お好みで formatDateTime(outputs('作成_2'), 'yyyy/M/d(ddd)') にして
移設予定日に曜日を加えてもよしだと思います。
メンションを付けたい場合は <@なんとやらさん> のように <> でくくってください。
フローの編集-Power-Automate (18).png

保存ボタンをクリックしたら、テストを行いましょう。

作ってみた・使ってみた感想

当たり前ですが勝手に通知が流れてくれるので、日付の確認漏れがなくなりました。
SSL更新のお知らせも同じ仕組みで通知を流すように変更したので、
更新前夜に心配になって目が覚めることも少なくなりました。(Zabbix使えよって話ではありますが…)
エクセルだけじゃなくてバックログの課題の状態とかも同じような仕組みで取れたらいいな~と思いましたが、
HTTPのアクションはプレミアライセンスじゃないと使えないらしい?ので、お知らせメールを使って何とかしたいなあと思いました。

みなさまのお仕事が少しでも楽になるヒントになれば幸いです。
さようなら~。

参考文献

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?