
口座ごとの取引履歴って、今までは“最新の取引内容”だけメモってたじゃん?
でもやっぱり、過去の履歴もちゃんと残したくてさ〜



なるほど、それなら“取引履歴”を別のオブジェクトにして、証券口座に紐づけるのがよさそうですね!
履歴が複数あったとしても、管理しやすくなりますよ!



ふむふむ。
でも口座が削除されたときに、取引履歴だけ残るのってややこしいよね~?



なら“主従関係”っていうオブジェクト同士のつなぎ方を使うのはどうでしょう?
親(証券口座)が削除されてお、子(取引履歴)も一緒に消えるようになりますよ!
今回のシナリオ


シナリオ#4では、証券口座オブジェクトを作成して、顧客オブジェクトとルックアップ関係でつなぎました。


でも実務では、「1つの証券口座に複数の取引履歴が存在する」ケースが出てくることもあります。
たとえば──
・証券口座の残高は変わらないのに、実は複数回の取引が行われていた
・一度閉じた口座の履歴だけは残しておきたい
といった場面で、口座ごとに履歴を整理できると、後からの確認がラクになります!
そこで今回は、取引履歴のカスタムオブジェクトを新規作成して、証券口座と主従関係でつなぐ方法をやってみましょう!
今回もデモ環境の画像を交えて順番に説明していくので、一緒に試してみてくださいね!



……とは言ったものの、「主従関係って何?」って思った方もいるかもしれませんね!
サクッと解説します!
主従関係とは?
Salesforceの「主従関係」は、2つのオブジェクトを “親子” のような強い関係で結びつける仕組みです。
たとえば「親が消えると、子も一緒に消える」ようなルールが自動で働きます。



データの整合性を保ちたいときに便利!
「親オブジェクトがなくなったのに、子だけ残ってる」みたいな事態を防げますよ〜
ルックアップ関係との違いは?
比較ポイント | ルックアップ関係 | 主従関係 |
データのつながり方 | 緩く参照するだけ (親は消えても子は残る) | 強く紐づく (親が消えたら子も消える) |
親オブジェクトの入力 | 空欄OK(後から紐づけできる) | 入力しないと保存できない |
使う場面 | 柔軟に関連付けたいとき | 親子で一体管理したいとき |



主従関係では、親オブジェクトの入力が必須です!
カスタムオブジェクトを作ってみよう!
今回は「証券口座」「取引履歴」の2つのオブジェクトを使って、親子関係(主従関係)を作成していきます。
まずは前回の続きとして、「証券口座オブジェクト」から見ていきましょう!
証券口座オブジェクト
まずは前回のシナリオ#4で作成した「証券口座オブジェクト」!
今回はこの「証券口座オブジェクト」をベースに、さらに取引履歴の管理をできるようにしていきます!



顧客オブジェクトと証券口座オブジェクトを「ルックアップ関係」で紐づけることで、「一人の顧客が複数の証券口座を持てるようにするため」の設計を実現していました。
こちらの記事で証券口座オブジェクトを作っています!


取引履歴オブジェクト(主従関係で作成)
今回はここに新しく「取引履歴オブジェクト」を追加して、証券口座と主従関係でつなげていきます!
表示ラベル | 表示ラベル (複数形) | オブジェクト名 | オブジェクト名 | データ型 |
---|---|---|---|---|
取引履歴 | 取引履歴 | TradingHistory | 取引番号 | 自動採番 |



上の表と同じように入力してください!
データ型は自動採番にしてみましょう!
表示形式は何でもいいですが、今回は
“TH-{0000}“にします。


新規作成したカスタムオブジェクトはこんな感じです。


表示ラベル | データ型 |
---|---|
証券口座 | 主従関係 |



取引履歴オブジェクトにカスタム項目を作りましょう!


項目名 | 子リレーション名 |
---|---|
TradingBankAccount | TradingBankAccounts |





証券口座の主従関係項目ができていますね!


画面上で確認してみよう!



主従関係項目とルックアップ項目の作り方はほぼ同じでしたね!
どのような動作をするのか、デモ画面で確認してみましょう!
取引履歴を追加してみる
まずは証券口座のレコードに対して、取引履歴を1件追加してみましょう!


事前に作っていた証券口座レコードを使います。


「関連」を押すと、主従関係でつないだオブジェクトが表示されます。





親レコードから、そのまま子レコードが作れちゃうんです!







特に入力するものも無いので、保存でOK!





取引履歴レコードが問題なく作成されていますね!
今回は「証券口座」項目しかありませんが、色んな項目を作ってカスタマイズも可能です!


証券口座を削除したときの動き





主従関係で結ばれていると、親レコードの削除と同時に、子レコードも削除されてしまうと説明しましたね!
実際に削除されるのか見てみましょう!


TH-0001が紐づいている、1234567の証券口座を削除してみましょう。


TH-0001が自動的に削除されていますね!
主従関係が正常に動作していることがわかります!





おつかれさまでした!
主従関係のバッチリですね!



これで証券口座の取引履歴も管理しやすくなるよ~
ありがとう~



今回はデモ環境でレコードの削除をしてみたけど、実際の業務では試して良いかを確認とってからにしてくださいね!
まとめ
今回は、
「証券口座と取引履歴を主従関係でつなげて管理する」
というパターンをご紹介しました!
主従関係を使えば、
・口座が削除されたときに、取引履歴も一緒に消えてくれる
・データ構造もスッキリして、管理がラクになる
…といったメリットがあります!



オブジェクトなどを設計する際は、「このデータってどうつなげると後で楽かな?」と意識しながら作っていけると良いですね!



そうですね!
最後によくある質問も、ちょこっとまとめておきますね
Q&A
Q. 削除したレコードの復元ってできる?
A.可能です。アプリケーションランチャーで、「ごみ箱」と検索をかければ復元できるレコードが表示されます。


今回削除した「1234567」の証券口座が見つかりました!
復元を押せば大丈夫です!





ただし、ごみ箱を空にした場合や15日を過ぎた場合は復元できなくなるのでご注意を。
Q. カスタムオブジェクトが検索でヒットしない!
A.タグが作成されていないと、検索に出てきません!





シナリオ#4でもタブを作っています!
確認してみてください!


主従関係からルックアップ関係への変更は可能?
A.はい、できます!…が、ちょっと手間がかかります!
主従関係に変えるには、
「すでに存在しているすべての子レコードに、親レコードがちゃんとひもづいてること」
が必須条件になります。
もし1件でも親が未設定(空欄)のレコードがあると、変更できません…!
さらに主従関係にすると以下のような注意点があります。
・親が消えたら子も一緒に消える(=うっかり削除に注意⚠️)
・子レコードの所有者は親と同じになる(誰のデータか管理しづらくなることも)



「とりあえず主従にしてみよう〜」という軽いノリだと、あとで困ることも。
本番でやる前に、テスト環境で動きをしっかり確認するのがおすすめです!
コメント