
CData Sync V25.3 の新機能である、Salesforce の数式フィールドをレプリケートする際の不便を解消するSalesforce_Formulas 機能についてご紹介します。
データ同期の隠れた課題を解決する
Salesforceのデータ同期において、多くの開発者や管理者が見落としがちな重要な課題があります。
それは数式項目(Formula Fields)の同期です。
今回は、CData Syncが提供する「Replicating Salesforce Formula Fields」機能を使用した、アプローチと実践的な活用方法をご紹介します。
なぜ数式項目の同期は特別な配慮が必要なのか?
通常のフィールドとは異なる振る舞い
Salesforceの数式項目は、標準フィールドと異なり、再計算が行われて値が変化してもSystemModStampが更新されないという特性があります。
このため、従来のSystemModStamp を基準にした差分レプリケーションでは最新の計算結果が同期先に反映されない可能性があり、数式項目の変更を正確に追跡することが困難でした。
CData Syncのソリューション:2つのスキーマアプローチ
今回、この問題を解決するため、CData Sync にSalesforce_Formulas という専用スキーマが追加されました。
1. Salesforceスキーマ(標準フィールド向け)
2. Salesforce_Formulasスキーマ(数式項目専用)
数式項目に特化した完全リフレッシュ方式
常に最新の計算結果を保証
新規追加された数式項目の自動検出と同期
実装方法:ベストプラクティス
Salesforce_Formulasスキーマの活用シーン
タスクを追加または編集する際、Salesforce_Formulasスキーマを選択すると、以下の動作が実現されます:
主な特徴
IDフィールドと数式フィールドのみが利用可能
実行のたびにTruncate & Reload(完全リフレッシュ)
Alter Schemaプロパティ有効時:Salesforceで新規作成された数式項目を自動的に同期対象に追加
推奨される使用ケース
数式の定義が頻繁に変更される環境
常に最新の計算結果が必要な分析用データベース
数式項目の追加・変更を自動的に反映したい場合
Salesforceスキーマでの制御方法
標準のSalesforceスキーマを使用する場合、Skip Formula Fieldsプロパティで柔軟な制御が可能です:
Skip Formula Fields = True → 数式項目を除外(標準フィールドのみ同期)
Skip Formula Fields = False → 数式項目を含める(混合同期)
重要:このプロパティの変更は、Salesforceスキーマにのみ影響し、Salesforce_Formulasスキーマの動作には影響しません。
導入のメリット
データの正確性向上
数式の変更が確実に同期先に反映され、データの不整合を防ぎます。
パフォーマンスの最適化
標準フィールドと数式項目を分離することで、それぞれに最適な同期戦略を適用できます。
自動化による運用負荷軽減
新規数式項目の自動検出により、メンテナンス作業が大幅に削減されます。
柔軟な設定オプション
業務要件に応じて、数式項目の同期方法を細かく制御できます。
CData Sync での設定例
業務要件に応じて、数式項目の同期方法を細かく制御できます。
・Salesforce オブジェクト
サンプルとして、Book オブジェクトのPrice を1.1 倍する数式を持つフィールドを用意します。

CData Sync のタスクでSalesforce_Formulas スキーマから数式が含まれているテーブルを指定します。

追加されたタスクのカラムを見ると、Id と数式カラムが含まれています。

実行します。

同期先のテーブルを確認すると、Salesforce のBook オブジェクトにある数式フィールドの値がレプリケートされていることが確認できます。

・Salesforce スキーマとの違い
Salesforce Formulas スキーマのテーブルは、Salesforce スキーマのテーブルにある更新日時(SystemModstamp) に相当するカラムがなく、常に洗い替えとなります。
常に数式フィールドから最新の値を取り込むことにより、Salesforce で再計算が行われた場合でもSalesforceの値を同期先に連携することができます。
実装時のベストプラクティス
推奨構成パターン
高頻度更新環境
標準フィールド:Salesforceスキーマ(Skip Formula Fields = True)
数式フィールド:Salesforce_Formulasスキーマ(日次完全リフレッシュ)
リアルタイム分析環境
標準フィールド:Salesforceスキーマ(Skip Formula Fields = True)
数式フィールド:Salesforce_Formulasスキーマ(高頻度完全リフレッシュ)
大規模データ環境
標準フィールド:Salesforceスキーマ(Skip Formula Fields = True/False)
数式フィールド:Salesforce_Formulasスキーマ(重要な数式項目のみ選択)
まとめ
CData Syncの「Replicating Salesforce Formula Fields」機能を活用することで、数式項目同期の課題を解決することができます。
2つのスキーマを使い分けることで、以下を実現できます:
・データの完全性と正確性の保証
・パフォーマンスと効率性の両立
・自動化による運用の簡素化
・ビジネス要件に応じた柔軟な構成
Salesforceのデータ同期でお悩みの方は、ぜひこの機能を活用して、より信頼性の高いデータ基盤を構築してください。