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

任意の組織に対する開発

使用する開発モデルに関係なく、最終的には、ソースが追跡されない組織で変更をテストし、検証する必要があります。スクラッチ組織を使用しない場合でも、Sandbox など、他の環境で開発と単体テストを同様に行うことができます。

スクラッチ組織に対するソースの転送およびプルと同じ簡単さで、Salesforce CLI を使用してソースが追跡されない組織との間でメタデータの取得とリリースを行うことができます。何よりもよいのは、追加の変換手順が不要ということです。メタデータを取得した後、それをソース形式に変換する必要がありません。組織に再びリリースする準備ができたとき、メタデータ形式に変換する必要がありません。Salesforce CLI に慣れていない場合、ソース形式とメタデータ形式の違いについては、「Salesforce DX プロジェクトの構造とソースファイル形式」を参照してください。

force:source:retrieve を使用すると、必要なメタデータをソース形式でローカルファイルシステム (DX プロジェクト) に取得できます。テストまたは本番組織への変更の準備ができたら、force:source:deploy を使用してローカルファイルをソースが追跡されない組織に直接リリースできます。

では、これらのコマンドは、スクラッチ組織のコマンド source:push および source:pull とどう違うのでしょうか? 変更が追跡されないため、変更されたものだけでなく、指定されたすべてのメタデータが取得またはリリースされます。取得またはリリースするソースで、ローカルまたは組織にあるソースがそれぞれ上書きされます。

どのメタデータ型がサポートされるのか、どのメタデータ型で package.xml のワイルドカードがサポートされるのかがわからない場合は、『メタデータ API 開発者ガイド』「メタデータ型」を参照してください。

操作を開始する前に

操作を開始する前に、必ず次の手順を実行してください。
  • マニフェスト (package.xml) を持つ Salesforce DX プロジェクトを作成します。force:project:create -n MyProject --manifest を実行します。
  • ソースが追跡されない組織を認証します。Sandbox に接続している場合は、組織を認証する前に、sfdx-project.json ファイルを編集して、sfdcLoginUrlhttps://test.salesforce.com に設定します。必ず、ソースが追跡されない組織の別名を作成してください。

コマンドラインでエンコードが必要なメタデータ名

--metadata オプションを使用してメタデータを取得またはリリースするとき、適切に動作するにはメタデータ名のコロンのエンコードが必要です。

不適切: sfdx force:source:deploy -m "Profile:Standard User,Layout:Page,Console"

適切: sfdx force:source:deploy -m "Profile:Standard User,Layout:Page%2CConsole"

ソースが追跡されない組織からのソースの取得

force:source:retrieve コマンドを使用して、Sandbox や本番組織など、ソース追跡のない組織からソースを取得します。すでに VCS にソースコードとメタデータがある場合、このステップは省略できる可能性があります。新たに開始した場合、使用する機能、プロジェクト、またはカスタマイズに関連付けられたメタデータを取得します。

source:retrieve コマンドの動作は、スクラッチ組織の source:pull と異なります。このコマンドは、競合があっても通知しません。代わりに、取得したソースでローカルプロジェクトの対応するソースファイルを上書きします。メタデータ形式でメタデータを取得するには、force:mdapi:retrieve を使用します。

メモ

ソース形式でメタデータを取得するには、次のいずれかの方法を使用します。
  • 取得するコンポーネントをリストした package.xml を指定する。
  • メタデータコンポーネント名のカンマ区切りリストを指定する。
  • 取得するソースファイルパスのカンマ区切りリストを指定する。たとえば、ソースがローカルに存在する場合、最初の取得が完了した後にソースファイルオプションのパスを使用できます。
  • パッケージ名のカンマ区切りリストを指定する。

指定するカンマ区切りリストにスペースが含まれる場合、カンマ区切りリスト全体を 1 組の二重引用符で囲みます。

取得対象 コマンド例
マニフェストにリストされたすべてのメタデータコンポーネント sfdx force:source:retrieve -x path/to/package.xml
ディレクトリ内のソースファイル sfdx force:source:retrieve -p path/to/source
特定の Apex クラスとディレクトリにソースがあるオブジェクト sfdx force:source:retrieve -p path/to/apex/classes/MyClass.cls,path/to/source/objects
スペースが含まれるカンマ区切りリスト内のソースファイル sfdx force:source:retrieve -p "path/to/objects/MyCustomObject/fields/MyField.field-meta.xml, path/to/apex/classes"
すべての Apex クラス sfdx force:source:retrieve -m ApexClass
特定の Apex クラス sfdx force:source:retrieve -m ApexClass:MyApexClass
カンマを含むレイアウト名 (「Layout: Page, Console」) sfdx force:source:retrieve -m "Layout:Page%2C Console"
特定のパッケージに関連するすべてのメタデータ sfdx force:source:retrieve -n DreamHouse

