tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:個人取引先とデータの操作

SalesforceでB2C向けの顧客管理を行うときは個人取引先を使用します。

f:id:tyoshikawa1106:20181221194144p:plain


個人取引先のデータは取引先オブジェクトに格納されます。取引先責任者の標準項目はPerson〜というAPI名でアクセスできます。
f:id:tyoshikawa1106:20181221194354p:plain


Accountオブジェクトにクエリを投げると値を取得できます。
f:id:tyoshikawa1106:20181221194621p:plain

f:id:tyoshikawa1106:20181221194602p:plain


Updateも普通にできます。
f:id:tyoshikawa1106:20181221194731p:plain

f:id:tyoshikawa1106:20181221194804p:plain


個人取引先はPersonContactIdに取引先責任者のIDを保持しています。
f:id:tyoshikawa1106:20181221194959p:plain


個人取引先のContact側の情報はAccountと同じようにクエリで取得できます。
f:id:tyoshikawa1106:20181221195115p:plain

f:id:tyoshikawa1106:20181221195102p:plain


ContactレコードでUpdateも実行できます。
f:id:tyoshikawa1106:20181221195217p:plain

f:id:tyoshikawa1106:20181221195340p:plain


取引先責任者に外部IDがあった場合です。
f:id:tyoshikawa1106:20181221195601p:plain


カスタム項目は取引先オブジェクトで「__pc」という拡張子でアクセスできます。
f:id:tyoshikawa1106:20181221195642p:plain

f:id:tyoshikawa1106:20181221200228p:plain


外部ID項目が存在しているのでUPSERTで利用できるかと思いきや、エラーとなりました。
f:id:tyoshikawa1106:20181221200812p:plain

f:id:tyoshikawa1106:20181221200900p:plain


通常の取引先だったら外部IDでUPSERTできるので処理の書き方自体は大丈夫。
f:id:tyoshikawa1106:20181221200758p:plain


個人取引先のAccountオブジェクトに対してContactオブジェクトの外部IDをつかったUPSERTはできないようです。


Contactオブジェクトの場合はどうでしょう。
f:id:tyoshikawa1106:20181221201043p:plain


こちらは正常に実行できました。取引先責任者が更新されれば個人取引先のデータにも自動で反映されます。
f:id:tyoshikawa1106:20181221201153p:plain


取引先責任者の外部ID項目をつかってUPSERT処理を行う場合は、Contactオブジェクトに対して処理を行えばいいみたいです。


個人取引先はパッと複雑ですがB2Cのデータを管理するときにはかなり柔軟な対応が可能となる機能です。ストレージの消費量の懸念点はありますが、システム構築のしやすさ向上の効果は大きいのでおすすめの機能です。