今回、こちらのアドベントカレンダーに参加させていただいております
初めにこの一年を振り返って
この一年を通して、M365を使用して色々と作りました
業務改善の提案をしたりとしましたが
M365中心で自チーム運用のツールを作成してみて色々な知見が得られました
今回は、自身のチーム用に作成した、報告ツールについて書きたいと思います
構成はこんな感じ
チーム運用でM365を使用したノーコード、ローコードで構築することにして
以下のような構成で、運用開始
こだわったこと1 【画面構成】
入力内容は
・勤怠予定時間
・勤務状況
・勤務場所
・タスク予定(タスク名※1、作業カテゴリ、割合※2)
・コメント
※1:タスクはリーダが事前にメンテナンスしてメンバーへの割り当てを設定しておく
基本的には毎日チェック、
障害発生時は割り当てられたメンバーにタスクが表示されるように自動設定
※2:割合は、一日の作業量を割合で朝夕で1~10まで入力させて、
夕方の報告後に一日の作業時間に対して時間に算出しなおす
この方が精神的に入れやすいと思ったので(考えさせたくない)
こだわったこと2【予定タスクは複数あるので増減可能に】
ヘッダ行は固定で作成済としておいて
行自体は、カード送信時に対象の件数分テーブル行を作成するようにしておく※
その際に、各行の変数名(id)には、ループの添え字(何番目)かをくっつけるようにしておく
※メンバーが担当してアクティブなものや、保守(障害)発生しているタスクを動的に生成するため
"id": "taskEx@{items('Apply_to_each_2')}"
{
"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制限をクリアできました
以下のように置き換えして除去してます
replace(replace(variables('AdCardBase'),decodeUriComponent('%0D'),''),' ','')
こだわったこと4 【メンバーへのフィードバック】
2)管理のインタフェースとして、SharePointを使用する
日々、運用をしてみて
8月にその成果?をライトニングトーク枠ですがあるコミュニティのイベントで登壇をして
以下がその資料です
この先を考えて
日々、この構成で運用を行っていますが
フィードバックは、メンバーに対して行っていましたが
その日で使用されるものになっている為、今後は蓄積したデータを
活用する方法を模索しています。