メタデータを取得するときに指定できる範囲指定パラメータは、--metadata--sourcepath、または --manifest のいずれかです。--packagenames を指定した場合、範囲指定パラメータを 1 つ追加することができます。

1sfdx force:source:retrieve -n DreamHouse, -x manifest/package.xml

ソースが追跡されない組織へのソースのリリース

force:source:deploy コマンドを使用して、Sandbox や本番組織など、ソース追跡のない組織へソースをリリースします。

source:deploy コマンドの動作は、スクラッチ組織の source:push と異なります。リリースするソースで組織の対応するメタデータが上書きされます。これは、source:push--force オプションを指定して実行する場合と同様です。メタデータ形式でメタデータをリリースするには、force:mdapi:deploy を使用します。

メモ

ソース形式でメタデータをリリースするには、次の方法を使用します。

  • リリースするコンポーネントをリストした package.xml を指定する
  • メタデータコンポーネント名のカンマ区切りリストを指定する
  • リリースするソースファイルパスのカンマ区切りリストを指定する

指定するカンマ区切りリストにスペースが含まれる場合、カンマ区切りリスト全体を 1 組の二重引用符で囲みます。

リリース対象 コマンド例
マニフェストにリストされたすべてのコンポーネント sfdx force:source:deploy -x path/to/package.xml
ディレクトリ内のソースファイル sfdx force:source:deploy -p path/to/source
特定の Apex クラスとディレクトリにソースがあるオブジェクト sfdx force:source:deploy -p path/to/apex/classes/MyClass.cls,path/to/source/objects
スペースが含まれるカンマ区切りリスト内のソースファイル sfdx force:source:deploy -p "path/to/objects/MyCustomObject/fields/MyField.field-meta.xml, path/to/apex/classes"
すべての Apex クラス sfdx force:source:deploy -m ApexClass
特定の Apex クラス sfdx force:source:deploy -m ApexClass:MyApexClass
すべてのカスタムオブジェクトと Apex クラス sfdx force:source:deploy -m CustomObject,ApexClass
すべての Apex クラスと、名前にスペースを含むプロファイル sfdx force:source:deploy -m "ApexClass, Profile:Content Experience Profile"
最近 Apex テストの実行なしに検証されたコンポーネントセット (クイックリリースとも呼ばれます)。 sfdx force:source:deploy -q VALIDATEDDEPLOYREQUESTID

このオプションは、テストを実行し、コードカバー率の要件を渡し、-c | --checkonly を使用してチェックのみのリリースを実行した後に実行できます。

リリースに警告が含まれている場合も実行 sfdx force:source:deploy -g
リリースにエラーが含まれているかどうかに関係なく実行 (本番組織にリリースする場合は推奨されません) sfdx force:source:deploy -o

追跡されないソースの削除

force:source:delete コマンドを使用して、Sandbox など、ソース追跡のない組織からコンポーネントを削除します。

このコマンドは、Salesforce DX プロジェクト内から実行します。削除された項目を、変更追跡のあるスクラッチ組織から削除するには、force:source:push を使用します。

メモ

ソースがローカルの DX プロジェクトに存在する場合、ソースへのパスを指定するか、個々のメタデータコンポーネントをリストすることで、メタデータを削除できます。指定するカンマ区切りリストにスペースが含まれる場合、カンマ区切りリスト全体を 1 組の二重引用符で囲みます。

削除対象 コマンド例
ディレクトリ内のソースファイル sfdx force:source:delete -p path/to/source
FlexiPage など、特定のコンポーネント sfdx force:source:delete -m FlexiPage:Broker_Record_Page

生成されたメタデータを保持する場合

通常、一部の CLI コマンドを実行すると、すべてのメタデータを含む一時ディレクトリが作成され、コマンドの正常な完了時に削除されます。ただし、これらのファイルを保持しておくと、いくつかの理由で便利です。コマンド実行時に発生した問題をデバッグできます。生成される package.xml を後続のコマンド実行時に使用できます。または、必要なすべてのメタデータが含まれるマニフェストを作成するための開始点として使用できます。

次のコマンドの実行時に指定したディレクトリパスにすべてのメタデータを保持するには、SFDX_MDAPI_TEMP_DIR 環境変数を設定します。

  • force:source:deploy
  • force:source:retrieve
  • force:source:delete
  • force:source:push
  • force:source:pull
  • force:source:convert
  • force:org:create (スクラッチ組織定義に、組織設定ではなくスクラッチ組織設定が含まれる場合)

例:

1SFDX_MDAPI_TEMP_DIR=/users/myName/myDXProject/metadata