はじめに
ごきげんよう、百合宮桜(Miyu)です(*'▽')
一覧表シリーズの第3弾です!
今回は同じ担当者のタスクをひとまとめにして、一覧表に表示する方法を紹介します。
第1弾と第2弾はこちらにあるので、合わせてお読みください✨
やりたいこと
今回は同じ担当者のタスクをひとまとめにして、一覧表に表示する方法を紹介します。
第1弾・第2弾で紹介した方法の場合、1行に1データが入ります。
その為、担当者が複数のタスクを持っている場合、その人の名前が何度も表示されます。これだと 速くやれよ という圧が強くて、いささか鬱陶しい感じがします。
そこで
- sakura さん → 「Qiita の記事を書く」
- Taro さん → 「イベントの日程調整」「イベントのリハーサル」
というように 担当者ごとにタスクをまとめて、1行で表示 できるようにします。
フローの概要
今回は以下のステップで実装しました。
- 担当者の抽出
- 担当者ごとにタスクをまとめる
- 2 をHTML テーブル化
- Teams に投稿
3 以降は第1弾・第2弾と同じです。
その為、本稿では 1~2 を重点的に解説します。
実装方法
サンプルデータ
今回のサンプルデータは以下の通りです。
[
{
"タスク": "Qiita の記事を書く",
"担当者": "AAA@example.com"
},
{
"タスク": "イベントの日程調整",
"担当者": "BBB@example.com"
},
{
"タスク": "イベントのリハーサル",
"担当者": "BBB@example.com"
}
]
同じように実装したい方は作成アクションに入れ込んでご利用ください。
担当者を抽出する方法
選択アクションでサンプルデータから担当者の情報だけを抽出します。
そのあと、Union 関数で重複を削除します。
union(
body('担当者の抽出:選択'),
body('担当者の抽出:選択')
)
Union 関数の詳しい説明は以下の記事をご確認ください!
https://qiita.com/YurimyMiyu/items/2ed870789303568b8fce
これで一意の担当者リストができます。
[
"AAA@example.com",
"BBB@example.com"
]
担当者ごとにタスクをまとめる方法
担当者ごとにタスクをまとめるためにはサンプルデータからその担当者のタスクだけを洗い出す必要があります。その為、タスクを担当者ごとの改行あり文章に変換し、一覧表作成用の配列に追加する処理を作ります。
-
一覧表を作成用の配列を用意します
-
担当者ごとの繰り返し処理(それぞれに適用する)を作ります
-
繰り返し処理の中で担当者ごとのタスクの絞り込みを行います
出力結果は以下のようになります。
{ "body": [ { "タスク": "イベントの日程調整", "担当者": "BBB@example.com" }, { "タスク": "イベントのリハーサル", "担当者": "BBB@example.com" } ] } -
3 の出力からタスクだけの配列を作成します
出力結果は以下のようになります。
{ "body": [ "✅イベントの日程調整", "✅イベントのリハーサル" ] }ここで Concat 関数を使って、✅ を入れているのはその方がかわいいからです。装飾が不要な方は item?['タスク'] だけでも問題ありません。
: -
タスクだけの配列を改行ありの文章にします
出力結果は以下の通りです。
{ "body": "✅イベントの日程調整<br>✅イベントのリハーサル" } -
一覧表用の配列変数に追加します
{ "body": { "name": "TaskTable", "type": "Array", "value": [ { "タスク": "✅Qiita の記事を書く", "担当者": "AAA@example.com" }, { "タスク": "✅イベントの日程調整<br>✅イベントのリハーサル", "担当者": "BBB@example.com" } ] } }配列変数「TaskTable」は
- 繰り返し処理1回目:1回目のデータ
- 繰り返し処理2回目:1回目+2回目のデータ
というように処理が完了したデータすべてが入っています。
:
これで一覧表用の配列が作れました。
あとは第2弾でやったように担当者をメンション化して、Teams のメッセージに追加しています。
おわりに
今回は同じ担当者のタスクをひとまとめにして、一覧表に表示する方法を紹介しました。
これができるようになると、一覧表の見やすさが変わってきます。
ぜひマスターしてくださいね!
それではごきげんよう(*'▽')










