覚書 – データ仮想化について考える

By | January 30, 2024

データ仮想化のパターン

  • 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に埋め込む必要なし