Salesforceを使ったシステム構築
Salesforceを使ったシステム構築では頻繁に利用する「RecordType(レコードタイプ)」ですが、Salesforceを触ったことがないまたは触って間もない方には馴染みが少ないワードでしょう。
当記事ではそんなRecordTypeの概要や利点、使用方法などを紹介していきます。
レコードタイプとは?
レコードタイプとは、1つのオブジェクトに対して複数のページレイアウト等を利用する際に使用するSalesforceの機能と表現できます。
Salesforceのオブジェクト(=テーブル)とページレイアウト(=画面)の関係を説明しておきますと、これらは特に何も設定しなければオブジェクト1つに対してページレイアウトは1つとご理解ください。
ただし実運用の場面では1つのオブジェクトに対してページレイアウトなどを複数持ちたい場合がありますのでその際にRecordTypeを利用します。
レコードタイプを使用するユースケース
RecordTypeを説明するにあたっては具体的な例があった方が理解しやすいので、今回の記事では以下のようなケースを想定することにします。
<利用する部署>
・営業のハードウェア販売部門(以下ハード部門)
・コンサルティング部門(以下コンサル部門)
<業務要件>
・この会社ではリード(=見込客)獲得のためにセミナーを開いており、リードの取得はコンサル部門のみが行う。
・営業活動のプロセス(例:リード獲得→初回訪問→提案→見積提示→フォロー→受注)はハード部門とコンサル部門で異なる。
レコードタイプを利用する4つの利点
RecoedTypeを利用すると以下の4つのことをできるようになります。
・1つのオブジェクトで複数のページレイアウトを使用できる
・1つのオブジェクトで複数の選択リストを使用できる
・1つのオブジェクトで複数のビジネスプロセスを使用できる
・作成したレコードタイプはプロファイル毎に割り当てるが否かを設定できる
それぞれどのようなシーンで役に立つのかを見ていくことにします。
どのような場合に複数のページレイアウトを利用するのか?
1つのオブジェクトのデータを表示する場合でも使用するユーザーによって見たい項目が異なる場合に複数のページレイアウトを利用します。
今回のユースケースでは、ハード部門とコンサル部門の2つの部門が存在しており取り扱う商品やサービスが両部で異なります。従っておのずとSalesforceで扱いたい項目も異なることになります。
例えば、以下の項目について考えてみます。
A、顧客名、案件名称、販売価格、受注予定日、リードソース、営業担当者
B、保証期間、カスタマーサポート有無
C、手付金、自動契約
Aに関してはハード部門、コンサル部門に関わらず両部で必要となる項目であり、Bはハード部門のみで必要、Cはコンサル部門でのみ必要な項目とします。
この場合、コンサル部門のユーザーがSalesforceを開いた場合はCの項目は必要ないので画面に表示させたくありません。逆にコンサル部門のユーザーはBの項目は不要です。
このようにユーザーによって見せたい画面項目を変えたいときにRecordTypeを利用することで、ハード部門、コンサル部門それぞれのページレイアウトを見せられるようになります。
どのような場合に複数の選択リスト値を使うのか?
使用するユーザーによって選択リストの値を変えたい場合に利用します。
今回のユースケースでは、ハード部門とコンサル部門の2つの部門が存在しており、案件の情報源も両部で異なるとします。
例えば「ハード部門の案件の情報源は1・お客様1・販売代理店3HPからの問い合わせ」、「コンサル部門は1・お客様2HPからの問い合わせ2セミナー」だとします。
この場合、案件の画面に情報源という項目があった場合、選択肢として他の部門の選択肢「ハード部門であれば3セミナー」は必要ないということになります。
このように、ユーザーによって選ばせたい選択リスト値を変えたいときにRecordTypeを利用することで、ハード部門、コンサル部門それぞれに必要な選択肢のみを選択可能にできます。
どのような場合に複数のビジネスプロセスを使うのか?
使用するユーザー(部門)によってビジネスプロセスが異なる場合に利用します。
今回のユースケースでは、ハード部門とコンサル部門の2つの部門が存在しており、リード獲得から受注に至るまでのプロセスも両部で異なります。
例えば、ハード部門の場合、
・引き合い→在庫チェック→見積提示→在庫引き当て→受注
コンサル部門の場合、
・引き合い→初回ヒアリング→提案→見積提示→受注
だとします。
この場合、案件の画面に表示されるビジネスプロセスも上記のとおりその部門にあったものを表示する必要があります。
このように、ユーザー(部門)によって異なる営業プロセスを使用している場合にRecordTypeを利用することで、ハード部門、コンサル部門それぞれに適切なビジネスプロセスを表示できます。
RecordTypeを利用する際に設定すべき事項とは?
RecordTypeと、これまでに説明してきたページレイアウトや選択リスト、プロセスを関連付ける必要があります。
どういうことかと申しますと、これまでのおさらいにもなりますが1人のユーザーから見た場合に複数のレコードタイプ・複数のページレイアウト・選択リスト、プロセスが存在することになります。
例えばハード部門の担当Aさんも設定次第では、コンサル部門のページレイアウトが見えてしまうことにもなるということです。
よって、お客様の要件を基に各ユーザー(≒プロファイル)に適切にレコードタイプの利用権限を付与する必要があります。
Salesforceではこの設定については柔軟に設定が可能で、例えば担当者は自分の部門のレコードタイプだけ使用し、部門長は両部(ハード部門、コンサル部門)のレコードタイプを使用するように設定できます。
RecordTypeとページレイアウトの関係性は?
RecordTypeとページレイアウトは1:1の関係になります。また同様にRecordTypeと関連リストの選択肢、RecordTypeとプロセスも1:1の関係になります。
>また、プロファイルとRecordTypeの関係は、1:Nとなります。従って1ユーザーが1つのプロファイルだけを使用できるという設定もできますし、複数のレコードタイプを使用できるという設定もできるということです。
例えば営業部門長がハード部門とコンサル部門の両部のデータを見たり更新したりする必要がある場合は、営業部門長プロファイルに、ハード部門レコードタイプとコンサル部門レコードタイプを割り当てることで実現できます。
レコードタイプを利用して開発の効率化を図りましょう
Salesforceの特徴の一つである「設定レベルでシステムが構築できる」という点は、一見少し複雑な権限の制御などはできないと思われがちですが、これまでご覧いただいた通りSalesforce独自の機能であるRecordTypeを理解し利用することで解決できる部分も数多くあります。
つまりSalesforceの理解を深めることでコードを書かなくてもお客様のお困りごとを解決したりご要望を叶えることが可能となります。
今回はRecordTypeという、Salesforceで構築した人ならば必ずと言っていいほど聞いたことがあるくらいの代表的な機能でした。
他にもSalesforceにはコードを書かずに構築するための機能が数多く揃っていますので、これからエンジニアを目指す方々にとっても、すでにエンジニアの経験はあるがSalesforceにチャレンジしようと考えている方にとっても学ぶ価値は大いにあると言えるでしょう。]]>
この記事の監修者・著者
-
株式会社オープンアップITエンジニア
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