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

Salesforce DX プロジェクトの構造とソース形式

Salesforce DX プロジェクトには固有のプロジェクト構造とソース形式があります。ソース形式で使用されるファイルセットとファイル拡張子は、メタデータ API で使用されているものとは異なります。組織から project retrieve start コマンドでメタデータを取得すると、Salesforce CLI はそれをソース形式でプロジェクトに保存します。メタデータをリリースすると、Salesforce CLI によって Metadata API に必要な形式に変換されます。

ソース変換

メタデータ形式のソースが非常に大きくて、探している情報を見つけづらくなるのは珍しいことではありません。また、チームで作業していて、他の開発者も同じメタデータを同時に更新する場合、複数の更新をファイルにマージする必要があります。もっと良い方法があるはずだとお考えなら、そのとおりです。

以前は、すべてのカスタムオブジェクトとカスタムオブジェクトの翻訳は 1 つの大きなメタデータファイルに保存されていました。

変更前: カスタムオブジェクトとカスタムオブジェクトの翻訳が 1 つの大きなメタデータファイルに保存されていました

この問題を解決するために、これらの大きなソースファイルを分割した新しいソース形状を提供し、より処理しやすく、バージョン管理システムで管理しやすくしています。これをソース形式と呼びます。

Salesforce DX プロジェクトでは、カスタムオブジェクトとカスタムオブジェクトの翻訳が直観的なサブディレクトリに保存されます。ソース形式により、変更または更新する内容がはるかに見つけやすくなります。面倒なマージも必要ありません。

変更後: カスタムオブジェクトとカスタムオブジェクトの翻訳が小さく分割されています

静的リソース

静的リソースは /main/default/staticresources ディレクトリに置く必要があります。project deploy コマンドと project retrieve コマンドでは、プロジェクト内でのアーカイブ MIME タイプの自動展開または圧縮がサポートされています。これらの操作では、.zip および .jar の両方の MIME タイプがサポートされています。これにより、ソースファイルをより簡単に Salesforce DX プロジェクトおよびバージョン管理システムに統合できます。

たとえば、スクラッチ組織の設定 UI を通じて静的リソースアーカイブをアップロードする場合、project retrieve start コマンドによって、そのアーカイブをプロジェクト内のディレクトリ構造に展開できます。ファイルシステムからこのプロセスを模倣するには、圧縮するディレクトリ構造を静的リソースのディレクトリルートに直接追加し、関連する .resource-meta.xml ファイルを作成します。プロジェクト内でアーカイブが単一ファイルとして存在するときは、常に単一ファイルとして扱われ、展開されません。

次の例は、さまざまな種類の静的リソースがローカルプロジェクトにどのように保存されるかを示しています。expandedzippedresource という展開された .zip アーカイブとそれに関連する .resource-meta.xml ファイルがあります。また、いくつかの .jpg ファイルが MIME タイプを使用して保存されていて、1 つのファイルが従来の .resource 拡張子を使用して保存されています。

staticresources フォルダー内の静的リソース

詳細は、Salesforce ヘルプの「静的リソース」を参照してください。

ファイル拡張子

既存のメタデータ形式をソース形式に変換すると、それぞれに対して XML ファイルが作成されます。XML マークアップを含むすべてのファイルに .xml 拡張子が付けられるようになったため、XML ファイルとして XML エディターが認識したり、ユーザーが参照したりできるようになりました。ローカルプロジェクトとスクラッチ組織を同期するために、Salesforce DX プロジェクトでは、カスタムオブジェクト、カスタムオブジェクトの翻訳、Lightning Web コンポーネント、Aura コンポーネント、およびドキュメント用の特定のディレクトリ構造が使用されます。

たとえば、Case というオブジェクトがある場合、ソース形式では Case.object-meta.xml という XML バージョンが作成されます。DreamHouse というアプリケーションがある場合、DreamHouse.app-meta.xml というファイルが作成されます。要領はわかりますね。

