2
0

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 3 years have passed since last update.

Microsoft Power AutomateAdvent Calendar 2020

Day 18

毎年クリスマスまでの残日数に合わせたメッセージをTeamsに通知させる【はじめてのPowerAutomate】

Posted at

Power Automateを触ってみたい

Power Platformに興味があって最近さわりはじめました。
PowerAutomateは使ったことがなかったので、簡単なフローの作成を挑戦してみようと思います。

作るフロー

クリスマスまでもうすぐ!!ということで、
毎年、クリスマスまでの残日数に合わせたメッセージをTeamsに通知させるフローを作ってみます。

中身

概要

毎朝10時になったら、PowerAutomateが起動して動作
今日の日付けから、クリスマスまでの残り日数を計算します。
残り100日、残り30日、残り12日に通知をして、
残り12日を切ると、3日に一回通知を飛ばします。
クリスマスイブと、クリスマスにはめでたい(?)文章が通知されます。

フロー詳細

  • 毎朝10時にこのフローを実行するようにします
  • クリスマスの日付けを設定、今日の日付けも計算しておきます

image.png

今日の日付けを取得するには、utcNow()を使います。
これで取得できるのはUTCの時刻なので、addHours()を使って9時間プラスし、JSTに変更し、ついでにMM-dd形式にも変更。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  • 先ほどの「今日の日付け」で取得した日付けを”今日の日付”という変数を作って格納します
  • クリスマスまでの残り日数を計算するので、残り日数を格納する変数も作って0で初期化しておきます
    image.png

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  • こっから今日の日付けになるまで日付けをどんどん追加して、クリスマスまでの残り日数をカウントしていきます。

Do utilというwhile文みたいなのを使います。
コントロールというアクションにあります。

今日の日付けがクリスマスの日付けと等しくなるまでこのループを続けさせます。
image.png

今日の日付けとクリスマスの日が等しくない場合は、今日の日付に1日プラスした値を計算します。
日付けを追加するのは、addDays()という関数を使用します。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  • ”今日の日付”の値を、上記に日付けに1ずつ追加で計算した日付に更新します。
  • クリスマスの日付けではないので残り日数に1日追加します

image.png

ここでDo utilはおわり。全体は以下
image.png

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  • 次に残り日数を3で割ったあまりを計算しておきます
  • 計算結果を変数を作って初期化します
    image.png
    残り日数を3で割ったあまり3日に一回通知するために用意した変数です。
    mod関数を使って、残り日数を3で割った余りを計算します。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  • メッセージを飛ばすかどうか分岐させる

私はたくさん分岐させたかったので大変なことになりました。
image.png
\\ ナニコレ珍百景 //
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

全部説明していたらクリスマスになってしまいそうなので、クリスマスイブとクリスマスの分岐の設定だけお見せします。

  • 残り日数が、0日に等しいか等しくないかで条件分岐させます。(これより前に、1日前か否かで分岐させてます。)
  • 分岐先でそれぞれメッセージを投稿させます。
    image.png

アクションでTeamsを選択すると、いろんなアクションが出てきますが、
検索で「メッセージを投稿する(V3)」を選択します。
各項目を埋めておわりです。

実際の画面

指定したチャネルにメッセージが投稿されていることが確認できました。わーい!
image.png

分かりにくかったところ

PowerAutomateをつかってBotまがいのものはできましたが、
やっていく中で、理解するのに時間がかかった部分がいくつかありました。

変数の作成、値の計算等どれ使っていいのかよくわからなくなる

値の計算+変数の作成+初期値代入が1つの箱でできると思っていたので、最初は理解に苦しみました。
PowerAutomateでは、計算に1つ箱が必要で、変数を初期化(作成)して結果を代入するで1つの箱使います。

条件分岐内では、変数の初期化できない

条件分岐内で使う変数を作りたくて、変数初期化を組み込んだら、分岐外じゃないとできないよとエラー。
これは何でできない仕様なんでしょう、、できるようにしてください!えらい人!

数値の計算式は「変数名/3」みたいな書き方はできない

Excelのような、こういう書き方はできません。
image.png

計算するのは計算できる関数があるので、そっちを使う。
例えば、割る時は、div関数を使います。
image.png

変数や計算した値が候補に出てこないことがある

あれ、、この変数つかえないのか?
と思って検索すると出てきます。

さいごに

PowerAutomateはそんなにコストなくいろいろできるイメージでした!
今回はお遊びで雑なものを作りましたが、次は業務などで役立つものつくってみたいです。

参考文献

ほぼこちらを参考にしてつくりました!
とても分かりやすかったです、感謝。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?