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

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

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

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

  • エディション — スクラッチ組織の Salesforce エディション (Developer、Enterprise、Group、Professional など)。
  • アドオン機能 — デフォルトではエディションに含まれない機能 (マルチ通貨など)。
  • 設定 — Salesforce 製品の設定に使用される組織と機能の設定 (Chatter やコミュニティなど)。
デフォルトでは、スクラッチ組織は空です。従来の方法で Developer Edition 組織などの組織にサインアップしたときに取得されるサンプルメタデータのほとんどは含まれません。スクラッチ組織に含まれない情報として、次のようなものがあります。
  • カスタムオブジェクト、項目、インデックス、タブ、エンティティ定義
  • サンプルデータ
  • サンプル Chatter フィード
  • ダッシュボードとレポート
  • ワークフロー
  • 選択リスト
  • プロファイルと権限セット
  • Apex クラス、トリガ、ページ

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

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

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

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

  • コマンドラインで Salesforce CLI を使用している場合は、このファイルには任意の名前を指定でき、CLI がアクセスできる任意の場所に配置できます。
  • VS Code 向け Salesforce 拡張機能を使用する場合、スクラッチ組織定義ファイルが 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 いいえ なし
orgPreferences (まもなく廃止予定) いいえ なし
settings いいえ なし
<カスタム項目の API 参照名> いいえ なし。ScratchOrgInfo オブジェクトに関する追加情報を追跡する Dev Ops の使用事例で役立ちます。カスタム項目を作成してから、スクラッチ組織定義で API 参照名を使用して参照します。

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

スクラッチ組織定義 JSON ファイルは次のようになります。機能と設定についての詳細は、「スクラッチ組織定義の設定値」を参照してください。
1{
2  "orgName": "Acme",
3  "edition": "Enterprise",
4  "features": ["Communities", "ServiceCloud", "Chatbot"],
5  "settings": {
6      "orgPreferenceSettings": {
7          "networksEnabled": true,
8          "s1DesktopEnabled": true,
9          "s1EncryptedStoragePref2": false
10      },
11      "omniChannelSettings": {
12          "enableOmniChannel": true
13      },
14
15      "caseSettings": {
16          "systemUserEmail": "support@acme.com"
17      }
18  }
19}

コミュニティなど、機能によっては、スクラッチ組織で適切に機能するために機能と設定の組み合わせが必要になることがあります。次のコードスニペットでは、機能と関連付けられた設定の両方が設定されます。

1"features": ["Communities"],
2    "settings": {
3        ""networksEnabled": true
4        ...

ScratchOrgInfo のカスタム項目の作成

スクラッチ組織定義にオプションを追加して、Dev Ops プロセスを管理できます。これを行うには、ScratchOrgInfo オブジェクトのカスタム項目を作成します。ScratchOrgInfo は、スクラッチ組織の作成や削除を追跡します。

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

重要

  1. Dev Hub 組織で、カスタム項目を作成します。
    1. [設定] から [クイック検索] ボックスに「オブジェクトマネージャ」と入力し、[オブジェクトマネージャ] を選択します。
    2. [スクラッチ組織情報] をクリックします。
    3. [項目とリレーション] で、[新規] をクリックします。
    4. カスタム項目を定義し、[保存] をクリックします。
  2. カスタム項目を作成したら、スクラッチ組織定義ファイルで API 参照名で参照して、カスタム項目に値を渡すことができます。

    workitemrelease の 2 つのカスタム項目を作成するとします。カスタム項目と関連付けられている値をスクラッチ組織定義に追加します。

    1{
    2     "orgName": "MyCompany",
    3     "edition": "Developer",
    4     "workitem__c": "W-12345678",
    5     "release__c": "June 2018 pilot",
    6     
    7     "settings": {
    8      "orgPreferenceSettings": {
    9          "s1DesktopEnabled": true
    10     }
    11}
  3. スクラッチ組織を作成します。