【Sampleアプリ】Teams用の組織階層アドレス帳

新年あけましておめでとうございます。
日本マイクロソフトのカスタマーサクセスマネージャーの岩田です。

早速ですが、年末年始、皆様はどのように過ごされましたでしょうか。
私は、まとまった時間を活用し、Power Platform でTeams用のSampleアプリケーション（組織階層アドレス帳）を作成しましたので、このブログでご紹介させていただきます。
アプリソース（Power AppsのZipパッケージ）や導入手順一式は、以下GitHub上に公開しました。
[Teams用の組織階層アドレス帳（Sampleアプリケーション）](https://github.com/nagaaki777/hierarchical-address-books)
Code → DownLoad ZIPでダウンロードできます。

<font color="Red">※免責事項</font>
<font color="Red">本ソフトウェアで発生するいかなる問題に関して、私、及び私の所属する日本マイクロソフトは保証しませんので、利用者様の責任において導入してください。</font>

### Teams用の組織階層アドレス帳
作成したSampleアプリケーションは、以下のような組織階層のアドレス帳です。
![Top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/29b60359-bf73-3725-bb78-190bb2f58f95.png)

アプリを起動すると、左に自分が所属する組織階層が展開され、右にメンバー一覧が表示されます。
利用用途は、以下になります。
・自分自身のプロフィール（自己紹介、専門知識、趣味）をDelveに登録
・人を検索し、チャットを実施
・選択した複数の社員の空き時間を検索し、Teams会議開催通知を送付

### データソース
本Sampleアプリは、Office365のAzure Active Directoryユーザー情報、及び、SharePointリストの２つをメインのデータソース利用しています。
SharePointには、以下2つのリストを作成してデータを投入します。詳細は導入手順書をご確認ください。
・ListOrg：組織階層情報のデータ
・ListEmp：社員基本データ。どの組織に所属しているのかをListOrgと紐づける

自分自身のプロフィール登録は、Delveに登録しています。（登録ボタンを押すと裏でPower Automateが実行されます）

**プロフィール登録のPower Automate**
![UpdateProfile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/b30fd067-ff42-53e3-2888-cbc094180d00.png)

### 参考にした情報
本アプリ作成において参考にした情報を記載します。

Teams会議開催通知機能は、私の同僚が作成した「日程調整アプリ」をそのまま利用しています。
[すぐ使える！ Microsoft Teams にインストールできる日程調整アプリ](https://www.youtube.com/watch?v=_hvbmCFT1Dw)

Power Apps で組織階層を表現する方法は、以下の情報を参考にしました。
[#PowerApps で TreeView Controlを作る](https://qiita.com/h-nagao/items/73c5192c6f268383ff5e)

### 最後に
「組織階層で人を検索する」という習慣（？）は、他国にはない日本独特の習慣のようです。
Teamsのような当社アプリケーションにビルドイン実装される日を待つよりは、今回のようにアプリを作ってしまうか、もしくは以下のようなサードパーティ製アプリを導入する方が賢明です。
[Address Look for Microsoft Teams（ビービーシステム社）](https://look.bbsystem.co.jp/addresslook-for-microsoft-teams)
[PHONE APPLI PEOPLE（Phone Appli社）](https://phoneappli.net/product/service/papeople/)

いががでしたでしょうか。
時間の都合上、以下のような機能は実装できなかったため、このSampleアプリをベースに、様々な機能を追加してご活用いただければ幸いです。
・プレゼンス表示（連絡可能・会議中・応答不可等を色で表示）
・プロフィールキーワード（自己紹介、専門領域、趣味）での人の検索
・登録されたプロフィールデータを元に、自動でチームを作成（例えば、特定の趣味のチームを自動で作成＆メンバー登録。業務以外の偶発的なコミュニティを生成する）

### 【備考】アプリケーションの画面
**自分自身のプロフィール（自己紹介、専門領域、趣味）をDelveに登録**
![Top2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/358902cc-698c-d1f8-1921-f7a5201f19e4.png)

![Profile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/6499fd71-29b1-b2ad-f0be-61d8d645ba8e.png)

**人を検索し、チャットを実施**
![Search1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/b9b1b6bd-9747-c37e-c18c-1b26e66d0874.png)
![Search2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/0757dad3-8c59-9204-821b-ffa8b42c4182.png)
![Search3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/cf4049f9-0461-7a22-10d4-4758aecebc59.png)
![chat.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/9ca5a538-e909-e475-8c3a-4263881d4c12.png)

**選択した複数の社員の空き時間を検索し、Teams会議開催通知を送付**
![select.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/7fd4f70a-7c85-9e67-8f8a-34c24d1fd97b.png)
![Meeting1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/225e4005-4262-4d40-0bde-174517622569.png)
![Meeting2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1552155/e6d34a49-c5de-5e6e-705a-dce4f9e96a88.png)