0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M365とTeamsアダプティブカードを使用したチーム運用

Last updated at Posted at 2024-12-01

今回、こちらのアドベントカレンダーに参加させていただいております

初めにこの一年を振り返って

この一年を通して、M365を使用して色々と作りました
業務改善の提案をしたりとしましたが
M365中心で自チーム運用のツールを作成してみて色々な知見が得られました

今回は、自身のチーム用に作成した、報告ツールについて書きたいと思います

構成はこんな感じ

 チーム運用でM365を使用したノーコード、ローコードで構築することにして
 以下のような構成で、運用開始

 image.png


こだわったこと1 【画面構成】

実際使用しているアダプティブカードのイメージ
image.png

入力内容は
・勤怠予定時間
・勤務状況
・勤務場所
・タスク予定(タスク名※1、作業カテゴリ、割合※2)
・コメント

※1:タスクはリーダが事前にメンテナンスしてメンバーへの割り当てを設定しておく
  基本的には毎日チェック、
 障害発生時は割り当てられたメンバーにタスクが表示されるように自動設定
※2:割合は、一日の作業量を割合で朝夕で1~10まで入力させて、
 夕方の報告後に一日の作業時間に対して時間に算出しなおす
 この方が精神的に入れやすいと思ったので(考えさせたくない)

こだわったこと2【予定タスクは複数あるので増減可能に】

ヘッダ行は固定で作成済としておいて
行自体は、カード送信時に対象の件数分テーブル行を作成するようにしておく※
その際に、各行の変数名(id)には、ループの添え字(何番目)かをくっつけるようにしておく
※メンバーが担当してアクティブなものや、保守(障害)発生しているタスクを動的に生成するため

"id": "taskEx@{items('Apply_to_each_2')}"

image.png

{
    "type": "TableRow",
    "cells": [
        {
            "type": "TableCell",
            "items": [
                {
                    "type": "Input.ChoiceSet",
                    "choices": @{variables('TaskList')},
                    "placeholder": "追加タスク",
                    "id": "taskEx@{items('Apply_to_each_2')}"
                }
            ]
        },
        {
            "type": "TableCell",
            "items": [
                {
                    "type": "Input.ChoiceSet",
                    "choices": [
                        {
                            "title": "開発",
                            "value": "開発"
                        },
                        {
                            "title": "保守",
                            "value": "保守"
                        },
                        {
                            "title": "調査",
                            "value": "調査"
                        }
                    ],
                    "id": "categoryEx@{items('Apply_to_each_2')}",
                    "spacing": "None",
                    "placeholder": "作業"
                }
            ]
        },
        {
            "type": "TableCell",
            "items": [
                {
                    "type": "Input.Number",
                    "min": 0,
                    "max": 10,
                    "id": "rateEx@{items('Apply_to_each_2')}"
                }
            ]
        }
    ]
}

こだわったこと3 【アダプティブカードの28kb制限対応】

アダプティブカードの送信には28kbまでの制限があるため、
項目を増やしたり、コンボボックスに選択肢を多く入れると、すぐに28Kbを超えてしまいます
ただ、アダプティブカードデザイナーで作ると、可読性のためインデントの空白、改行などが多く含まれるため
それを除去するだけでもかなりの圧縮になります
圧縮行わないカード内容の変数を作成して格納して起き、圧縮用の変数に対して、余剰文字を除去した結果を格納して送信することで、28Kb制限をクリアできました

image.png

以下のように置き換えして除去してます

replace(replace(variables('AdCardBase'),decodeUriComponent('%0D'),''),' ','')

こだわったこと4 【メンバーへのフィードバック】

1)メンバーが行う、工数算出の手間を軽減
image.png

2)管理のインタフェースとして、SharePointを使用する
image.png

3)運用に必要な情報の可視化
image.png


日々、運用をしてみて

8月にその成果?をライトニングトーク枠ですがあるコミュニティのイベントで登壇をして
以下がその資料です

この先を考えて

日々、この構成で運用を行っていますが
フィードバックは、メンバーに対して行っていましたが
その日で使用されるものになっている為、今後は蓄積したデータを
活用する方法を模索しています。


以上、閲覧ありがとうございました。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?