詳細情報:
Salesforce Maps 外部オブジェクトに関する考慮事項
Salesforce Maps で外部オブジェクトレコードをプロットする前に、主要な制限と連動関係を確認してください。このトピックでは、クエリの動作、地理コードと暗号化の制約、および組織が Salesforce Connect を使用してデータを取得する場合のパフォーマンスのトレードオフについて説明します。
Salesforce Maps による外部オブジェクトデータの取得方法
外部オブジェクトを使用すると、Salesforce システム管理者は Salesforce Connect を介して Salesforce 組織外にあるデータにリアルタイムでアクセスできます。Salesforce Maps では外部オブジェクトをプロットできますが、外部データ ソースで Odata 2.0、Odata 4.0、または組織間接続を使用する場合には重要な制限があります。
外部オブジェクトをプロットすると、Maps は Salesforce Connect を介してデータを取得し、外部システムへのコールアウトを実行します。このリアルタイムインテグレーションでは、標準 Salesforce オブジェクトに適用されない特定の制約が導入されます。
SOQL およびクエリの制限事項
外部オブジェクトには、Salesforce Maps でデータを取得して表示する方法に影響するいくつかのクエリ制限があります。
- リレーションクエリ: 外部オブジェクトと標準オブジェクト間のリレーションを含むクエリでは、一部の SOQL 操作がサポートされない場合があります。外部オブジェクトリレーションで、プロットする必要がある項目がサポートされていることを確認します。
- 集計関数: COUNT、SUM、AVG、MIN、および MAX 関数は、ほとんどの外部データソースでサポートされていません。集計に依存するマップ機能は、外部オブジェクトでは機能しない可能性があります。
- 条件演算子: すべての SOQL 条件演算子を外部オブジェクトで使用できるわけではありません。サポートされる特定の演算子は、外部データソースの Odata バージョンと設定によって異なります。
- LIMIT 句: 外部データソースは、Salesforce SOQL LIMIT 句に関係なく、独自のレコード制限を適用できます。特定の制限については、外部データソースのドキュメントを参照してください。
地理コードと住所項目の要件
外部オブジェクトの地理コード化には、特別な考慮事項があります。
- 住所フィールド: 外部オブジェクトには、外部データソースを介して公開される住所フィールドが必要です。住所項目を直接使用できない場合は、住所が含まれる標準オブジェクトまたはカスタムオブジェクトへの参照関係を設定する必要があります。
- 地理コード API 制限: Maps が外部オブジェクトをプロットするたびに、組織の地理コード制限に含まれる地理コード操作がトリガーされる場合があります。大規模な外部データセットを使用する場合は、地理コードの使用状況を監視します。
- 間接参照: 住所のないレコードをプロットする場合、外部オブジェクトと住所を含むオブジェクト間のリレーションが間接参照として適切に設定されていることを確認します。
Shield Platform Encryption の制限事項
組織で Shield Platform Encryption を使用している場合、外部オブジェクトをプロットするときは次の追加の制約に注意してください。
- 暗号化フィールド: 外部オブジェクトは、Shield Platform Encryption を直接サポートしません。ただし、暗号化された項目を含む標準オブジェクトへの間接参照を使用している場合、特定の検索条件および検索操作が期待どおりに動作しない可能性があります。
- 検索制限: 外部オブジェクトリレーションを介してアクセスする場合、関連する標準オブジェクトの暗号化されたフィールドを検索クエリで使用できません。
- 演算子の制限: 比較演算子 (LIKE、CONTAINS など) は、外部オブジェクトリレーションを介して参照される暗号化項目では機能しません。
パフォーマンス上の考慮事項
外部オブジェクトのプロットは、リアルタイムのデータ取得により Maps のパフォーマンスに影響する可能性があります。
- 外部コールアウト制限: 外部オブジェクトデータを取得する各要求は、組織のコールアウト制限に含まれます。大規模なデータセットや頻繁な地図の更新では、コールアウトがすぐに消費される可能性があります。
- 応答時間: マップのパフォーマンスは、外部データソースの応答時間によって異なります。外部システムが遅いと、地図の読み込みとプロットが遅延します。
- データ量: 大量の外部オブジェクトレコードのプロットは、標準オブジェクトのプロットよりも遅くなる場合があります。検索条件を使用して、取得およびプロットされるレコード数を減らすことを検討してください。
- キャッシュ制限: 標準オブジェクトとは異なり、外部オブジェクトデータは要求のたびにリアルタイムで取得されます。標準オブジェクトのパフォーマンスを改善する Salesforce のキャッシュメカニズムは、外部データには適用されません。
外部オブジェクトを使用したレイヤーの動作
外部オブジェクトを使用してデータレイヤーまたはマーカーレイヤーを作成する場合:
- レイヤー作成: 外部オブジェクトに基づいてデータレイヤーを作成できますが、上記のすべてのクエリ制限が適用されます。
- クリック-to-作成: 外部オブジェクトを対象オブジェクトとして使用する場合、クリック-to-作成機能が制限される場合があります。外部データソースで必要な挿入操作がサポートされていることを確認します。
- ライブデータセット更新: ソースシステムの外部データに加えられた変更は、キャッシュまたはデータソースの更新間隔が原因で、Maps レイヤーにすぐに表示されない場合があります。
- 色分けレイヤー: 外部オブジェクトの項目値に基づく色分けは標準オブジェクトと同じように機能しますが、外部データセットが大きいとパフォーマンスが低下する場合があります。
検索と絞り込みの動作
検索機能には、外部オブジェクトに関する特定の制限があります。
- POI 検索: 外部オブジェクトでは、リアルタイムのデータ取得のため、POI (Point of Interest) 検索の実行が遅くなる場合があります。
- テキスト検索: 全文検索機能は、テキスト検索操作に対する外部データソースのサポートによって異なります。
- 条件の保持: 外部オブジェクトレイヤーに適用された条件は、各マップの読み込み時に再評価が必要になる場合があり、読み込み時間に影響する可能性があります。
外部オブジェクトのトラブルシューティング
外部オブジェクトのプロットで問題が発生した場合は、次の点を確認してください。
| 症状 | 考えられる原因と解決策 |
|---|---|
| 外部オブジェクトが地図に表示されない | 外部データソースが接続され、アクセス可能であることを確認します。外部オブジェクトで直接、または間接参照関係を介して、住所項目が適切に対応付けられていることを確認します。 |
| SOQL クエリがサポートされていません | クエリで外部データソースでサポートされていない SOQL 操作が使用されている。クエリを簡略化するか、サポートされていない演算子を削除します。開発者コンソールでクエリをテストして、特定のサポートされていない操作を特定します。 |
| マップの読み込みに時間がかかるか、タイムアウトする | 外部データソースの応答が遅いか、返されたレコードが多すぎる可能性があります。検索条件を追加してデータセットサイズを減らすか、外部システムのパフォーマンスを確認します。 |
| 検索条件オプションが期待どおりに動作しない | 一部の検索条件演算子は、外部データソースでサポートされていない場合があります。サポートされている演算子については Odata アダプタのドキュメントを確認するか、関連オブジェクトにフィルタリングを妨げる暗号化項目が含まれていないことを確認してください。 |
| コールアウト制限エラー | 外部オブジェクトをプロットすると、API コールアウトが消費されます。組織のコールアウト制限を監視し、地図の更新頻度やプロットされる外部オブジェクトの数を減らします。 |
外部オブジェクトのベストプラクティス
Salesforce Maps で外部オブジェクトを操作するときは、次のベストプラクティスに従ってください。
- テストクエリ: Maps で外部オブジェクトを設定する前に、開発者コンソールを使用して外部オブジェクトに対する SOQL クエリをテストします。
- フィルタを戦略的に使用: フィルタを適用して、取得およびプロットされる外部レコードの数を制限します。
- 監視制限: 外部データを使用するときのコールアウト制限と地理コード API の使用状況を追跡します。
- ドキュメントデータソース: 外部データソースに関するドキュメント (制限事項、更新スケジュール、サポートされる操作など) を保持します。
- Plan for latency (遅延の計画): 外部オブジェクトを含むマップの読み込みが、標準オブジェクトのみを含むマップの読み込みよりも遅くなる可能性があるユーザーの期待を設定します。
- 関係を確認: 独自のアドレスを持たない外部オブジェクトをプロットする前に、間接参照関係が正しく設定されていることを確認します。
