Question
Integration Service のカスタムコネクタで Microsoft Graph API を利用し、SharePoint の Site レコードを取得しようとしています。レコードの最大数を変更しても最大200件までしか返却されません。
正常にページネーションが行われていないようです。
以下のリンクに記載のエンドポイントを利用しています。
参考:「サイトを検索する」
Answer
原因
ページネーション設定、特に Microsoft Graph API の @odata.nextLink から次ページ用の $skiptoken を取得する設定が正しく構成されていない場合、初回レスポンス分のみが返却される場合があります。
解決策
以下の設定で Integration Service のカスタムコネクタを作成し、Studio 上で該当アクティビティを利用した際に自動ページネーションが行われるかご確認ください。以下はSharepointのサイト検索を例にしたコネクタの設定手順です。
手順
-
通常のコネクション作成手順に従い、「認証」タブを設定します。
-
「ベースAPI」で以下を設定します。
- 「ベースURL」:
https://graph.microsoft.com/v1.0 - 「ページネーションの種類」:
カーソル
- 「ベースURL」:
-
「アクティビティ」>「新しいリソースを作成」>「すべてのレコードのリストを取得 (GET)」を作成します。
- パス:
Site?search=*
- パス:
-
「ページネーション」タブで以下を設定し、保存します。
- 「プロバイダーの次ページのトークン名」:
$skiptoken - 「プロバイダーのページのサイズ名」:
$top - 「ページサイズの既定値」:
100(任意の値です) - 「次のページのトークン」:
body.@odata.nextLink?$skiptoken
- 「プロバイダーの次ページのトークン名」:
-
「アクティビティデザイナー」タブで以下を設定し、保存します。
- 歯車アイコン >「応答のルートキーを更新」
- 「応答のルートキー」:
value
-
「要求を送信」をクリックし、テストリクエストを送信します。
以下を確認します。- 「プロバイダー応答」に値が出力されていること
- 「応答」に値が出力されていること
- 「プロバイダー応答」のペイロード内の
valueフィールド配下の値が「応答」に出力されていること - 「応答フィールド」タブにフィールドが自動生成されていること
-
「厳選された活動」から対応するアクティビティを設定し、コネクターをパブリッシュします。
-
Studio でパブリッシュ済みコネクタのアクティビティを読み込み、SharePoint Site の取得結果が1回のリクエストの取得件数を超えて取得されるか確認します。