従来、静的リソースは、拡張子が .resource のバイナリオブジェクトとしてファイルシステムに保存されていました。ソース形式での静的リソースの扱いはそれとは異なり、コンテンツ MIME タイプがサポートされています。たとえば、.gif ファイルは .resource ではなく .gif として保存されます。ファイルを MIME 拡張子を使用して保存することで、システム上の関連エディターを使用してファイルの管理や編集を行うことができます。

.resource 拡張子を持つ既存の静的リソースと MIME コンテンツ拡張子を持つ新しく作成した静的リソースを組み合わせて使用できます。拡張子が .resource の既存の静的リソースではそのまま拡張子が保持されますが、新規静的リソースはプロジェクトで MIME タイプ拡張子を付けて表示されます。既存のお客様の移行をサポートするために .resource ファイルの使用が許可されています。このような柔軟性がありますが、ファイルを MIME 拡張子を付けて保存することをお勧めします。

カスタムオブジェクト

メタデータ形式をソース形式に変換すると、カスタムオブジェクトは <package directory>/main/default/objects ディレクトリに置かれます。各オブジェクトにはカスタムオブジェクトの種別を反映する固有のサブディレクトリがあります。カスタムオブジェクトの一部は、次のサブディレクトリに抽出されます。

  • businessProcesses
  • compactLayouts
  • fields
  • fieldSets
  • listViews
  • recordTypes
  • sharingReasons
  • validationRules
  • webLinks

カスタムオブジェクトの抽出されない部分は <object>.object-meta.xml ファイル内に置かれます。

カスタムオブジェクトの翻訳

カスタムオブジェクトの翻訳は <package directory>/main/default/objectTranslations ディレクトリにあり、カスタムオブジェクトの翻訳の名前が付けられた固有のサブディレクトリにそれぞれ置かれます。カスタムオブジェクトの翻訳と項目の翻訳は、カスタムオブジェクトの翻訳のディレクトリ内の固有のファイルに抽出されます。

  • 項目名の場合: <field_name>.fieldTranslation-meta.xml

  • オブジェクト名の場合: <object_name>.objectTranslation-meta.xml

項目の翻訳ではなくカスタムオブジェクトの翻訳の残りの部分は <objectTranslation>.objectTranslation-meta.xml というファイルに置かれます。

詳細は、Salesforce ヘルプの「トランスレーションワークベンチ」を参照してください。

Aura コンポーネント

Aura バンドルと Aura コンポーネントは、<package directory> ディレクトリの下の aura というディレクトリに置く必要があります。

Salesforce DX プロジェクトの aura ディレクトリのスクリーンショット。

Lightning Web コンポーネント

Lightning Web コンポーネントは、<package directory> ディレクトリの下の lwc というディレクトリに置く必要があります。

Salesforce DX プロジェクトの LWC ディレクトリのスクリーンショット。

Lightning コミュニティ用 ExperienceBundle

ExperienceBundle メタデータ型は、<package directory> ディレクトリの下の experiences というディレクトリに置く必要があります。experiences ディレクトリには、組織の各 Lightning コミュニティ用のフォルダーが含まれます。詳細は、『Experience Cloud 開発者ガイド』を参照してください。

ドキュメント

ドキュメントは親ドキュメントフォルダーのディレクトリに置く必要があります。親ドキュメントフォルダーは documents というディレクトリに置く必要があります。各ドキュメントには、対応するメタデータ XML ファイルがあり、それらは XML エディターで参照できます。

サンプルドキュメントフォルダー構造のスクリーンショット

カスタム表示ラベル

すべてのカスタム表示ラベルは、CustomLabels.labels-meta.xml という名前の単一のファイルに含まれています。このファイルは、<package directory> ディレクトリの下の labels という名前のディレクトリ内にあります。それぞれのパッケージディレクトリには、専用の CustomLabels.labels-meta.xml ファイルが作成されます。