yukioのアウトプット

PowerApps、PowerAutomateなど、勉強した内容、実践した内容を、自分にわかるようにかみ砕いてアウトプットしています。

【PowerAutomate】週替わりの当番を自動でTeamsに通知する(2-5)~(3)フロー作成続き

※2022年8月時点の情報です。

 

yukio-ms365.hatenablog.com

こちらの記事の続きになります。

長らく放置してしまいましたが、続きを書いていきたいと思います。

 

(2-5)次の当番を計算する

いよいよ、取得してきた「今週の当番」から「来週の当番」を計算する部分に入ります。

 

(2-5-1)一時変数「tmp」に今週の当番IDを入れます。

「変数の設定」アクションを使います。

自動的に「Apply to each」で囲まれてしまいましたが、さして問題ではありません。

 

(2-5-2)計算する

 前回、(2-3-2)で初期化した変数(まずは「t1」)に、計算結果を保存していきます。

 ※3人ローテなので、(2-5-1)(2-5-2)を3回分行います。

 

ここで、計算手順の解説

計算の手順は次のとおりです。

①今週の当番のIDを保存

②1を引いて「0始まりの連番」にする

③3人ローテなので3を足す

④人数(tn)で割った余りを求める

⑤1を足して「1始まりの連番」に戻す

さきほどの「変数の設定」の中で、上記②~⑤を、1つの式に詰め込んでいます。

 

なぜこのような細かい手順を踏んでいるかと言いますと・・・

「条件分岐を使いたくない」という変なこだわりがあったからです(笑)

「じゃあ3足すだけでよくね?」と思ったんですが・・・

この画像の黄色い部分にあるように、

単純に3足すだけだと、ローテ人数より多い数字が出てしまうときがあります。

 

ここで私はなんとな~く

「3足した後に人数で割って余りを出したらよくね?」

と思いました。

ですが・・・

この図のように「余り0の時にどうするか」問題が出てきます。

 

試行錯誤の結果、この手順にたどり着いたわけです。

 

ある程度勉強が進んできた今、このブログを書きながら思っていますが、

こんなややこしいことをしなくても、

「3足した結果を見て、人数以上の値が出てきたら引き算する」という

条件分岐でも十分です。(笑)

 

 

(2-6)計算した値をリストに書き込む

 SharePointの「項目の作成」を使って、

 今まで計算してきた各種値を書き込んでいきます。

 

このフローはここで終了です。

 

 

(3)Teamsに通知するフロー

それでは、Teamsに通知するフローを作っていきます。

 

(3-1)トリガー:SharePointに項目が作成されたとき

 動いてほしいタイミングは「RotationListに項目が作成されたとき」なので

 そのようなフローを作成します。

 

(3-2)Teamsのチャネルにメッセージを投稿する

 作成されたリスト項目から各種値を取ってきて、

 Teamsのチャネル投稿文を作成します。

 

これですべての設計が完了です!

このように通知されます。

 

 

さいごに

はじめてのPowerPlatform関連の記事をシリーズもので書くという暴挙に出ました。

ブログを書く力が不足している中での記事だったので、読みにくい部分などがあったかと思います。

次回以降は、小ネタの投稿で練習したいと思います(笑)