Apex Connector Framework でのページング
ユーザインターフェースに大量のレコードセットを表示する場合、Salesforce はレコードセットをバッチに分割して、1 つのバッチを表示します。これらのバッチはページ処理できます。ただし、Salesforce Connect のカスタムアダプタでは、どのようなページングも自動的にサポ���トされることはありません。カスタムアダプタで取得された外部オブジェクトデータのページ処理をサポートするには、サーバ駆動またはクライアント駆動のページングを実装します。
サーバ駆動のページングでは、外部システムがページングを制御し、クエリで指定されたバッチの区切りやページサイズは無視されます。サーバ駆動のページングを有効にするには、DataSource.Provider クラスで QUERY_PAGINATION_SERVER_DRIVEN 機能を宣言します。また、Apex コードでクエリトークンを生成し、そのトークンを使って結果の次のバッチを判断して取得する必要があります。
クライアント駆動のページングでは、LIMIT および OFFSET 句を使用して結果セットをページ処理します。DataSource.QueryContext の offset および maxResults プロパティを考慮して、どの行を返すかを判断します。たとえば、結果セットに数値の ExternalID が 1 ~ 20 の 20 行あるとします。offset を 5、maxResults を 5 とすると、ID が 6 ~ 10 の行を取得します。絞り込みはすべて Apex 外の外部システムで、そのシステムがサポートする方法で行うことをお勧めします。