4
2

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】席替えするやつ作ってみた

Last updated at Posted at 2024-02-20

はじめに

メンバー間のコミュニケーションを活発化させるために、毎週席替えを実施することになりました。
自動でやってくれたら楽だなー、という気持ちよりはただただPower Automateを触りたかったので、席替えするやつ作ってみました。

要件

席替え用のフローを作るにあたって、チーム内で下記のような要件が挙がりました。

  1. 他PJと接する席は自社の社員(以後グループA)が座ること
  2. 席替えついでにレトロスペクティブのファシリテーターも決めること
  3. ファシリテーターはSM以外が行うこと

上記の要件を満たせるように適当に作っていきます。

完成イメージ

image.png
最終的にこんな感じになります。

フロー全体

image.pngimage.png

各ステップ詳細

1. グループA

image.png
グループAのメンバ情報をオブジェクト配列に入れています。

idは下記のように設定しており、100~199の乱数を生成しています。
idに乱数を入れることでメンバの順番を入れ替え、席順とファシリテーターをランダムにしています。

string(rand(100, 199))

2. プロパーソート後

image.png

sort(outputs('グループA'),'id')

「1. グループA」で作成したオブジェクト配列をidでソートしています。
乱数が入っているidを昇順にソートすることでメンバの順番をランダムに入れ替えています。

3. 残りメンバ

image.png

variables('groupA')[2].name

グループAの2名とグループA以外のチームメンバをオブジェクト配列に入れています。

グループAの2名を入れているのは、要件「他PJと接する席は自社の社員(以後グループA)が座ること」を満たすためです。
他PJと接する席は2席であるため、余った2名は残りメンバと同じ扱いで再度順番を入れ替えています。

変数「グループA(groupA)」はソート済みであり偏りが発生してしまうため、グループAから取得したメンバのidも再生成するようにしています。

4. 残りメンバソート後

sort(outputs('残りメンバ'),'id')

「2. プロパーソート後」と同様に「3. 残りメンバ」をソートしています。

5. メンバー全体

image.png
ファシリテーターの要件を満たすために配列にSM(佐藤)以外を入れています。

オブジェクト配列に役職用のプロパティ値を入れてもいいかなと思いましたが、Power Automateでそこの識別処理を実装するのが(検討時点で)面倒だったのでやめました。

6. ファシリ

variables('member')[rand(0,int(length(variables('member'))))]

ファシリを決めてるだけです。

もっときれいに書けないのかなーとは思っていますが、これで動くしメンバーが変わってもこの部分の修正は必要ないので放置しています。

7. Htmlからテキスト

image.png
投稿時の体裁を整えています。
テーブル形式で出力したかったのでHtml直書きです。
色分けも同じく直書きです。

この部分はもっときれいに実装したい気持ちがありますが、考えるのが面倒で放置しています。
実装が簡単でもっと良い方法があれば教えてください(他力本願寺)

8. チャットまたはチャネルでメッセージを投稿する

ss.png
Teamsのチャネルに投稿しているだけです。
メンションの必要はないため、ただただ投げてるだけですね。

終わりに

普通にプログラムを組んだ方が楽な気がしましたが、やったことないことをやるのは楽しかったで良しとしましょう。

フロー作成中に操作性があまり良くないと感じましたが、これは慣れの問題なんですかね?
フローを作成してから記事を書くまでにUIにアプデが入っていて、そこで操作性が改善されたみたいなので、今後更に良くなればいいなー・・・

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?