2022.03.03PowerApps│全社員を把握!Office365ユーザー&グループコネクタの使い方ツイートこんにちは、あんこ先生です。組織内の人間関係、把握したくありませんか?なぜなら、アプリユーザーごとに異なる上申先を探すのに一苦労だからです。組織図が特定社員にしか公開されていなかったり、人事異動が頻繁にあったりとか大きめの組織あるあるですよね。そんな問題をわざわざアプリで解決してしまおうというのが今回の目的です。やっていることはかんたん、自分を起点に会社のトップまで登っていき、そこから下に掘り進んでいくだけです。ユーザーが特定できているなら、Outlookのユーザー検索で詳細見た方がだんぜん早いです。それでもこの記事では、Office365ユーザーとグループコネクタの使い方を解説します。使える活用事例をコード付きで紹介します。誰かの役に立つはず!Office365ユーザーとグループコネクタについてOffice365に登録された組織内のユーザーと所属するグループを調べたり操作したりするコネクタです。本社の偉い人がちゃんと指示して情報を入力していないと使い物になりませんので注意してください。Office365ユーザーコネクタOffice365ユーザーを使用すると、自分のOffice365アカウントを使用して組織内のユーザープロファイルにアクセスできます。自分のプロファイル、別のユーザーのプロファイル、ユーザーの上司または直属の部下の取得、またユーザープロファイルの更新など、さまざまな操作を行うことができます。参照は誰でも使えますが、操作は権限がないと動作しません。メンバーシップとカレンダーイベントを管理できます。グループ名簿の取得、メンバーの追加または削除、グループイベントの作成など、さまざまなアクションを実行できます。自分が参加しているグループ(SharePointサイトやTeamsのチームなど)の情報をある程度好き勝手できるコネクタです。自分を基準に会社のトップまでたどり着かせます。ユーザー情報を取得するには、ユーザーIDが必須となるのでひたすらそれを追い求めていきます。自分の情報を取得する│MyProfileV2まずは自分のユーザーIDを取得します。取得するには、MyProfileV2を使います。自分の情報を取得するときのみ、ユーザーIDは不要です。下記コードを適当なボタンコントロールに埋め込んで実行します。});自分の直属上司の情報を取得する│ManagerV2つづいて、自分の直属上司の情報を取得します。取得するには、ManagerV2を使います。直属上司の情報を取得するときは、自分のユーザーIDを使用します。})会社のトップまでの情報を取得する│ManagerV2さいごに、会社のトップまでの情報を取得します。取得するには、もう一度ManagerV2を使います。同様に直属上司のさらに直属上司にあたる情報を取得するときは、直属上司のユーザーIDを使用します。1回ずつやるとめんどうなので、ForAll関数で繰り返します。))無事たどり着けましたか?実際に使う場合は、1つめと3つめのコードを繋げれば1回で終わります。結果をギャラリーに展開すれば、可視化できます。今度は逆に、会社のトップから末端まで下っていきます。さきほどと同じ様にやるとテーブルの入れ子がすさまじいことになるので、ギャラリーを経由します。直属部下の情報を取得する│DirectReportsV2先ほど取得した会社トップのIDを使って直属部下の一覧を取得します。取得するには、DirectReportsV2を使います。下記コードを複数のギャラリーコントロールに埋め込んで実行します。前ギャラリーで選択した社員の直属部下リストを表示させるGalleryxx.Itemsプロパティ//1個目のギャラリー_Manager//2個目以降のギャラリーはこれの繰り返しOffice365ユーザー.DirectReportsV2(Galleryxx.Selected.id).value階層分繰り返せば末端までたどり着けると思います。ギャラリーコントロールのテンプレートに下記を追加すれば、いろんな情報が抜けます。idユーザーIDsurname姓givenName名displayName表示名jobTitle役職businessPhones勤務先電話番号mobilePhone携帯電話mailメールdepartment部署officeLocationオフィスの場所グループ参加メンバー一覧を取得する│Office365グループ自分が参加しているグループの一覧を取得する│ListOwnedGroupsV3まず、グループ参加者を取得する前に、自分が参加しているグループの一覧を取得します。取得するには、ListOwnedGroupsV3を使います。取得できるのは、自分が参加しているグループのみです。これを利用してグループIDを取得します。グループ一覧をギャラリーに表示するGallery01.ItemsプロパティOffice365グループ.ListOwnedGroupsV3().value参加メンバーの一覧を取得する│ListGroupMembersV2ここでは、グループの参加者一覧を取得します。取得するには、ListGroupMembersV2を使います。取得できるのは、自分が参加しているグループのみです。初期値では100人までしか抜けないので、プロパティを忘れずに変更しておきましょう。参加者一覧をギャラリーに表示するGallery02.Itemsプロパティ//{'$top':1000}←ここの数字が抜き取り最大人数、1000人までOffice365グループ.ListGroupMembers(Gallery01.Selected.id,{'$top':1000}).valueまとめOffice365ユーザーとグループコネクタの使い方はわかりましたか?ユーザーを起点に一つ上の直属上司や部下はすぐ抜けるようになったと思います。わたしはこのコネクタを使って、社内電話アプリや上申先の自動判定に使っています。出番のない機能かもしれませんが、きっと誰かの役に立つはず。こんなこともできるよってのを覚えていただければ幸いです。関連記事PowerApps│引継ぎにも対応!電話応対メモアプリの作り方2022.03.21関連記事PowerApps│メールやチャット、タスク割り当てを行う方法2022.02.12ご支援よろしくおねがいしますこの記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。メッセージもいただけるとたいへん喜びます。21:39とても参考になります。ありがとうございます。SharePointリストに[ユーザーとグループ]、[メールアドレス]があります。PowerAppsのキャンバスアプリから[ユーザーとグループ]にユーザを入力してdisplayNameで表示させます。このユーザのメールアドレスを[メールアドレス]に自動で登録できないか、試行錯誤しています。Office365ユーザーとグループコネクタで出来ないかなぁと思いましたが、出来ませんでした。別の方法があるかもしれまんが行き詰まり状態です。アドバイス頂けましたら幸いです。00:41訪問およびコメントくださってありがとうございます。ご質問いただいた件ですが、解決する方法はいくつかあります。簡単なのがSPOリストをフォームに展開し、コンボボックスになった[ユーザーとグループ]からユーザーを選択します。記述すれば連動して抜き取れます。最後にSubmitFormでSPOリストに書き込みます。ようにテーブルを単一レコードまで絞れば直接抜き取ることができます。どちらの方法でもOffice365ユーザーコネクタは使わなくてもできます。09:53質問への回答ありがとうござます。試してみたところ、解決しました。Office365ユーザーコネクタ不要のところ、必要前提と思い込んでいました。ためになる事ばかりで目から鱗です。今後も楽しみにしています。11:44拝見させていただきました。困っていることがあり、質問させていただきます。現在リストにフィルターをかけてユーザ名だけのcheckerコレクションを作成しています。Object]とひょうじされてしまいます。コンボボックスはユーザー/グループで複数選択できるものです。23:41ご質問ありがとうございます。コンボボックスの選択肢を管理者として、かつ初期値を先頭の人にするってことですよね?DefaultSelectedItemsにはテーブルを指定しますが、First関数の戻り値はレコードです。そのため、FirstN関数に変えて試してみてください。作成されたコレクションはテーブルなので[]で閉じてしまうと入れ子になりますので、外してください。10:58ありがとうございます。[]を外したら目的が達成できました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。US七草あんこ非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。Twitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。