LoginSignup
2
0

More than 1 year has passed since last update.

Power Automateによる「検温報告」の仕組み(2) - 検温報告を求めるフロー

Last updated at Posted at 2022-04-24

概要

前回の続きです。
Power Automateによる「検温報告」の仕組み(1)
Power Automateによる「検温報告」の仕組み(2) - 検温報告を求めるフロー
Power Automateによる「検温報告」の仕組み(3) - 検温報告を受けるフロー

毎日20時に、スケジュール実行してユーザーに一斉にメッセージを投稿するフローを作成します。
フローの概要はこんな感じです。
2022-04-23_21h34_31.png

実行ステップ

トリガー

トリガーは、毎日20時に実行する繰り返しトリガーです。
2022-04-24_18h56_39.png

LINE WORKS APIのシークレット取得

最初にLINE WORKSのAPI IDなどのシークレットを取り出しています。
シークレットはAzure Key Vaultに格納しています。
各アクションの設定で、「セキュリティで保護された出力」をオンにしておくとよいと思います。
LINE WORKSのAPIを触った方なら、見たらわかると思いますが、新APIにはまだ対応していません。(そのうち直します)
その後の変数の初期化や、JSONの解析は、LINE WORKSのシークレットをJSONにして、解析しているだけです(参照しやすくするためだけの処理)。

メンバーリストの取得

メンバーリストを取得するAPIを叩きます。
2022-04-23_21h37_08.png
旧APIでは、最大のページサイズが100名ぶんとなっているため、それ以上のユーザーがいる場合は、ループを回してアレイ変数に格納するとよいです。
当社では、100名までいくことは当分なさそうなので、1回叩いて終わりにしています。
LINE WORKS Developers - メンバーリスト照会

ユーザーごとの処理

条件アクションの中身です。
2022-04-23_22h18_45.png
ユーザーリストが正常に取得で来たら、Apply to Eachでユーザーごとにループを回します。
「条件 2」はメンバーリストに外部ユーザーやBotも含まれるかと思って付けたのですが、社内のメンバーだけだったので必要なかったですね。
もし何らかの絞り込みを行うのであれば、アレイのフィルター処理アクションのほうが階層が深くならず、スマートだと思います。

行IDの設定

ユーザーから報告が来た際にExcelのリストと照合するためのキー列として利用するため、現在時刻を文字列としてIDに利用しています。
ミリ秒単位にしておけばかぶることはないかなと安直に決めましたが、かぶらなければExcelシートの行番号でもなんでもいいと思います。
2022-04-23_22h28_12.png

formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),'yyyy/MM/dd_HH:mm:ss.fff')

Botによるメッセージ投稿

メッセージをJSONでちまちま書いていきます。
選択アクションを使ってごにょごにょすると、もう少しスマートに書けると思いますが、ご勘弁。
LINE WORKS Developers - トーク共通プロパティ
2022-04-23_22h31_25.png
Callbackを受け取ったときに、紐づけできるよう、postbackに現在時刻から生成したIDをJSONで書いています。(要URLエンコード)

{
	"q": "q1",
	"id": "@{variables('ID')}"
}

(q は質問番号を表します→検温報告を受けるフローで使用)

Excel への記録

回答があったときに記録するように、Excelにあらかじめ行を作っておいて、このフローはおしまいです。
検温結果や咳などの列は、「検温報告を受けるフロー」で記入していくため、ここでは空欄のままです。
2022-04-23_22h39_11.png

まとめ

特段ひねりのないフローだと思います。
「検温報告を受けるフロー」は別記事で。

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