2021/06/7

Salesforceのpackage.xml マニフェストファイル作成とサンプルの紹介

 
  

Salesforceにおけるpackage.xml

Salesforceにおけるpackage.xmlとは、プロジェクトマニフェストのファイルをさすものです。 プロジェクトマニフェストでは取得もしくはリリースするコンポーネントや、使用されるAPIのバージョンを定義します。SalesforceのメタデータAPIは、コンポーネントのリリースおよび取得を実行する際、マニフェストのリストを参照します。 マニフェストファイルでは、複数のtypes要素を含むことができます。複数のメタデータにバッチ処理を行う場合には、対象となるtypesをすべて1つのpackage.xmlマニフェストファイルで定義することができます。

VisualCodeStudioでのpackage.xmlの作成と使い方

ここで紹介するのは、Visual Studio Code(VS Code)のSalesforce拡張機能で、package.xmlを作成する手順です。VS CodeのSalesforce拡張機能は、Salesforceプラットフォームにおけるカスタム開発のツールです。 VS Codeの組織開発モデルで、ソーストラッキングできない環境で作成したコードを取得し、SandBoxや本番組織にデプロイすることができます。その際に、package.xmlマニフェストを作成し、利用します。

package.xmlを作成する

VS Codeのコマンドパレットから、package.xmlマニフェストファイルを作成します。 ①[SFDX: Create Project with Manifest(SFDX: マニフェストファイルを使用してプロジェクトを作成)]を実行する。 ②コードエディタのサイドバーの組織ピッカーをクリックして、コマンドパレットを開く。 ③組織を認証するか認証済み組織の一覧から選択する。組織を認証しないと、組織ピッカーに[デフォルトの組織が未設定]と表示される。 ④[SFDX: Authorize an Org(SFDX:組織を認証)]を実行し、ログイン URLを選択する。 ⑤組織名の入力を完了すると、ブラウザが開く。 ⑥アクセスを許可して、組織にログインする ⑦VS Codeのウィンドウに戻り、組織ピッカーに組織名が表示されていることを確認する。 以上の手順で、作成したマニフェストファイルに、取得したいメタデータ型を追加します。

作成したpackage.xml を使用する

VS Codeで作成したpackage.xmlのマニフェストは、ソースコードの取得、デプロイなどに使用することができます。マニフェストを使用してソースコードを取得する手順を説明します。

package.xml を使用してソースコードを取得する

VS Codeで作成したマニフェストファイルで、ソースコードを取得します。 ①VS Code のエクスプローラもしくはエディタで、マニフェストファイルを右クリックする。 ②[SFDX: Retrieve Source in Manifest from Org(SFDX:マニフェストファイルのソースを組織から取得)]を選択する。 ③マニフェストファイルを開いた状態で、コマンドパレットを開く。 ④[SFDX:Retrieve Source in Manifest from Org(SFDX:マニフェストファイルのソースを組織から取得)]を実行する。

package.xml を使用してソースコードをデプロイする

この手順で、変更したソースコードをデプロイすると、組織のメタデータにローカルのソースファイルが上書きされます。 ①VS Codeのエクスプローラまたはエディタで、マニフェストファイルを右クリックする ②[SFDX:Deploy Source in Manifest to Org(SFDX:マニフェストファイルのソースを組織へデプロイ)]を選択する。 ③マニフェストファイルを開いた状態でコマンドパレット開く ④[SFDX:Deploy Source in Manifest to Org(SFDX:マニフェストファイルのソースを組織へデプロイ)]を実行する。

package.xmlを使用してソースを削除する

マニフェストを使用して、ソーストラッキングされない組織とプロジェクトからソースを削除できます。 ①VS Codeのエクスプローラで、マニフェストを右クリックする。 ②[SFDX:Delete from Project and Org(SFDX:プロジェクトおよび組織から削除)]を選択する。 ③エディタでソースファイルを開き、ファイルを右クリックする。 ④[SFDX:Delete This from Project and Org(SFDX:このソースをプロジェクトと組織から削除)]を選択する。 ⑤エディタでソースファイルを開き、コマンドパレットを開く。 ⑥[SFDX:Delete from Project and Org(SFDX:プロジェクトおよび組織から削除)]を実行する。

package.xml マニフェストファイルのサンプル

package.xml マニフェストファイルのサンプルを紹介します。members要素に、以下の形で指定するとそれぞれのコンポーネントを取得できます。 fullName 項目値→メタデータ型の個別のコンポーネント *(アスタリスクワイルドカード)→メタデータ型のすべてのコンポーネント

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
   <members>exampleObject_c</members>
        <name>exampleObject</name>
    </types>
    <types>
        <members>*</members>
        <name>exampleTab</name>
    </types>
    <types>
      <members>exampletype</members>
        <name>examplename</name>
    </types>
    <version>51.0</version>
</Package>

Salesforce のpackage.xmlマニフェストファイルのサンプル紹介

Salesforceでは、以下のマニフェストファイルのサンプルが用意されています。これらのサンプルを変更または組み合わせて使用できます。 ・標準オブジェクトを指定する ・すべてのカスタムオブジェクトを指定する ・標準選択リスト項目を取得する ・カスタム項目および標準項目 ・標準オブジェクトのリストビューを取得する ・パッケージを取得する ・セキュリティを設定する ・割り当てルール、自動レスポンスルール、エスカーレーションルールにアクセスする ・共有ルールの取得など ・管理コンポーネントにアクセスする ここでは、標準オブジェクトと標準オブジェクトのリストビューのサンプルを紹介します。

標準オブジェクトのサンプル

標準オブジェクトの取得およびリリースでは、カスタマイズできない標準項目を除く、すべてのカスタム項目と標準項目を定義するサンプルです。自動採番項目を含む、その他の標準項目は対象外です。 標準オブジェクトの名前を個別に指定する必要があります。次項に出てくる*(アスタリスクワイルドカード)は、ここでは使用できません。 このサンプルでは、標準のAccountオブジェクトを、CustomObjectタイプのメンバーとして指定しています。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Account</members>
        <name>CustomObject</name>
    </types>
    <version>51.0</version>
</Package>

すべてのカスタムオブジェクトのサンプル

すべてのカスタムオブジェクトを取得およびリリースに使用できるサンプルです。このサンプルでは、標準オブジェクトは対象となりません。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>CustomObject</name>
    </types>
    <version>51.0</version>
</Package>

標準オブジェクトのリストビューのサンプル

標準オブジェクトのリストビューを含むコンポーネントを取得するサンプルです。リストビューを取得して、objects/Account.objectにコンポーネントが保存されます。 <members>項目のobjectName.listViewUniqueName構文には、以下の名前が入ります。 objectName:Account などのオブジェクトの名前 listViewUniqueName:リストビューの[ビューの一意の名前] このサンプルでは、標準の Account オブジェクトのリストビューを例にしています。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Account.AccountTeam</members>
        <name>ListView</name>
    </types>
    <version>51.0</version>
</Package>

Salesforceの拡張に必要な package.xmlを理解しよう

今回の記事では、Salesforceのpackage.xmlについて説明しました。 package.xmlは、APIのバージョンや対象となるコンポーネントを定義するマニフェストファイルです。メタデータAPIはマニフェストのリストを参照して実行しますので、マニフェストファイルの定義が適切でないと不具合の原因にもなります。 package.xmlは、APIを使用したSalesforceの機能拡張に必要です。基礎知識として理解しておきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】