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

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

Salesforce DX プロジェクトには固有のプロジェクト構造とソースファイル形式があります。Salesforce DX のソースで使用されるファイルセットとファイル拡張子は、メタデータ API で使い慣れたものとは異なります。

ファイル拡張子

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

たとえば、Case.object というオブジェクトがある場合、Salesforce DX では Case.object-meta.xml という XML バージョンが作成されます。DreamHouse.app というアプリケーションがある場合、DreamHouse.app-meta.xml というファイルが作成されます。要領はわかりますね。Salesforce DX プロジェクトでは、すべてのソースファイルに、対応する「-meta.xml」拡張子のファイルがあります。

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

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

ソース変換

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

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

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

Salesforce DX では、これらの大きなソースファイルを分割してソースの形を新しくすることでこの問題を解決しています。こうすることで、ソースはより理解しやすくなり、バージョン管理システムで管理しやすくなります。

Salesforce DX プロジェクトでは、カスタムオブジェクトとカスタムオブジェクトの翻訳が直観的なサブディレクトリに保存されます。このソース構造により、変更または更新する情報を探すのが大幅に簡単になります。面倒なマージも必要ありません。

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

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

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

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

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

カスタムオブジェクト

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

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

カスタムオブジェクトの抽出されない部分は 1 つのファイル内に置かれます。

  • オブジェクトの場合: <object>.object-meta.xml
  • 項目の場合: <field_name>.field-meta.xml

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

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

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

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

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

Lightning のコンポーネント

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

aura ディレクトリのスクリーンショット

ドキュメント

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

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