この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

独自のスクラッチ組織定義ファイルを作成する

スクラッチ組織定義ファイルは、スクラッチ組織の設計図です。Sandbox、パッケージ化、本番など、開発ライフサイクルで使用する組織シェイプを模しています。

スクラッチ組織に関連付けられている次のような設定および設定オプションにより、そのシェイプが決まります。

  • エディション — スクラッチ組織の Salesforce エディション (Developer、Enterprise、Group、Professional など)。
  • アドオン機能 — デフォルトではエディションに含まれない機能。
  • 設定 — Salesforce 製品の設定に使用される組織と機能の設定 (Field Service やコミュニティなど)。

異なるスクラッチ組織定義ファイルを設定すると、テスト用に異なるシェイプを持つスクラッチ組織を簡単に作成できます。たとえば、定義ファイルに FieldService 組織設定を指定することで、スクラッチ組織のフィールドサービスを有効または無効にできます。以前のようにサンプルデータとメタデータを含むスクラッチ組織が必要な場合、hasSampleData オプションを追加します。

このファイルをプロジェクトで保持し、バージョン管理システムにチェックインすることをお勧めします。たとえば、すべてのチームメンバーが使用できるように、チームバージョンを作成してチェックインします。個々の開発者も、スクラッチ組織定義パラメーターを含む自分のローカルバージョンを作成できます。これらのパラメーターとして、スクラッチ組織の作成者を識別するメールや姓などがあります。

スクラッチ組織定義ファイルの名前

org create scratch CLI コマンドでスクラッチ組織を作成するときには、スクラッチ組織設定ファイルへのパスを指定します。

  • コマンドラインで Salesforce CLI を使用している場合は、このファイルには任意の名前を指定でき、CLI がアクセスできる任意の場所に配置できます。
  • VS Code 向け Salesforce 拡張機能を使用する場合、スクラッチ組織定義ファイルが Salesforce DX プロジェクトの config フォルダーにあることを確認してください。また、その名前は scratch-def.json で終わる必要があります。

サンプルリポジトリを使用する場合や Salesforce DX プロジェクトを作成する場合、サンプルのスクラッチ組織定義ファイルは config ディレクトリにあります。異なる組織シェイプやテストシナリオ用に異なる組織設定ファイルを作成できます。識別しやすいように、ファイルにはわかりやすい名前を付けます (たとえば、devEdition-scratch-def.jsonpackaging-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 つの値のいずれかを指定した対応付けです。
  • sharingModel — 共有モデルを設定します。オブジェクトごとにサポートする共有モデルが異なります。共有モデルの可能な値は次のとおりです。
    • private
    • read
    • readWrite
    • readWriteTransfer
    • fullAccess
    • controlledByParent
    • controlledByCampaign
    • controlledByLeadOrContent
  • defaultRecordType — レコードタイプを作成します。レコードタイプを作成するパッケージをインストールする前に、この設定が必要になります。小文字で始まる英数字の文字列を指定します。

<カスタム項目の API 参照名> いいえ なし。ScratchOrgInfo オブジェクトに関する追加情報を追跡する Dev Ops の使用事例で役立ちます。カスタム項目を作成してから、スクラッチ組織定義で API 参照名を使用して参照します。
sourceOrg いいえ なし。15 文字のソース組織 ID。スクラッチ組織の組織シェイプを使用して、スクラッチ組織を作成している場合にのみ使用します。「組織シェイプに基づいたスクラッチ組織の作成」を参照してください。

サンプルのスクラッチ組織定義ファイル

スクラッチ組織定義 JSON ファイルは次のようになります。機能と設定についての詳細は、「スクラッチ組織の機能」を参照してください。
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 は、スクラッチ組織の作成や削除を追跡します。

本番組織に直接これらの変更を加える場合、相応の注意をしながら進めてください。ScratchOrgInfo オブジェクトは、Sandbox またはスクラッチ組織では使用できません。

重要

Dev Hub 組織で、カスタム項目を作成します。

  • [設定] から [クイック検索] ボックスに「オブジェクトマネージャー」と入力し、[オブジェクトマネージャー] を選択します。
  • [スクラッチ組織情報] をクリックします。
  • [項目とリレーション] で、[新規] をクリックします。
  • カスタム項目を定義し、[保存] をクリックします。

カスタム項目を作成したら、スクラッチ組織定義ファイルで API 参照名で参照して、カスタム項目に値を渡すことができます。workitemrelease の 2 つのカスタム項目を作成するとします。次のようにカスタム項目と関連付けられている値をスクラッチ組織定義に追加して、スクラッチ組織を作成します。

1{
2     "orgName": "MyCompany",
3     "edition": "Developer",
4     "workitem__c": "W-12345678",
5     "release__c": "June 2024 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}