アプリケーションへの 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 ユーザー プロファイルの次の情報が含まれます。id、displayName、givenName、surname、mail、mailNickname、accountEnabled、userPrincipalName、department、jobTitle、mobilePhone、businessPhones、city、companyName、country、officeLocation、postalCode。
コントロールの OnSelect
別のユーザー (現在のユーザー以外のユーザー) に関するデータを収集する必要がある場合は、SearchUser アクションを使用します。 この演習では、[住所の番地] テキスト入力フィールドの下に コンボ ボックス コントロールを追加します。
コンボ ボックスのプロパティを次のように設定します。
プロパティ | 値 |
---|---|
DefaultSelectedItems | Office365Users.SearchUser({searchTerm:varUserInfo.displayName}) |
DisplayFields | ["DisplayName"] |
IsSearchable | true |
Items | Office365Users.SearchUser() |
SelectMultiple | false |
OnChange | Set(varSearchUserInfo, Office365Users.UserProfile(Self.Selected.Id)) |
SearchUser アクションは、MyProfile アクションと似たデータを収集しますが、データは完全に同じではありません。 既定では、SearchUser アクションは、ユーザーに関する次の情報を返します。
- City
- CompanyName
- Country
- Department
- DisplayName
- GivenName
- ID
- JobTitle
- MailNickname
- mobilePhone
- OfficeLocation
- PostalCode
- Surname
- TelephoneNumber
- UserPrincipalName
- AccountEnabled
- BusinessPhones
メモ
確認できるのは、その従業員に対して入力されているデータのみです。 たとえば、その従業員のレコードに携帯電話の番号が入力されていなければ、このアクションでデータが返されることはありません。
次に、MyProfile アクション用に作成したコントロールをコピーして、コンボ ボックスの下に貼り付けます。 貼り付けた "テキスト入力" フィールドのラベルと既定値の設定を次のように変更します。
ラベル | テキスト入力の既定値 |
---|---|
名前 (表示名) | varSearchUserInfo.DisplayName |
役職 | varSearchUserInfo.JobTitle |
部署 | varSearchUserInfo.Department |
メール | varSearchUserInfo.Mail |
City | varSearchUserInfo.City |
Country | varSearchUserInfo.Country |
Postal Code | varSearchUserInfo.PostalCode |
SearchUser データでは、「住所の番地」と「州」が使用できないことに注目してください。 また、SearchUser データのデータ フィールドの最初の文字は、小文字ではなく大文字であることにも注目してください。
Alt キーを押しながらコンボ ボックス コントロールを選択すると、使用可能なユーザーの表示名と検索フィールドが表示されます。 ユーザーを選択して、下のテキスト入力フィールドが入力されていることを確認します。 次の画像のように表示されます。
アプリケーションを「再生」モードにして、異なるユーザーを検索することができます。 他のユーザーの情報を取得する方法についての説明は以上です。次に、Office 365 ユーザー コネクタで使用できる他のアクション データを見てみましょう。
マネージャーの情報
ユーザー情報の取得に加えて、ユーザーのマネージャーの情報も取得できます。
作成した コンボ ボックス コントロールで、OnChange プロパティを Set(varSearchUserInfo, Office365Users.Manager(ComboBox1.Selected.Id))
に変更します。
メモ
マネージャーを持たないユーザーを選択すると、アプリが編集モードのときにテキスト入力フィールドにエラーが表示される場合があります。 これは、このユーザーがマネージャーを持たないため、Power Apps が Error データを返すためです。 この情報を使用して、「このユーザーにはマネージャーが存在しない」などの通知をユーザーに表示できます。 Errors 関数は、ユーザー エクスペリエンスを阻害することなくユーザーにエラー情報を返します。
Microsoft 365 管理センターのアクティブ ユーザーで、このマネージャーが正しいことを確認できます。 ユーザーの表示名を選択すると、画面の右ペインにこの情報を表示するウィンドウが開きます。
すべての直属の部下の表示
マネージャー情報の検索と同様に、Office 365 ユーザー コネクタでは、1 人のマネージャーの直属の部下であるすべてのユーザーを検索できます。
これを実行するには、コレクションとギャラリーを組み合わせて、直属の部下の一覧を表示します。 コレクションは、アプリ全体で使用できるデータの一覧またはテーブルを格納できるデータ変数です。 ギャラリー コントロールは、レコードのテーブルを表示し、各レコードには、さまざまなタイプのデータを含めることができます。 この場合のデータ ソースはコレクションです。 まず、新しい画面を作成します。
コンボ ボックス コントロールを追加して、“Items” プロパティを Office365Users.SearchUser()
に設定します。 次に、“SelectMultiple” プロパティを false
に、“DisplayFields” プロパティを ["DisplayName"]
に、“OnChange” プロパティを ClearCollect(colDirectReports, Office365Users.DirectReportsV2(Self.Selected.Id).value)
に設定します。
これで、1 人のマネージャーの直属の部下であるユーザーの数と、その名前の一覧の 2 つの情報を表示することができます。
選択したマネージャーの直属の部下であるユーザーの数を表示するには、ラベル コントロールを追加し、その Text プロパティを CountRows(colDirectReports)
に設定します。 この式は、選択された従業員の直属の部下のコレクションに含まれる行数をカウントします。 ゼロと表示された場合、この人に直属の部下はいません。
すべての直属の部下で他の情報を表示するには、垂直ギャラリーを挿入して、データ ソース (または Items プロパティ) を colDirectReports に設定します。 レイアウトをタイトルに変更し、フィールド (またはギャラリーのタイトル ラベルの Text プロパティ) を displayName と表示されるように変更します。 完了すると、画面は次のようになります。
Office 365 ユーザー接続を介してアクション データを呼び出す方法についての説明は以上です。 このデータを使用して、テキスト入力フィールドを入力し、コレクションと呼ばれる別の形式のデータを入力して、情報をギャラリーに表示することができました。 次のユニットでは、ギャラリー内のデータを表示および操作する方法の詳細について説明します。
Office 365 ユーザー接続の詳細については、「Office 365 ユーザー コネクタのリファレンス」を参照してください。