この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

外部オブジェクト

外部データに対する queryAll() および queryMore() コールには特殊な動作と制限が適用されます。

queryAll()

Salesforce では外部データへの変更を追跡しないため、queryAll() コールの動作は、外部オブジェクトに対する query() と同じです。

queryMore()

外部データの Salesforce Connect クエリで、大量の結果セットがバッチやページに分割されて示されることはよくあります。外部オブジェクトを照会するとき、Salesforce Connect は Web サービスコールアウト経由で外部データにリアルタイムにアクセスします。queryMore() コールを実行するたびに、Web サービスコールアウトが行われます。バッチの区切りとページサイズは、アダプタと外部データ取得元の設定方法に応じて異なります。

次の設定をお勧めします。
  • 可能ならば、外部オブジェクトのクエリを、デフォルトのバッチサイズである 500 行よりも少ない行を返すように絞り込んでページングを避けます。バッチを取得するたびに queryMore() コールが必要になり、その結果、Web サービスコールアウトが行われます。
  • 外部データが頻繁に変更される場合は、queryMore() コールの使用を避けてください。次の queryMore() コールまでの間に外部データが変更された場合、予期しない QueryResult になることがあります。

SELECT ステートメントの主オブジェクト (「主導」オブジェクト) が外部オブジェクトの場合、queryMore() は主オブジェクトのみをサポートし、サブクエリをサポートしません。

デフォルトでは、Salesforce Connect の OData 2.0 および 4.0 アダプタは、クライアント駆動のページングを使用します。クライアント駆動ページングにより、OData アダプタは各 queryMore() コールを、$skip および $top システムクエリオプションを使用してバッチの区切りとページサイズを指定する OData クエリに変換します。これらのオプションは、LIMIT および OFFSET 句を使用した結果セットのページ処理に似ています。

外部データソースのサーバ駆動ページングを有効にすると、要求されたページサイズ (デフォルトの queryMore() バッチサイズの 500 行を含む) が Salesforce で無視されます。バッチは、外部システムによって返されるページで決まりますが、各ページは 2,000 行を超えることはできません。