オブジェクトモデルを作成する
Salesforce Platform には、アプリケーションをより速くより簡単に作成できるようにする多数の機能を備えた強力なデータベースがあります。データを行や列に格納するスプレッドシートやリレーショナルデータベースとは異なり、Salesforce Platform ではオブジェクトを使用してデータを格納します。オブジェクトは通常のスプレッドシートやデータベースの機能をすべて備えている他、機能性や汎用性を高める拡張機能が追加されています。各オブジェクトは多数の項目で構成され、この項目がスプレッドシートやデータベースの列に相当します。データはオブジェクトのレコードに格納され、このレコードが行に相当します。
オブジェクトには次の 2 種類があります。
-
標準オブジェクト: 取引先、取引先責任者、商談などの標準タブにデータを格納するために使用するオブジェクトで、デフォルトで Salesforce に含まれています。たとえば、宇宙ステーションの一部をタイムシェアとして一般向けに売り出すことにした場合、CRM 機能がすでに実装されています。
-
カスタムオブジェクト: アプリケーション固有の情報を格納するために作成する新規オブジェクトです。カスタムオブジェクトは、標準オブジェクトが提供する機能を拡張します。Space Station Construction (宇宙ステーション建設) アプリケーションでは、専用のカスタムオブジェクトを使用します。
オブジェクトや項目、リレーションをはじめとする多数の優れた機能について詳しく知りたい方は、このプロジェクトの終了後に「データモデリング」モジュールを参照してください。
データモデル
ここで作成するアプリケーションは、次の 3 つのカスタムオブジェクトを使用します。
-
Space Station: プロジェクトの状況とその補給品や人員を追跡する主オブジェクトです。
-
Resource: プロジェクトの要は適切な「人員配置」であり、配属する人材が必要です。ここでは、Resource カスタムオブジェクトを使用して、建設プロジェクトの任務にあたる人員数と各人の稼働時間を追跡します。
-
Supply: 宇宙ステーションの建設には補給品や装備も必要です。このオブジェクトは、補給品とその費用の追跡に使用します。
ERD (エンティティ関係図) があると便利ですが、オブジェクトリレーションがその役割を果たします。では、上記のオブジェクトを作成していきましょう。
Space Station カスタムオブジェクト
前のステップでは、Space Station カスタムオブジェクトを作成しました。次は、そのオブジェクトのカスタム項目を作成する必要があります。
- Trailhead Playground で、[Setup (設定)] をクリックして、新しいタブで起動します。
- [Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
[Space Station (宇宙ステーション)] を選択します。
- 左側のナビゲーションの [Fields & Relationships (項目とリレーション)] を選択して、[New (新規)] をクリックします。
カスタム項目を作成する準備ができました。では始めましょう。
ステップ 1: [Project Status (プロジェクトの状況)] 項目を追加する
プロジェクトを管理する場合の主要な総計値としてまず挙げられるのが、状況です。上司にプロジェクトの進捗状況を聞かれて答えられないことほど恥ずかしいことはありません。そこで、選択リスト項目を作成して、ユーザーがあらかじめ定義された値の中から状況を選べるようにします。
- [Data Type (データ型)] に [Picklist (選択リスト)] を選択し、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Project Status
-
[Enter values, with each value separated by a new lin (各値を改行で区切って入力します。)] の横にあるラジオボタンをオンにします。
- 選択リストに次の値を入力します (1 行に 1 つ)。
Green
Yellow
Red
Complete
- [Display values alphabetically, not in the order entered (値を入力順ではなく文字コード順に表示)] をオフにします。
- [Use first value as default value (最初の値をデフォルト値とする)] をオンにします。
-
[Restrict picklist to the values defined in the value set (値セットで定義された値に選択リストを制限します)] をオフにします。
- [Field Name (項目名)] が Project_Status になっていることを確認します。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして、[Project Status (プロジェクトの状況)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 2: [Shield Status (シールドの状況)] 項目を追加する
宇宙ステーションの主な目的は、銀河系を探索し、その間の安全を確保することです。そのため、最も重要な防御機構であるシールドの状況を追跡する必要があります。この特殊な力場シールドは、充電に時間がかかるため、その状況を把握することが不可欠です。
[Project Status (プロジェクトの状況)] と同様に、選択リスト項目を作成してユーザーがあらかじめ定義された値の中から状況を選べるようにします。
- [Data Type (データ型)] に [Picklist (選択リスト)] を選択し、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Shield Status
-
[Enter values, with each value separated by a new lin (各値を改行で区切って入力します。)] の横にあるラジオボタンをオンにします。
- 選択リストに次の値を入力します (1 行に 1 つ)。
Not Yet Operational
(未稼働状態)Fully Operational
(完全稼働状態)
- [Display values alphabetically, not in the order entered (値を入力順ではなく文字コード順に表示)] をオフにします。
- [Use first value as default value (最初の値をデフォルト値とする)] をオンにします。
-
[Restrict picklist to the values defined in the value set (値セットで定義された値に選択リストを制限します)] をオフにします。
- [Field Name (項目名)] が Shield_Status になっていることを確認します。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save (保存)] をクリックして、[Shield Status (シールドの状況)] 項目をページレイアウトに追加し、項目を保存して、[Space Station Custom Object (宇宙ステーションカスタムオブジェクト)] ページに戻ります。
Resource カスタムオブジェクト
宇宙ステーションを建設する場合は、実際の作業にあたる人員が必要です。宇宙のどこからともなく強靭な戦隊がやってきて作業をしてくれるようなことはありません。人員と、その作業量を追跡する手段が必要になります。この役割を果たすのが、Resource オブジェクトです。
-
歯車アイコン をクリックして、[Setup (設定)] を選択します。新しいタブで [Setup (設定)] が起動します。
- [Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
[Create (作成)] ドロップダウンをクリックし、[Custom Object (カスタムオブジェクト)] を選択します。
- [Custom Object Definition (カスタムオブジェクトの定義)] ページで、オブジェクトを次の手順で作成します。
- Label (表示ラベル):
Resource
- Plural Label (表示ラベル(複数形)):
Resources
- Record Name (レコード名):
Resource Name
-
[Allow Reports (レポートを許可)] チェックボックスをオンにします。
-
[Save (保存)] をクリックします。
次に、カスタムタブを作成します。
-
[Home (ホーム)] タブをクリックし、[Quick Find (クイック検索)] に 「Tabs」 (タブ) と入力して、[Tabs (タブ)] を選択します。
- [Custom Object Tab (カスタムオブジェクトタブ)] で、[New (新規)] をクリックします。
- [Object (オブジェクト)] には [Resource (人員)] を選択します。
- [Tab Style (タブスタイル)] には任意のアイコンを選択します。
- すべてデフォルトのままにします。[Next (次へ)]、[Next (次へ)]、[Save (保存)] の順にクリックします。
Space Station オブジェクトの場合と同様に、項目をいくつか作成する必要があります。
- [Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
Resource カスタムオブジェクトを選択します。
-
[Fields & Relationships (項目とリレーション)] セクションを選択します。
-
[New (新規)] をクリックします。
ステップ 1: [Quantity (数量)] 項目を追加する
[Resource 名 (人員名)] は、戦隊に必要な人員の種別 (配管工、排気口検査官、ナビゲーターなど) を追跡します。そのため、種別ごとに何人必要かを決定する項目が必要です。
- [Data Type (データ型)] に [Number (数値)] を選択して、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Quantity
-
[Required (必須項目)] のチェックボックスをオンにして、この項目に常に数字が入力されるようにします。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして、[Quantity (数量)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 2: [Utilization (稼働状況)] 項目を追加する
人員がプロジェクトに配属されていても、フルタイムで稼働しているとは限りません。たとえば、あるプロジェクトの稼働状況が 50% で、別のプロジェクトが 50% である場合もあります。この項目は人員の稼働状況を追跡するもので、総計値や作業日程を確認する場合に重要になります。
- [Data Type (データ型)] に [Percent (パーセント)] を選択して、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Utilization
-
[Required (必須項目)] のチェックボックスをオンにして、この項目に常にパーセント値が入力されるようにします。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして、[Utilization (稼働状況)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 3: [Space Station (宇宙ステーション)] 項目 (主従関係) を追加する
人員は特定の宇宙ステーションに配属されているため、オブジェクト間にこのリレーションを作成する必要があります。ここでは、人員から宇宙ステーションへの主従関係を作成します。この作業により、2 つのオブジェクト (子、または「従」) と別のオブジェクト (親、または「主」) の間に特殊なリレーションが作成されます。2 つのオブジェクト間に密接なつながりがある場合は主従関係を使用できます。たとえば、ブログとブログの投稿について考えてみます。ブログが削除されると、そのブログの投稿も削除されます。この他にもリレーションにはさまざまなメリットがあります。その詳細は後ほど説明します。
- [Data Type (データ型)] に [Master-Detail Relationship (主従関係)] を選択して、[Next (次へ)] をクリックします。
- [Related To (関連先)] 選択リストから [Space Station (宇宙ステーション)] を選択して、[Next (次へ)] をクリックします。
- Field Label (項目の表示ラベル): デフォルトで Space Station (宇宙ステーション)
- Field Name (項目名):
Space_Station
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Next (次へ)] をクリックして、[Space Station (宇宙ステーション)] 項目をページレイアウトに追加します。
-
[Save (保存)] をクリックして、[Space Station (宇宙ステーション)] 項目をページレイアウトに追加し、Space Station レコードの関連リストをページレイアウトに含めてから (この詳細は後述) 項目を保存して、[Resource Custom Object (人員カスタムオブジェクト)] ページに戻ります。
Supplies カスタムオブジェクト
これが最後のカスタムオブジェクトです。宇宙ステーションを建設するためには、宇宙波発生器、コーヒー、コンデンサー、ダクトテープなどの補給品や装備が必要です。こうした物品はコストがかさむため、予算を超えないように費用を記録して、上司に呼びつけられることがないようにします。
- オブジェクトマネージャーに戻るには、 をクリックして [Setup (設定)] を選択します。
- [Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
[Create (作成)] ドロップダウンをクリックし、再び [Custom Object (カスタムオブジェクト)] を選択して開始します。(この操作はもうお手のものかもしれません。)
- [Custom Object Definition (カスタムオブジェクトの定義)] ページで、オブジェクトを次の手順で作成します。
- Label (表示ラベル):
Supply
- Plural Label (表示ラベル(複数形)):
Supplies
-
[Allow Reports (レポートを許可)] チェックボックスをオンにします。
-
[Save (保存)] をクリックします。
- 次に、カスタムタブを作成します。[Home (ホーム)] タブをクリックし、[Quick Find (クイック検索)] に
Tabs
(タブ) と入力して、[Tabs (タブ)] を選択します。
-
[Custom Object Tab (カスタムオブジェクトタブ)] で、[New (新規)] をクリックします。
-
[Object (オブジェクト)] には [Supply (補給品)] を選択します。
-
[Tab Style (タブスタイル)] には任意のアイコンを選択します。
- すべてデフォルトのままにします。[Next (次へ)]、[Next (次へ)]、[Save (保存)] の順にクリックします。
Space Station オブジェクトの場合と同様に、項目をいくつか作成する必要があります。
- [Home (ホーム)] の横にある [Object Manager (オブジェクトマネージャー)] タブをクリックします。
-
Supply カスタムオブジェクトを選択します。
-
[Fields & Relationships (項目とリレーション)] セクションを選択します。
-
[New (新規)] をクリックします。
ステップ 1: [Quantity (数量)] 項目を追加する
電球やユニフォームを注文するときは、数量を記録する必要があります。
- [Data Type (データ型)] に [Number (数値)] を選択して、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Quantity
-
[Required (必須項目)] のチェックボックスをオンにして、この項目に常に数字が入力されるようにします。
- ユーザーにどの補給品も 2 つ以上注文してもらうために (予備があると安心できるので)、[Default Value (デフォルト値)] に 2 と入力します。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして、[Quantity (数量)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 2: [Unit Cost (単価)] 項目を追加する
補給品や装備の単価も記録する必要があります。たとえば、コーヒーカップを 1,000 個注文する場合、その単価が 2.75 ドルであることも記録します。
- [Data Type (データ型)] に [Currency (通貨)] を選択して、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Unit Cost
- Length (文字数):
16
- Decimal Places (小数点の位置):
2
-
[Required (必須項目)] のチェックボックスをオンにして、この項目に常に数字が入力されるようにします。
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして、[Unit Cost (単価)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 3: [Total Cost (合計額)] 項目 (数式項目) を追加する
各品目の数量と単価を記録したところで次に必要となるのが、全品目の合計額を把握することです。これらの金額を手計算 (単価 x 数量 = 合計) するようなことはせず、数式項目を使用して Salesforce Platform に計算してもらいましょう。数式項目はスプレッドシートの数式とほぼ同じで、実行時に計算されます。この項目を活用すれば大幅に手間が省けます。
- [Data Type (データ型)] に [Formula (数式)] を選択して、[Next (次へ)] をクリックします。
- カスタム項目の詳細を入力します。
- Field Label (項目の表示ラベル):
Total Cost
- Field Name (項目名):
Total_Cost
- Formula Return Type (数式の戻り値のデータ型): 通貨
- Decimal Places (小数点の位置):
2
-
[Next (次へ)] をクリックします。
- 各補給品レコードの合計額を確認したいため、
Quantity__c * Unit_Cost__c
という数式を入力します。
-
[Check Syntax (構文を確認)] をクリックして数式の構文が正しいことを確認し、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Save & New (保存 & 新規)] をクリックして [Total Cost (合計額)] 項目をページレイアウトに追加し、項目を保存して、ウィザードの最初のステップに戻ります。
ステップ 4: [Space Station (宇宙ステーション)] 項目 (主従関係) を追加する
補給品も人員と同様に、主従関係を使用して特定の宇宙ステーションレコードに関連付ける必要があります。
- [Data Type (データ型)] に [Master-Detail Relationship (主従関係)] を選択して、[Next (次へ)] をクリックします。
- [Related To (関連先)] 選択リストから [Space Station (宇宙ステーション)] を選択して、[Next (次へ)] をクリックします。
- Field Label (項目の表示ラベル): デフォルトで Space Station (宇宙ステーション)
- Field Name (項目名):
Space_Station
- その他の項目はデフォルトのまま変更せず、[Next (次へ)] をクリックします。
- もう一度 [Next (次へ)] をクリックして、項目の表示とセキュリティのデフォルト設定を受け入れます。
-
[Next (次へ)] をクリックして、[Space Station (宇宙ステーション)] 項目をページレイアウトに追加します。
-
[Save (保存)] をクリックして、[Space Station (宇宙ステーション)] 項目をページレイアウトに追加し、Space Station レコードの関連リストをページレイアウトに含めてから (この詳細は後述) 項目を保存して、[Resource Custom Object (人員カスタムオブジェクト)] ページに戻ります。
お疲れさまでした。大変でしたがやり遂げました。これで、アプリケーションの作成で最も時間のかかる作業が無事終了しました。
リソース