Salesforce Connect を使用すると、ユーザは Salesforce 組織外に保存されているデータを表示、検索、変更できます。その中にSalesforce Connectクロス組織を使用すると、他Salesforceのデータを表示、検索、変更できます。
本文はSalesforce Connectクロス組織を利用する場合、各制限事項と注意すべきな事項をまとめます。
前提事項:
①外部オブジェクトを利用する前提で制限事項、標準オブジェクトとカスタムオブジェクトの場合、該当制限がありません。
②Salesforce Connectクロス組織のアダプタはOData 2.0なので、以下の一部の制限はOData 2.0限定の制限です。OData 4.0で制限該当しない場合、明記にしておきますので、ご注意ください。
◆外部オブジェクトの設定関連の制限
レイアウトに配置できる外部参照項目は最大5個
画面レイアウトに配置できる外部参照項目は最大5個、5個超えると、画面表示エラーになります。
モバイル専用なレイアウト作成できない
外部オブジェクトのレコードページに「レコード詳細 - モバイル」がないため、モバイル専用なレイアウトを作成することができません。
数式項目が作成できない
外部オブジェクトに数式項目が作成できません。
※数式項目を作成したい場合、参照元Salesforce側で作成してください。
レコードタイプの概念がない
外部オブジェクトにレコードタイプの概念がありません。レコードタイプ毎に異なるレイアウトで表示することはできません。
つまり、参照元Salesforceに1オブジェクトが複数のレコードタイプがあり、複数のページレイアウトがあっても、参照先の外部オブジェクトに1プロファイル毎に1ページレイアウトになります。
多態的な項目サポートしない
Salesforceの標準オブジェクトに多態的な項目が存在しています。例えば、Eventオブジェクトの関連先項目のように、複数のオブジェクトに関連する参照項目があります。外部オブジェクトに多態的な項目はないため、例えば関連先項目が外部オブジェクトにする場合、データ型は取引先外部参照項目の多態の1つに固定になります。
外部オブジェクトのデータ変更追跡できない
Salesforce Connect: クロス組織のアダプタはOData 2.0なので、外部変更データキャプチャが利用できないため、外部オブジェクトのデータ変更を追跡することができない
※OData 4.0の場合、外部変更データキャプチャが利用できますが、Salesforce Connectクロス組織のアダプタはOData 2.0のみになります。
◆外部オブジェクトのレポート関連の制限
クロース条件サポートしない
外部オブジェクトはレポートのクロース条件として使えません。
主=外部オブジェクトの場合、取得件数制限20,000件
レポートの主オブジェクトが外部オブジェクトの場合、主オブジェクトのレコードが20,000件まで取得できますが、超える場合、レポートに何も返さなく、0件になります。
外部参照項目の親項目をレポートに表示できない
通常の場合、カスタムレポートタイプ上で通常の参照関係項目から親の項目を追加して、レポートに表示することができますが、外部参照関係項目から親の項目を追加してレポートに表示する場合、エラーが発生します。
※Salesforceのバグかと思いますが、Salesforceに問合せすると、現状修正予定がありませんと言われました。
※この場合、親の外部オブジェクトを主オブジェクトとしてカスタムレポートタイプを作成して対応するしかないと思います。
◆外部オブジェクトの開発関連の制限
サブクエリ取得できる最大件数1,000件
外部オブジェクトが含まれるSOQLサブクエリを実行する場合、取得できるデータは、最大1,000行です。
サブクエリ取得できる最大件数1,000件
外部オブジェクトが含まれるSOQLサブクエリを実行する場合、取得できるデータは、最大1,000行です。
ORDER BY句をサポートしない
外部オブジェクトは、リレーションクエリの ORDER BY句をサポートしません。
※OData 2.0のみの制限です。
SOQLクエリ内の結合オブジェクト数は最大4個
各 SOQL クエリ内の結合は、外部オブジェクトとその他の種別のオブジェクト全体で最大 4 個です。
SOQL集計関数サポートしない
外部オブジェクトでは、ほとんどの集計関数と句をサポートしていません。
ただし、COUNT()のみサポートします。【COUNT(fieldName)関数がサポートしません】
Database.getQueryLocator()利用できない
Database.getQueryLocator()に外部オブジェクトが含まれるSOQLがサポートしません。
※OData 4.0の場合、サーバ駆動のページ設定、要求の行数をONにしていれば、利用可能です。
◆まとめ
Salesforce connectを利用して、他Salesforceのデータを簡単にアクセスできますが、割りに色々な制限があります。上記に記載している内容は基本的Salesforceのヘルプドキュメントにあっちこっちに記載してありますが、今まで経験した内容をまとめて本文にまとめました。