Skip to main content
From 16:00 UTC on January 17, 2026, to 20:00 UTC on January 17, 2026, we will perform planned maintenance on the Trailhead, myTrailhead, and Trailblazer Community sites. During the maintenance, these sites will be unavailable, and users won't be able to access them. Please plan your activities around this required maintenance.

メタデータの整理

学習の目的

この単元を完了すると、次のことができるようになります。
  • 未パッケージメタデータをパッケージに整理する主要な戦略を挙げる。
  • ロック解除済みパッケージがどのように相互連動できるか判断する。
  • 3 個のパッケージ開発モデルを説明し、それぞれを使用するときを説明する。

パッケージ開発の原則の実践

お疲れさまでした。前の単元で、パッケージを作成して、Trailhead Playground に DreamHouse アプリケーションをインストールしました。ここでは、パッケージ開発の主要ないくつかの原則を実践する方法を説明します。小さい規模から開始して、成果を重ねていく方法でも問題ありません。

パッケージへのメタデータの整理には、次のことがあてはまります。

  • 反復的なプロセスになることがある。
  • ゼロか十かという話ではない。

新規または既存のカスタムアプリケーションのメタデータの整理

DreamHouse LWC は、新しいアプリケーションをゼロから構築して、それをロック解除済みパッケージにパッケージ化する方法を示すよい例です。そこで、DreamHouse アプリケーションを組織に導入して、今後のカスタマイズを管理しましょう。なお、既存のカスタムアプリケーションの新しい機能を更新するときも、同じプロセスに従えます。

まとめると、DreamHouse は次の方法を示すために作成されました。

  • Salesforce CLI、プロジェクト、ロック解除済みパッケージを、アプリケーションライフサイクルに統合する。
  • メタデータの整理とパッケージの境界の作成のベストプラクティスを採用する。
  • 新しいアプリケーション構築時にロック解除済みパッケージを実装する。

DreamHouse LWC のロック解除済みパッケージの作成後は、次のことが可能です

  • アプリケーションのソースを独立してテストおよびリリースする。
  • 他のメタデータからアプリケーションスキーマ (カスタムオブジェクト) を分離する。
  • プロセスを繰り返し、新しい機能を追加して、アプリケーションを継続的に拡張する。
  • アプリケーションのバージョンを管理する。
  • 既存のバージョンのアップグレードとして、2 番目のバージョンをインストールする。

DreamHouse メタデータ

メタデータ 説明
スキーマ Broker (ブローカー)、Property (物件)、Favorite (お気に入り) のカスタムオブジェクトを含みます。

例: Broker__c、Property__c、Favorite__c

Lightning アプリケーションおよびコンポーネント 物件を調査し、物件詳細を確認します。

例: Property_Explorer.flexipage-meta.xml、Property_Record_Page.flexipage-meta.xml

プロセス (フロー) 新しい物件が追加されたとき、または価格が変更されたときに、通知を送信します。

例: Advertise_New_Property-2.flow-meta.xml、Price_Change_Push_Notification-1.flow-meta.xml

Einstein サービス 画像処理を適用して、アップロードされた画像から家の詳細を自動的に識別します。

例: EinsteinVisionController.cls

ボット ユーザーが、Facebook Messenger、Slack、または Alexa を利用して物件を検索できるようにします。

例: HandlerFindProperties.cls

組織の既存のメタデータの分割

新しいプロジェクトでパッケージ開発ライフサイクルを使用することは非常に合理的です。一方で、リリースの期間、あるいは数年にわたり変更セット開発を使用していた人であれば、どこから開始すべきか説明がほしいと感じているでしょう。組織のコンテンツを、別々のプロジェクト、そして最終的にはパッケージディレクトリへと、どのようにして解きほぐすのでしょうか?

秘密の調味料のレシピを提供したいところですが、アクションプランを規定する人はいません。未パッケージメタデータの分割をどのように進めるかは、科学の面とアート面をあわせもっています。メタデータのどのかけらが、どの Salesforce DX プロジェクトに適合するか決める上で、最適に判断できるのはあなたです。

開始するには、次の質問に答えてください。

  • 開発チームが、アプリケーション、新しい機能、カスタマイズを独立してリリースできるようにするかどうか?
  • アプリケーションを示すメタデータを識別できるかどうか?
  • 別々の機能のモジュールにメタデータを整理できるか?
  • この機能またはアプリケーションの未管理パッケージを作成するとき、どのような連動関係を確認できるか?

