Tips!:Power AutomateフローとLMS365 API

  • 更新

ここでは、Power Automate フローや Power Automate フローを用いたPower App など、LMS365 Cloud API でのアクションのパフォーマンスを最適化するためのヒントをご紹介します。

$expand の使用を抑える

$expand フィールドは特定のデータを取得するために使用できますが、Power Automate フローの LMS365 API コールでは、他の方法で取得できないデータに対してのみ expands を使用することをお勧めします。

そのためには、必要とするデータを明確にした上で、追加で $expand を用いずに、関連するテーブルからデータを取得します。

例:

特定のユーザーの登録を取得するには、Courses テーブルで Enrollments を展開するのではなく、Enrollments テーブルの UserId でフィルターし、そこから絞り込みを行います。

同様に、Enrollments テーブルのデータを展開しないと、特定のユーザーの Attendances は取得できません。

$select を使用する

例えば、Enrollments や、Courses のような大きなテーブルからデータを取得するには、フローやアプリで使用するパラメータだけを選択することをお勧めします。

この場合、$select と、パラメータを指定してレスポンスデータを絞り込み、データを返すのにかかる時間を短縮することができます。

関連するパラメータを省略すると、レスポンスにかかる時間が長くなったり、不要なデータが数多く含まれる可能性があります。

例:

フローで CourseSessions を展開する場合、クエリ内に $select を使用することで パフォーマンスを向上させることができます。 
これを行うには、CourseSessions($select=Id,StartDateLocal,EndDateLocal) のように、パラメータを指定します。

パラメータが指定されていない場合、TakenSeatsCount パラメータが複雑なため、フローの実行にかかる時間が長くなるおそれがあります。

アクションを組み合わせて使用する

パフォーマンス向上のために、複数の expandと filter を含む複雑なクエリーを作成する代わりに、後で組み合わせて分析できる別々のレスポンスを持ついくつかのアクションをフローに追加することができます。

例:

Courses テーブルから情報を取得するAPIコールがあります。そこからコースの Enrollments を展開し、Enrollments の中で、CourseSessions を展開することができます。

この場合、別々の2つのコール - 1つは Courses テーブルから特定のデータを取得するコール、もう1つは Enrollments テーブル内の展開された CourseSessions から登録を取得するコール - を作成することをお勧めします。

フローの仕組みとオプションを考える

フローの仕組みや使用するパラメーターを計画する際には、必要なデータがどこで取得できるかを考えます。

これは、適切なレスポンスを得るために最も効率的な方法を見いだすのに役立ちます。
一般的に、同じデータをさまざまな方法で取得することができます。

データを最も効率的に取得する方法を見つけることは、フローとアプリのパフォーマンスの向上にもつながります。

例:

特定の認定証に関するデータを取得するには、Enrollments テーブルの Certificate データを展開し、関連する認定証を検索するなど、いくつかの方法があります。

ですが、既に CourseId と UserId がわかっている場合、Certificates エンドポイントを利用することで、より効率的にデータを取得することができます。

UserLoginName の使用を控える

UserLoginName を使用すると、構文によってフローが複雑になる可能性があります。

この問題の事例とその修正方法については、「LoginNameパラメータを使用したフローを修正する 」をご参照ください。

効率を良くするには、フィルタやフローアクションで UserId や DirectoryObjectId を使用します。

CourseSession は使用できません

CourseSession は廃止され、現在は使用できません。

APIリクエスト本文から、CourseSession を手動で削除する必要があります。

代わりに CourseSessions を使用します。