コネクタを使用すれば、Microsoft Power Appsを使ってカスタムアプリケーションとLMS365データを相互作用させることができます。
LMS365 の既定のコネクタではアクセスできない追加データを取得したい場合はコネクタを作成し、それを使用することもできます。
また、Power Apps で LMS365 コネクタの既定の操作である「HttpRequest」や「HttpRequest_v2」を使用したい場合にも便利です。
これらの操作を制限なく使用できるのは Power Automate 内と限定されるため、カスタムコネクタの作成はこうしたケースでの代替え策になります。
ここでは、カスタムコネクタを作成し、Power Appsで使用する方法についてご説明します。
カスタムコネクタやプレミアムコネクタを使用するには、Microsoft Office 365のサブスクリプションだけでなく、Power Appスタンドアロンライセンスが必要です。 |
カスタムコネクタの作成
新しいコネクタは次の手順で作成します。
1.Power Apps メニューからソリューション >「+新しいソリューション」 を選択します。開いたパネルで必要なフィールドに入力し、「作成」を選択します。
2.作成した新しいソリューションを選択して開きます。「+新規」>「自動化」>「カスタム コネクタ」を選択します。
ソリューションの概念については、Microsoft のドキュメントをご参照ください。
3.コネクター作成ページが開きます。
「全般」セクションのフィールドに入力します。
ホスト名は、ここではLMS365のデータを取得したいので、LMS365のクラウドAPIホストを使用します。
「セキュリティ」セクションに進みます。ここでは、「基本認証」タイプを選択します。
「定義」セクションに移動します。ここでは、コネクタの定義を作成します。
様々なレスポンスを返すアクションやトリガーを追加することができます。
この例では、LMS365 の Courses テーブルからデータを取得するのに役立つアクションを 1 つだけ使います。
このアクションで使用する要求を追加します。
「サンプルからのインポート」を選択します。開いたパネルで GET メソッドを選択し、リクエストURL(https://je-api.365.systems/odata/v2/Courses)を指定します。
クエリ・パラメータも追加します。
Tags と Categories パラメータの展開を考えているので「$expand」を使います。また、「$filters」も使えるように追加します。
次に、レスポンスサンプルを作成します。
「応答」>「サンプルからのインポート」を選択します。開いたパネルの本文フィールドに入力します。
入力の前に、以下の手順で応答サンプル本文を入手する必要があります。
① api.365.systems に移動します。
② GET /odata/v2/Courses エンドポイントを選択します。
③ Tags と Categories を展開し、関連スキーマ作成するレスポンスを取得します。
④ 結果をダウンロードし、応答サンプルの本文ボディフィールドに挿入し、「インポート」ボタンを選択します。
スキーマが自動的に作成され、コネクタコードに追加されます。
成功した場合、多くのパラメータが応答本文に追加され、"Validation succeeded"(検証に成功しました)というメッセージが表示されます。
4.「コード」セクションは任意です。
Swagger Editorを使用して変更やデバッグを行うこともできます。 |
5.1~3(または4)の手順が完了したら、すべての変更を保存してコネクタを作成し、「テスト」に進みます。
すべてが正しく設定されていれば、レスポンス コード 200 が返されます。
Power Apps でカスタムコネクタの使用する
カスタムコネクタを作成したら、次は、カスタムコネクタの機能を使って取得したデータを使用した、簡単なアプリを作成します。
アプリの作成は次の手順で行います。
1.Power Apps に移動し、サイドメニューの「+作成」>「空のアプリ」>「空のキャンパスアプリ」の作成を選択し、「アプリ名」を入力して「作成」します。
2.データメニューで作成したコネクタを検索し、接続します。
3.挿入メニューに移動し、データを視覚化する要素を追加します。
4.カスタムコネクタを使用して、コースリストを取得するクエリを作成し、特定のカタログからのコースのみを取得するようにフィルタリングします。
この場合、数式は次のようになります。
Defaulttitle.GetCourses({'$expand':"Tags,Categories", '$filter': "CourseCatalogId eq value"}).value
ここでの「Defaulttitle」は、作成したコネクタのタイトルです。このタイトルはSwaggerで変更できます。 |
数秒後、データが読み込まれます。テーブルに列を追加することができます。
ここではTitle、CourseType、CreatedAt、Categories、Tags を選択してます。
最初の3つの列にはデータがありますが、展開された次の2つの列は、Categories や Tags が取得されるはずの行の「object Object」の値を除いて、結果が取得されません。
また、これらの列の数式エラーも確認できます。
これらの列の数式エラーは、すでにクエリでこれらのテーブルを展開しているので、簡単に修正できます。
修正方法:
Categories や Tags 列は、Concat関数を使用してテーブルから1つの値のみを選択します。
列を選択し、ThisItem.Categories の代わりに「 Concat(ThisItem.Categories.Name, Name, ", ") 」を入力します。
ThisItem.Tagsについても同様に修正します。
これにより、次の結果が取得できます。