
最近、口座の管理が複雑になってきてさ…
1人の顧客が複数の証券口座を持っているケースが増えてきて、ややこしくなってきてるんだよね~



なるほど。
顧客オブジェクトの「証券口座」項目は「選択リスト」だから、
複数口座があっても一つしか選べないですね…。
これはどうすればいいんだろう…?



ではいっそのこと、証券口座のカスタムオブジェクトを作ってみませんか!?
顧客オブジェクトとルックアップ関係を結べば、柔軟に管理できます!
将来的に、口座ごとに取引の履歴を紐づければ、より便利になりますよ!
今回のシナリオ
シナリオ#1にて、顧客オブジェクトに「証券口座」項目(選択リスト)を作成しました!
しかし、1人の顧客が複数の証券口座を持つケースには対応しきれない課題が浮上しました。





前に作ったものを見直して、より良い形に作り直すのはSalesforceあるあるなのです!
この問題を解決するために、証券口座のカスタムオブジェクトを新規作成し、顧客オブジェクトとルックアップ関係で紐づける方法を実践していきます!
メリットとして
デモ環境の画像を使って順番に説明していくので、一緒にトライしてみてくださいね!



……とはいえ、「ルックアップ関係って何?」って思った方もいるかもしれませんね!
サクッと解説します!
ルックアップ関係とは?
Salesforceの「ルックアップ関係」は、別のオブジェクトのレコードを参照するための関連付けです。
イメージとしては「お互い独立してるけど、必要があればつながる」ような関係性!
たとえば今回のように、
「顧客」と「証券口座」が別々のオブジェクトとして存在しつつ、
証券口座オブジェクトの中で「この口座は誰のものか?」という形で顧客を参照できます。



ルックアップ関係のポイントは、どちらかのレコードが消えても、相手のレコードは残るところ!
例えば、顧客レコードを削除しても、紐づいていた証券口座のレコードは残ったままです!
2つのオブジェクトにあるレコードを紐づける関連付けは、ルックアップ関係の他に「主従関係(マスターディティール関係)」があります。
主従関係についても簡単に説明しますね!
補足:ルックアップ関係と主従関係の違いは?
Salesforceの「主従関係(マスターディテール関係)」は、2つのオブジェクトを“親子のような強い関係”で結びつける仕組みです。
さっき紹介した「ルックアップ関係」が”ゆるいつながる”関係だったのに対し、主従関係では子オブジェクトが親オブジェクトにがっつり従属します。
そのため、親オブジェクトのレコードを削除すると、子オブジェクトのレコードも一緒に削除されてしまうのが特徴です。



「親が消えたら子も道連れでサヨナラ…。でも、子だけコッソリ削除はOK!」
そんなイメージで覚えると分かりやすいのです!
カスタムオブジェクトを作ってみよう!
Salesforceでは、標準オブジェクトのほかに独自の「カスタムオブジェクト」を作成できます。
今回は「証券口座」というカスタムオブジェクトを新しく作成してみましょう!
オブジェクトマネージャ→新規→カスタムオブジェクトを作成をクリック!


表示ラベル | 表示ラベル(複数形) | オブジェクト名 | レコード名 |
証券口座 | 証券口座 | TradingBankAccount | 口座番号 |
以下の情報を入力して「証券口座」オブジェクトを作成しましょう!
補足:オブジェクト名の決め方
オブジェクト名は、表示ラベルを英訳したものが好ましいです!
単語の1文字目は大文字にすることで、わかりやすくなります!



この書き方を「キャメルケース」って言ったりします!


少し下にスクロールしてレコード名を入力





他は全部デフォルトのままでOK!





念のためオブジェクトの詳細を確認!
ちゃんと作成されていますね!


2つのオブジェクトをルックアップ関係でつなげよう!
次に、作成した「証券口座」オブジェクトに、「顧客」オブジェクトを参照するルックアップ項目を追加します。
これで「この証券口座はどの顧客のもの?」という情報を記録できるようになります。
「項目とリレーション」→「新規」をクリック









選択リストを開くと「顧客」があります!


表示ラベル | 項目名 | 子リレーション名 | その他 |
顧客 | Customer | Customer_TradingAccounts | 必須項目にする |
リレーション名を決める時のコツ
1対多(1:n)の関係なら、子リレーション名は複数形にすると分かりやすくなります!





ステップ4、5はデフォルトのままスキップでOK!


作成したカスタム項目を確認しよう!
データ型が顧客と参照関係となっていることがわかりますね!


顧客項目の詳細情報も確認!





作成お疲れ様でした!
カスタムオブジェクトを検索できるようにするには?



あれ、作ったカスタム項目が表示されないんだけど…!?
Salesforceではタブを作成しないと、カスタムオブジェクトを検索できません!
そのため、オブジェクトを作成した後は、タブの作成も忘れずに行いましょう。
補足:タブがないとどうなる?
・グローバル検索(上部の検索バー)にも表示されない
・レコードを作っても直接リンク以外でアクセスできない
・「オブジェクト作ったのに見つからない!」ってなりがち!
右上の設定(歯車⚙マーク)を押したら、画面の左に「クイック検索」があります。







タブスタイルは自由に選んでOKです!







あとはデフォルトのまま、保存してしまいましょう!
これでアプリケーションランチャーから、「証券口座」が検索できるようになります!





ほんとだ!
これで画面上での確認ができますね!



ラストスパートです!
もうすこしがんばりましょう!
画面上で確認しよう!



事前に「田中一郎」という名前の顧客レコードを用意したので、このレコードを使います!











田中一郎の値が出ました!
これで顧客オブジェクトとつながっていることが確認できます!


証券口座のレコードをそのまま作成してしまいましょう。



真ん中あたりの「関連」を押すと…、
さっき作った証券口座レコードが表示されています!


ちなみに証券口座レコードが2つ以上あっても、下の画像のように管理ができます!





これで顧客情報がより細かく管理できますね!
不要になった項目を非表示にしよう!
もともと顧客オブジェクトにあった「証券口座(選択リスト)」項目は、今回の設計では不要になります。
不要なまま残っていると混乱の原因になるため、非表示化しておきましょう。
補足:なぜ不要な項目を削除しないの?
「もう使わないし、消しちゃっていいかな?」と思うこともありますよね。
表面では使われていなくても、実は裏で活躍している項目もあったりするんです!
たとえば、数式項目や他の機能の条件に使われていたりすると、削除したことで思わぬエラーにつながることも…。



「不要かも?」と思ったら、まずは非表示にしておくのが安心!
削除は、プロジェクトの責任者や管理者の確認が取れてからでも遅くありません♪







この項目がどこで使われているのかが確認できます!


PrefferedCustomerと書かれているのは、#3で作成した数式項目です。







「保存」を押すことを忘れずに!
これにて完成! お疲れさまでした!
まとめ
今回の記事では、以下のようなことができるようになりました
Salesforceのデータ設計において、「どう設計すると将来的に管理しやすいか?」を意識することはとても大切です。
ぜひこの記事を参考に、自分の環境でも色々と試してみてくださいね!



良ければ他の記事も見ていってください!
Salesforceの勉強を一緒にしましょう!
シリーズ一覧はこちら👇




コメント