Loading

Reports API で CASESAFEID (18 桁の ID) を使用すると、2,000 件を超えるレコードを含むレポートエクスポートでレコードが欠落する

公開日: May 28, 2026
説明

CASESAFEID(Id) (18 桁の ID) を使用する数式項目に基づいて、Analytics/Reports API のレポートの並べ替えとページ分割が行われる場合、2,000 件を超えるレコードを含むレポートエクスポートでは、ページ分割が期待どおりに動作しない可能性があります。その結果、ページ分割された API 応答で一部のレコードがスキップされたり欠落したりする可能性があります。

この動作は、CASESAFEID(Id)Text データ型の数式項目であるために発生します。この項目が Reports API で並べ替え列およびページ分割カーソルとして使用されている場合、lessThan 検索条件では、数値的または確定的な ID 比較ではなく、大文字と小文字を区別する文字列比較が実行されます。

CASESAFEID() で生成される 18 文字の Salesforce ID には、大文字と小文字が混在しています。ページ分割中に大文字と小文字を区別する語彙比較が実行されるため、API コール間で並べ替え順に矛盾が生じる可能性があります。その結果、次の問題が発生する可能性があります。

  • ページ分割中にレコードが欠落する。
  • 結果セットが重複したり、スキップされたりする。
  • 大規模なレポートのエクスポート結果の一貫性が損なわれる。
  • 2,000 件のレコード制限を超えると、ページ分割オフセットが正しく一致しなくなる。

この動作は、特に次の場合に発生します。

  • レポートに 2,000 件を超えるレコードが含まれている。
  • ページ分割が lessThan 検索条件を使用して実装されている。
  • CASESAFEID(Id) を使用する Text 型の数式項目に基づいて並べ替えが行われる。
解決策

この問題を回避するには、Reports API 連携において、CASESAFEID(Id) 数式項目を並べ替えやページ分割カーソルの項目として使用しないことをお勧めします。代わりに、次のような安定した確定的項目を使用してください。

  • 標準のレコード ID (Id)
  • CreatedDate
  • LastModifiedDate
  • 数値型または非数式インデックス付きの項目

これにより、ページ分割動作の一貫性が確保され、大規模なレポートエクスポート中にレコードが欠落するのを防ぐことができます。

ナレッジ記事番号

005321970

 
読み込み中
Salesforce Help | Article