7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Office 365 ユーザーコネクターを利用する際におけるパフォーマンス観点での注意点と対策について

Last updated at Posted at 2023-01-08

はじめに

前回、Office 365 ユーザーコネクターの活用方法について紹介しました。
今回は、Office 365 ユーザーコネクターを利用する際におけるパフォーマンス観点での注意点とその対策について紹介します。

アプリ例

今回は、以下のように、勤務状況を共有するアプリを例に説明します。
こちらのアプリでは、組織内の複数のユーザーの情報を表示しているため、
アプリの作り次第では、表示させたいユーザー数分、Office365ユーザーコネクターで情報取得を行う必要があります。

image.png

パフォーマンス観点での注意点

実際にはこのような実装ではありませんが、各ユーザーの表示名を以下のような感じで取ってくるようにしたいと思います。

image.png

Office365ユーザー.UserProfileV2(ThisItem.cr841_userupn).displayName

通信の中身を以下のモニターを使って見てみたいと思います。

image.png

まず、上記ページをロードした際の通信です。
ユーザーごとに情報を取得していることがわかります。応答のサイズや期間 (ミリ秒) が結構大きいことがわかります。

image.png

応答の詳細を見てみると、すべてのプロパティを取得していることが分かります。
今回、欲しいのは、"displayName" だけなのでちょっと余分な通信ですね。

image.png

対処策

確実に "displayName" だけ取得する場合、以下のような書き方になります。

Office365ユーザー.UserProfileV2(
    ThisItem.cr841_userupn,
    {'$select': "Displayname"}
).displayName

再度モニターツールでみてみます。
応答のサイズや期間(ミリ秒)が小さくなったことが確認できます。

image.png

image.png

また、複数の属性を取得する場合は、以下のような書き方になります。

Office365ユーザー.UserProfileV2(
    ThisItem.cr841_userupn,
    {'$select': "Displayname,Mail"}
).displayName

まとめ

今回は、Office 365 ユーザーコネクターを利用する際のパフォーマンス観点での注意点およびその対策として特定の属性のみ取得する方法を紹介しました。

個人的に、Office 365 ユーザーコネクターを利用する際は (特に、モバイル向けアプリや、ギャラリー内で利用する際)、出来るだけ最低限必要な情報を取得して通信量を軽くしてあげることをお勧めします。

また、上記のようなアプリの場合、Office 365 ユーザーコネクターで毎回情報を取得せず、アプリ内の DB に情報を保存しておいてそちらから情報を取得する、または、一旦コレクションに格納し、リフレッシュしない限りはそちらを参照するような方法を検討しても良いかと思います。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?