アプリケーションへの Office 365 ユーザーの追加
Power Apps への Office 365 ユーザーの接続を使用すると、Office 365 アカウントを使用して組織内のユーザー プロファイルにアクセスできます。 自分のプロファイルの取得、ユーザーのプロファイルの取得、ユーザーのマネージャーの取得、直属の部下の取得など、さまざまなアクションを実行できます。
この情報は、アプリのラベルを介して表示できます。 1 つの関数を表示したり、複数の関数を表示したり、さまざまな関数を組み合わせたりすることができます。 たとえば、これらの関数を使用して、対象ユーザーの名前を表示して挨拶することでアプリをよりパーソナライズしたり、データ フィールドに名前や電話番号を自動で入力したりすることができます。
接続の追加
Office 365 ユーザー データ ソースは、Power Apps で使用できる標準コネクタです。 このコネクタを追加するには、コマンド リボンからデータの追加を選択して、検索フィールドに「Office 365 ユーザー」と入力します。 一覧から Office 365 ユーザーを選択し、接続で表示されるダイアログ ボックスで、Office 365 ユーザー接続を選択します。
この環境でこのコネクタを初めて追加する場合は、下の画像のようなダイアログ ボックスが表示されます。 [接続] を選択して、この接続を追加します。
ユーザー プロファイル情報
ユーザー プロファイル情報は、Office 365 ユーザーの MyProfile アクションで呼び出すことができます。 同様に、SearchUser アクションを呼び出すことで、他のユーザーの情報を取得できます。 キャンバス アプリでユーザー情報を取得するには、いくつかの方法があります。 アプリを使用するユーザーに関する情報を取得するには、App OnStart またはボタンの OnSelect で関数を使用することができます。
App OnStart を使用してユーザー プロファイル情報を格納する
ここでは、必要なユーザー情報が含まれるレコードを取得し、グローバル変数に保存して、アプリ全体で簡単に再利用できるようにします。 レコードの情報であるため、Office 365 プロファイルに含まれるどの情報にもアクセスできます。
アプリを選択し、OnStart プロパティを選択して、次の式を追加します。
Set(varUserInfo, Office365Users.MyProfileV2())
変数に入力するには、アプリの横の省略記号を選択して、Run OnStart を選択します。
varUserInfo という名前のグローバル レコード変数が作成され、その情報をアプリの任意の場所で呼び出せるようになります。 たとえば、テキスト入力コントロールの Default プロパティに varUserInfo.displayName を追加できます。
以下の画像は、アプリで自動で入力することで、ユーザーが手動入力の時間を節約できる属性を示しています。 テキスト入力フィールドを追加し、職称、部門、住所、市区町間、郵便番号などの追加のフィールドを表示できます。
MyProfileV2 から集められたデータには、ユーザーの Office 365 ユーザー プロファイルにあるメタデータが含まれます。 アクセスが許可されると、アプリの任意の場所で使用できます。
コントロールの OnSelect
別のユーザー (現在のユーザー以外のユーザー) に関するデータを収集する必要がある場合は、SearchUser および UserProfile のアクションを使用します。 練習のために、Office365Users データ ソースを使用して、ComboBox をキャンバス アプリに追加しましょう。
コンボ ボックスのプロパティを次のように設定します。
| プロパティ | 値 |
|---|---|
| Items | Office365Users.SearchUserV2({searchTerm: Self.SearchText, isSearchTermRequired: false}).value |
| DefaultSelectedItems | Office365Users.SearchUserV2({searchTerm:varUserInfo.displayName}).value |
| DisplayFields | ["DisplayName"] |
| IsSearchable | true |
| SelectMultiple | false |
| OnChange | Set(varSearchUserInfo, Office365Users.UserProfileV2(Self.Selected.Id)) |
SearchUser アクションは、MyProfile アクションと似たアカウント プロファイル メタデータを収集します。 コントロールの OnChange プロパティで UserProfileV2 関数を使用し、SearchUserV2 から選択したユーザーの ID を使用して、そのユーザーのメタデータを取得します。
注
そのアカウントのすべてのデータが入力されていれば表示されますが、そうでない場合は既定の結果、または null 値の結果が表示されます。 たとえば、その従業員のレコードに携帯電話の番号が入力されていなければ、このアクションでデータが返されることはありません。
次に、MyProfile アクション用に作成したコントロールをコピーして、コンボ ボックスの下に貼り付けます。 貼り付けた "テキスト入力" フィールドのラベルと既定値の設定を次のように変更します。
| ラベル | テキスト入力の既定値 |
|---|---|
| 名前 (表示名) | varSearchUserInfo.displayName |
| 役職 | varSearchUserInfo.jobTitle |
| 部署 | varSearchUserInfo.department |
| メール | varSearchUserInfo.mail |
| 市区町村 | varSearchUserInfo.city |
| 国 | varSearchUserInfo.country |
| 郵便番号 | varSearchUserInfo.postalCode |
Alt キーを押しながらコンボ ボックス コントロールを選択すると、使用可能なユーザーの表示名と検索フィールドが表示されます。 ユーザーを選択して、下のテキスト入力フィールドが入力されていることを確認します。
アプリケーションを "再生" モードにして、異なるユーザーを検索することができます。 他のユーザーの情報を取得する方法についての説明は以上です。次に、Office 365 ユーザー コネクタで使用できる他のアクション データを見てみましょう。
マネージャーの情報
ユーザー情報の取得に加えて、ユーザーのマネージャーの情報も取得できます。
作成した コンボ ボックス コントロールで、OnChange プロパティを Set(varSearchUserInfo, Office365Users.ManagerV2(Self.Selected.Id)) に変更します。
注
マネージャーを持たないユーザーを選択すると、アプリが編集モードのときにテキスト入力フィールドにエラーが表示される場合があります。 これは、このユーザーがマネージャーを持たないため、Power Apps が Error データを返すためです。 この情報を使用して、「このユーザーにはマネージャーが存在しない」などの通知をユーザーに表示できます。 Errors 関数は、ユーザー エクスペリエンスを阻害することなくユーザーにエラー情報を返します。
Microsoft 365 管理センターのアクティブ ユーザーで、このマネージャーが正しいことを確認できます。 ユーザーの表示名を選択すると、画面の右ペインにこの情報を表示するウィンドウが開きます。
すべての直属の部下の表示
マネージャー情報の検索と同様に、Office 365 ユーザー コネクタでは、1 人のマネージャーの直属の部下であるすべてのユーザーを検索できます。
これを実行するには、コレクションとギャラリーを組み合わせて、直属の部下の一覧を表示します。 コレクションは、アプリ全体で使用できるデータの一覧またはテーブルを格納できるデータ変数です。 ギャラリー コントロールは、レコードのテーブルを表示し、各レコードには、さまざまなタイプのデータを含めることができます。 この場合のデータ ソースはコレクションです。 まず、新しい画面を作成します。
ComboBox コントロールを追加して、次のプロパティを設定します。
| プロパティ | 値 |
|---|---|
| Items | Office365Users.SearchUserV2({searchTerm: Self.SearchText, isSearchTermRequired: false}).value |
| DefaultSelectedItems | Office365Users.SearchUserV2({searchTerm:varUserInfo.displayName}).value |
| DisplayFields | ["DisplayName"] |
| IsSearchable | true |
| SelectMultiple | false |
| OnChange | ClearCollect(colDirectReports, Office365Users.DirectReportsV2(Self.Selected.Id).value) |
これで、1 人のマネージャーの直属の部下であるユーザーの数と、その名前の一覧の 2 つの情報を表示することができます。
選択したマネージャーの直属の部下であるユーザーの数を表示するには、ラベル コントロールを追加し、その Text プロパティを CountRows(colDirectReports) に設定します。 この式は、選択された従業員の直属の部下のコレクションに含まれる行数をカウントします。 ゼロと表示された場合、この人に直属の部下はいません。
すべての直属の部下で選択した 3 人を表示するには、垂直ギャラリーを挿入して、データ ソース (または Items プロパティ) を colDirectReports に設定します。 レイアウトをタイトルに変更し、フィールド (またはギャラリーのタイトル ラベルの Text プロパティ) を displayName と表示されるように変更します。 完了すると、画面は次のようになります。
Office 365 ユーザー接続を介してアクションベースのデータを呼び出す方法についての説明は以上です。 このデータを使用して、テキスト入力フィールドを入力し、コレクションと呼ばれる別の形式のデータを入力して、情報をギャラリーに表示することができました。 次のユニットでは、ギャラリー内のデータを表示および操作する方法の詳細について説明します。
Office 365 ユーザー接続の詳細については、「Office 365 ユーザー コネクタのリファレンス」を参照してください。