掲題のフローの解説編その1です。
フローはこちらからダウンロードできます。
github.com
概要編について
今回の投稿は概要編に記載したフローの解説編です。概要編は以下のリンクから参照してください。
wataruf.hatenablog.com
この回で解説する範囲
解説する範囲のフロー図
この範囲で解説するステップは以下の通り
- トリガーとした投稿の内容を取得
- このフローで確認対象とするメンバーの定義
- フローの返信先のIDを変数にセット
- 「スケジュール実行」と「即時実行」の分岐
- 「スケジュール実行」と「即時実行」の分岐後の処理
解説
1.トリガーとした投稿の内容を取得
このフローはTeams の「選択したメッセージの場合」というトリガーを使用しています。
「選択したメッセージの場合」トリガーを使うと、Teamsに投稿されている任意の投稿の操作メニューを起点としてフローを開始することができます。
フローを開始したときに「フローの実行タイミング(即時orスケジュール)」と「未完了者にメンションをするかどうか」を入力させる画面は、アダプティブカードのデザイン画面を使っています。
※この解説編ではフローの解説を中心にしたいため、アダプティブカードの操作説明については割愛します。
次に「メッセージ詳細を取得する」アクションを使います。このアクションを使って、トリガーになった投稿の情報を取得します。
メッセージの種類で「グループチャット」を選択している理由については下記の投稿で解説しているので、参照してください。
wataruf.hatenablog.com
2.このフローで確認対象とするメンバーの定義
このステップで、「いいね」をしているかどうかを確認する対象のメンバーを指定しています。
このステップで指定したメンバーが、このフローの最終的なアクションである「Teamsへの返信」で記載する表に表示されます。
このステップでのメンバーの指定方法をテキストの手入力にしたのは、このインプットはフローの目的に応じてカスタマイズしたいという意図があります。
メンバーの定義方法の応用例
- Excelの表で作成したメンバー一覧を読み込む
- トリガーを実行した投稿があるチームのメンバーを読み込む
この部分をカスタマイズしてQiitaに投稿してくれたかたがいます。後輩が見つけてくれて知りました。
(`・ω・´) ウレシイ
qiita.com
フローの返信先のIDを変数にセット
このステップでは、トリガーとした投稿が「親の投稿」であっても「返信」であっても、このフローによる返信が正しく行われるための処理を行っています。具体的には、フローの返信先の投稿を変数にセットしています。
分岐条件の内容を言葉で表すと以下の通りです。
・トリガーの投稿の返信先(ReplyToId)が null である
→ つまり、トリガーの投稿自身が「親の投稿」である
→ そのため、 フローの返信先を「トリガーの投稿ID」にする
・トリガーの投稿の返信先(ReplyToId)が null でない
→ つまり、トリガーの投稿は「返信」である
→ そのため、フローの返信先を「トリガーの投稿の返信先(ReplyToId)」にする
- スレッド内の「返信」の返信先は必ずそのスレッドの「親の投稿」であることがポイントです。返信先を「返信」にするとフローの実行がエラーになる点に注意してください。
「スケジュール実行」と「即時実行」の分岐
このステップでは、フローを起動したときの選択によって「スケジュール実行」または「即時実行」に分岐します。
分岐の判定に使用している「choice」という動的コンテンツは、アダプティブカードで配置したコントロール(正確にはChoiceSet)が持つIDを表しています。
「スケジュール実行」と「即時実行」の分岐後の処理
前章で「choice」の値が「すぐに実行する」であるかどうかで「Yes」か「No」に分岐します。「No」の分岐にはアクションを配置していません。つまり、分岐による結果では何も行わず、後続のステップに進む(= 後続のステップを即時に実行する)ことを表しています。
Yes である場合は、スケジュール実行をセットした旨を返信したうえで、指定した日(yyyy/MM/dd HH:mm)時までフローを停止します。
この日時(yyyy/MM/dd HH:mm)はアダプティブカードから取得しています。
解説編その1は以上です。
追記:解説編その2を投稿しました。
投稿しました。
wataruf.hatenablog.com