複数のアプリケーションおよびカスタマイズが組織にある場合、Salesforce DX プロジェクト間に連動関係があると想定してください。

メタデータを解きほぐす 3 つのモデル

実際のシナリオでは、通常、これらの戦略の組み合わせを採用して、それらがビジネス上の必要性に最適に合うように調整します。

モデル 説明
アプリケーションベース アプリケーションを示すメタデータを識別します。このアプローチは DreamHouse アプリケーションのパッケージ作成と似ていますが、例外として、メタデータはすでに組織に存在しています。
カスタマイズベース Sales Cloud、Service Cloud、AppExchange アプリケーションへのカスタマイズなど、本番組織のカスタマイズおよび機能変更用の未パッケージのメタデータを整理します。
共有ライブラリ 相互連動関係が存在する場合、共通の Salesforce DX パッケージを使用して、一連の Apex クラス、または共通で使用されているカスタムオブジェクトを整理します。構築する他のパッケージは、この共通パッケージと連動できます。

出発点としての未管理パッケージの使用

未管理メタデータを複数のパッケージに整理するには、最初は次のワークフローに従ってみましょう。

  1. 本番組織から、未パッケージの自己完結型メタデータの小さいセットを選択します。アプリケーション、既存のアプリケーションのカスタマイズ、機能または機能単位、もしくは標準オブジェクトのカスタマイズを示すメタデータを選択します。
  2. 組織メタデータのコレクション全体から識別したメタデータを分離するための未管理パッケージを作成します。メタデータを追加して、システムがどの連動メタデータを自動的に取得するか確認します。このステップは、メタデータのあいまいな連動関係の確認に役立ちます。
  3. project retrieve start を使用して、未管理パッケージからソースを取得します。
  4. パッケージメタデータを管理する Salesforce DX プロジェクトと Git リポジトリを設定します。
  5. project deploy start でこのメタデータをスクラッチ組織にプッシュして、これがロック解除済みパッケージに追加するメタデータであることを確認します。
  6. --no-namespace フラグを使用して、ロック解除済みパッケージを作成します。
  7. ロック解除済みパッケージをテストおよびリリースします。
  8. ロック解除済みパッケージが Sandbox でのすべての CI 実行と UAT に合格したら、パッケージバージョンを昇格します。
  9. ロック解除済みパッケージを本番組織にインストールします。

メタデータのパッケージを作成すると、メタデータは自動的にパッケージに移動します。エンティティの完全な名前は組織およびパッケージのメタデータを識別するため、組織にすでにあるメタデータを上書きし、現在パッケージに含まれていることを示すように内部参照を更新します。

パッケージの連動関係について

ロック解除済みパッケージの主要な価値は、一連の相互連動パッケージを開発および管理できることです。

  • ロック解除済みパッケージは、AppExchange パッケージと連動できます。AppExchange パッケージを使用している場合、そのパッケージの独自のカスタマイズをロック解除済みパッケージに配置できます。ロック解除済みパッケージをインストールすると、AppExchange パッケージが示されます。
  • ロック解除済みパッケージは、他のロック解除済みパッケージと連動できます。たとえば、従業員が経費レポートを提出するために使用できる新しいアプリケーションを作成しているとしましょう。アプリケーションは、既存の給与支払アプリケーションと、いくつかのバックエンドインテグレーション機能を共有しています。このシナリオでは、経費レポートのロック解除済みパッケージは、給与支払アプリケーションのロック解除済みパッケージと連動します。
  • ロック解除済みパッケージは他のロック解除済みパッケージと連動でき、他のロック解除済みパッケージは、さらに別のロック解除済みパッケージと連動できます。複数のレベルの連動関係がサポートされています。

sfdx-project.json ファイルの packageDirectories セクションで連動関係を指定します。連動関係のサポートにより、ロック解除済みパッケージは、充実した連動関係フレームワークを使用したモジュール形式開発を促進します。プロジェクト定義ファイルについての詳細は、『Salesforce DX 開発者ガイド』を参照してください。

メモ

組織のメタデータを分離するのが非常に難しい場合は、組織連動ロック解除済みパッケージが適している可能性があります。組織連動ロック解除済みパッケージはロック解除済みパッケージのバリエーションですが、パッケージをインストールする組織 (インストール組織) のパッケージ化されていないメタデータに連動するパッケージを作成できます。

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む