Contents
データ仮想化のパターン
- Salesforce Connect
- External Object
- External Object + LWC
- Request & Reply
- LWC + R&R
- Screen Flow + External Sevice
データ仮想化に近接する連携パターン
- UI Mashup
- Canvas
- Data Visualization
- CRM Analytics
- Tableau
理解しておくべきExternal Objectの特性
- pros
- (ODataで通信するため)API Callout数の制限を受けない
- 標準UIが利用できる(グローバル検索・リストビュー・関連リスト・レポート)
- フローやApexの起点とはなれないが、取得・更新の対象となることはできる
- cons
- 行レベルセキュリティの機能は制限ルールのみ
- コールアウト数:2万/hour
- 新規取得行数:10万行/hour
- 最大ページサイズ:2000行
↓ 結論
External ObjectはLDVに弱い。制限ルールを用いたAccount IDやContact IDなどによる絞り込みが保証されるケースでのみ利用されるべきである(※AccountIDに関してはUser.AccountIDのように標準項目を引っ張ってこれない悲しい仕様なので、カスタム項目を用意してあげる必要あり)。逆に絞り込みが保証される場合は、TTMの分だけR & Rより優位性があると言える。
データ仮想化の適用ルール
前提:SFで持つにはレコード数が多すぎる || リアルタイム性が求められる(=バッチ同期ではデータ鮮度が低い)
- External Object:絞り込みが保証されている && 行レベルセキュリティが不要
- ERPの注文情報・請求情報へのアクセス for 内部ユーザ
- DWHの注文履歴・請求履歴へのアクセス for 内部ユーザ
- 外部システムの規制関連情報(個人情報・健康情報)の表示 for 内部ユーザ
External Object + LWC:External Objectを利用したいが、行レベルセキュリティが必要事実上なし(理論上はコールアウト数制限の回避など)
- LWC + R&R:行レベルセキュリティが必要 || 単一レコードの情報だけ取得できれば良い || 複数オブジェクトの情報を単一ページ上で表示したい
- ERPの注文情報・請求情報の表示 for 外部ユーザ
- DWHの注文履歴・請求履歴の表示 for 外部ユーザ
- 在庫管理システムの在庫情報の表示
- 外部システムの企業財務情報の表示
- Screen Flow + External Sevice:フローから情報取得したい
- Onboarding時のValidation(Address・Insurance・Bank Account)
データ仮想化に近接する連携パターンの適用ルール
- Canvas:外部アプリの特定ページを丸ごと埋め込みたい && 外部アプリの認証機能のカスタマイズが可能
- CRM Analytics:高度な分析 && 行レベルセキュリティ付きでSFに埋め込みたい
- Tableau:高度な分析 && 行レベルセキュリティ付きでSFに埋め込む必要なし