独自のスクラッチ組織定義ファイルを作成する
スクラッチ組織に関連付けられている次のような設定および設定オプションにより、そのシェイプが決まります。
- エディション — スクラッチ組織の Salesforce エディション (Developer、Enterprise、Group、Professional など)。
- アドオン機能 — デフォルトではエディションに含まれない機能 (マルチ通貨など)。
- 設定 — Salesforce 製品の設定に使用される組織と機能の設定 (Chatter やコミュニティなど)。
異なるスクラッチ組織定義ファイルを設定すると、テスト用に異なるシェイプを持つスクラッチ組織を簡単に作成できます。たとえば、定義ファイルに ChatterEnabled 組織設定を指定することで、スクラッチ組織の Chatter を有効または無効にできます。以前のようにサンプルデータとメタデータを含むスクラッチ組織が必要な場合、hasSampleData オプションを追加します。
このファイルをプロジェクトで保持し、バージョン管理システムにチェックインすることをお勧めします。たとえば、すべてのチームメンバーが使用できるように、チームバージョンを作成してチェックインします。個々の開発者も、スクラッチ組織定義パラメータを含む自分のローカルバージョンを作成できます。これらのパラメータとして、スクラッチ組織の作成者を識別するメールや姓などがあります。
スクラッチ組織定義ファイルの名前
force:org:create CLI コマンドでスクラッチ組織を作成するときには、スクラッチ組織設定ファイルへのパスを指定します。
- コマンドラインで Salesforce CLI を使用している場合は、このファイルには任意の名前を指定でき、CLI がアクセスできる任意の場所に配置できます。
- VS Code 向け Salesforce 拡張機能を使用する場合、スクラッチ組織定義ファイルが config フォルダにあり、そのファイル名が scratch-def.json で終わっていることを確認してください。
サンプルリポジトリを使用する場合や Salesforce DX プロジェクトを作成する場合、サンプルのスクラッチ組織定義ファイルは config ディレクトリにあります。異なる組織シェイプやテストシナリオ用に異なる組織設定ファイルを作成できます。識別しやすいように、ファイルにはわかりやすい名前を付けます (たとえば、devEdition-scratch-def.json や packaging-org-scratch-def.json など)。
スクラッチ組織定義ファイルのオプション
スクラッチ組織定義ファイルには次のオプションを指定できます。
| 名前 | 必須かどうか | 指定がない場合のデフォルト |
|---|---|---|
| orgName | いいえ | 会社名 |
| country | いいえ | Dev Hub の国。この値を上書きする場合は、英大文字 2 文字の ISO-3166 国コード (Alpha-2 コード) を入力します。これらのコードの完全なリストは、https://www.iso.org/obp/ui/#search などのさまざまなサイトに掲載されています。この値により、スクラッチ組織のロケールが設定されます。 |
| username | いいえ | test-unique_identifier@example.com |
| adminEmail | いいえ | スクラッチ組織作成要求を行った Dev Hub ユーザのメールアドレス |
| edition | はい | なし。有効なエントリは Developer、Enterprise、Group、Professional |
| description | いいえ | なし。2,000 文字の自由形式のテキスト項目。 説明は、スクラッチ組織の目的を文書化するのに適した方法です。Dev Hub で説明の表示や編集ができます。アプリケーションランチャーから、[スクラッチ組織情報] または [有効なスクラッチ組織] を選択し、スクラッチ組織番号をクリックします。 |
| hasSampleData | いいえ | 有効な値は、true および false です。デフォルトは false で、サンプルデータなしで組織が作成されます。 |
| language | いいえ | 国のデフォルト言語。Dev Hub ロケールで設定された言語を上書きするには、「サポート言語」でこの項目で使用するコードを確認してください。 |
| features | いいえ | なし |
| release | いいえ | Dev Hub 組織と同じ Salesforce リリース。オプションは preview または previous です。Salesforce リリースの移行期間中にのみ使用できます。 |
| settings | いいえ | なし |
| objectSettings | いいえ | なし。objectSettings を使用して、オブジェクトレベルの共有設定とデフォルトのレコードタイプを指定します。スクラッチ組織に正常にインストールするには、一部のパッケージで、オブジェクトレベルの共有設定とデフォルトのレコードタイプを定義する必要があります。objectSettings オプションは対応付けです。各キーは、商談や取引先などのオブジェクトの小文字の名前です。各キーの定義も、次の 2 つの値のいずれかを指定した対応付けです。
|
| <カスタム項目の API 参照名> | いいえ | なし。ScratchOrgInfo オブジェクトに関する追加情報を追跡する Dev Ops の使用事例で役立ちます。カスタム項目を作成してから、スクラッチ組織定義で API 参照名を使用して参照します。 |
| sourceOrg | いいえ | なし。15 文字のソース組織 ID。スクラッチ組織の組織シェイプを使用して、スクラッチ組織を作成している場合にのみ使用します。「組織シェイプに基づいたスクラッチ組織の作成」を参照してください。 |
サンプルのスクラッチ組織定義ファイル
1{
2 "orgName": "Acme",
3 "edition": "Enterprise",
4 "features": ["Communities", "ServiceCloud", "Chatbot"],
5 "settings": {
6 "communitiesSettings": {
7 "enableNetworksEnabled": true
8 },
9 "mobileSettings": {
10 "enableS1EncryptedStoragePref2": true
11 },
12 "omniChannelSettings": {
13 "enableOmniChannel": true
14 },
15 "caseSettings": {
16 "systemUserEmail": "support@acme.com"
17 }
18 }
19}コミュニティなど、機能によっては、スクラッチ組織で適切に機能するために機能と設定の組み合わせが必要になることがあります。次のコードスニペットでは、機能と関連付けられた設定の両方が設定されます。
1"features": ["Communities"],
2 "settings": {
3 "communitiesSettings": {
4 "enableNetworksEnabled": true
5 },
6 ...ScratchOrgInfo のカスタム項目の作成
スクラッチ組織定義にオプションを追加して、Dev Ops プロセスを管理できます。これを行うには、ScratchOrgInfo オブジェクトのカスタム項目を作成します。ScratchOrgInfo は、スクラッチ組織の作成や削除を追跡します。
- Dev Hub 組織で、カスタム項目を作成します。
- [設定] から [クイック検索] ボックスに「オブジェクトマネージャ」と入力し、[オブジェクトマネージャ] を選択します。
- [スクラッチ組織情報] をクリックします。
- [項目とリレーション] で、[新規] をクリックします。
- カスタム項目を定義し、[保存] をクリックします。
- カスタム項目を作成したら、スクラッチ組織定義ファイルで API 参照名で参照して、カスタム項目に値を渡すことができます。
workitem と release の 2 つのカスタム項目を作成するとします。カスタム項目と関連付けられている値をスクラッチ組織定義に追加します。
1{ 2 "orgName": "MyCompany", 3 "edition": "Developer", 4 "workitem__c": "W-12345678", 5 "release__c": "June 2018 pilot", 6 7 "settings": { 8 "omniChannelSettings": { 9 "enableOmniChannel": true 10 } 11 } 12} - スクラッチ組織を作成します。
オブジェクトレベルの共有設定とデフォルトのレコードタイプの設定
正常にインストールするには、一部のパッケージでインストール前に、オブジェクトレベルの共有設定とデフォルトのレコードタイプを定義する必要があります。objectSettings を使用して、共有設定とデフォルトのレコードタイプを設定します。このサンプルのスクラッチ組織定義ファイルでは、商談の共有モデルとデフォルトのレコードタイプ、および取引先のデフォルトのレコードタイプを設定しています。
1{
2 "orgName": "MyCompany",
3 "edition": "Developer",
4 "features": ["Communities", "ServiceCloud", "Chatbot"],
5 "settings": {
6 "communitiesSettings": {
7 "enableNetworksEnabled": true
8 }
9 }
10 "objectSettings": {
11 "opportunity": {
12 "sharingModel": "private",
13 "defaultRecordType": "default"
14 },
15 "account": {
16 "defaultRecordType": "default"
17 }
18 }
19}