0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Code Builderでメタデータを取得する方法

Posted at

Code Builder で package.xml を使ってメタデータを取得・デプロイする方法

package.xml を使うことで、取得(retrieve)デプロイ(deploy) するメタデータを細かく指定できます。


1. package.xml を使う場合の手順

Code Builder で package.xml を使ってメタデータを取得・デプロイする基本的な流れは以下の通りです。

(1) package.xml の作成

まず、manifest フォルダを作成し、その中に package.xml を作成します。

package.xml の作成手順

  1. Code Builder 内で manifest フォルダを作成(まだない場合)
    mkdir manifest
    
  2. manifest フォルダ内に package.xml を作成
    touch manifest/package.xml
    
  3. package.xml に必要なメタデータの記述を追加(記述方法は後述)

(2) package.xml を使ってメタデータを取得

Sandbox から 指定したメタデータ を Code Builder にダウンロードするには、以下のコマンドを実行します。

sf project retrieve start --manifest manifest/package.xml --target-org MySandbox
  • --manifest manifest/package.xmlpackage.xml を使って取得
  • --target-org MySandbox → 取得先の Salesforce 組織(Sandbox)を指定

(3) package.xml を使ってメタデータをデプロイ

開発したクラスや LWC などを Sandbox にデプロイ するには、以下のコマンドを実行します。

sf project deploy start --manifest manifest/package.xml --target-org MySandbox
  • --manifest manifest/package.xmlpackage.xml に記載されたメタデータをデプロイ
  • --target-org MySandbox → 送信先の Salesforce 組織(Sandbox)を指定

2. package.xml に含めるべきメタデータの基準

(1) 含めるべき Apex クラス・トリガー

  • 開発したクラス・トリガー だけを取得する(すべて取得すると管理が大変)
  • テストクラス も含める(特に本番環境にデプロイする場合)

<types>
    <members>MyApexClass</members>
    <members>MyTestClass</members>
    <name>ApexClass</name>
</types>

(2) 含めるべきオブジェクト・フィールド

  • 標準オブジェクト ではなく、カスタムオブジェクト__c が付く)を対象にすることが多い
  • カスタムフィールド も個別に指定可能(オブジェクトごとに管理)

<types>
    <members>CustomObject__c</members>
    <name>CustomObject</name>
</types>
<types>
    <members>CustomObject__c.CustomField__c</members>
    <name>CustomField</name>
</types>

(3) 含めるべき LWC(Lightning Web Components)

  • 開発した LWC コンポーネントのみを取得
  • LightningComponentBundle を指定する

<types>
    <members>myLightningComponent</members>
    <name>LightningComponentBundle</name>
</types>

(4) フローやプロセスビルダー

  • 画面フロー(Screen Flow)
  • オートメーション(プロセスビルダー)
  • フローの名前を指定する

<types>
    <members>MyFlow</members>
    <name>Flow</name>
</types>

(5) 設定情報(Custom Metadata, Custom Labels など)

設定情報(カスタムメタデータ、カスタムラベル)も含めることが可能。

<types>
    <members>MyCustomMetadata__mdt</members>
    <name>CustomMetadata</name>
</types>
<types>
    <members>MyCustomLabel</members>
    <name>CustomLabel</name>
</types>

3. package.xml の具体的な記述例

以下は、Apex クラス・トリガー・カスタムオブジェクト・LWC・フローなどを含めた package.xml のサンプルです。

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>MyApexClass</members>
        <members>MyTestClass</members>
        <name>ApexClass</name>
    </types>
    <types>
        <members>MyTrigger</members>
        <name>ApexTrigger</name>
    </types>
    <types>
        <members>CustomObject__c</members>
        <name>CustomObject</name>
    </types>
    <types>
        <members>CustomObject__c.CustomField__c</members>
        <name>CustomField</name>
    </types>
    <types>
        <members>myLightningComponent</members>
        <name>LightningComponentBundle</name>
    </types>
    <types>
        <members>MyFlow</members>
        <name>Flow</name>
    </types>
    <types>
        <members>MyCustomMetadata__mdt</members>
        <name>CustomMetadata</name>
    </types>
    <types>
        <members>MyCustomLabel</members>
        <name>CustomLabel</name>
    </types>
    <version>58.0</version>
</Package>

4. package.xml を活用した開発のポイント

  1. 適切なメタデータだけを選ぶ

    • 不要なクラスやオブジェクトを含めると、デプロイの管理が難しくなる
    • 開発したもの、または関連するものだけを指定する
  2. 本番環境へのデプロイ時にテストクラスを含める

    • 本番環境(Production)では testLevel=RunLocalTests を指定してテストを実行するのが推奨される
  3. メタデータを追加したら package.xml も更新する

    • 新しいクラスやフィールドを追加した場合、package.xml も適宜更新

5. まとめ

package.xml を使う場合の基本手順

  1. manifest/package.xml を作成
  2. sf project retrieve start --manifest manifest/package.xml --target-org MySandbox
  3. 開発を進める
  4. sf project deploy start --manifest manifest/package.xml --target-org MySandbox

含めるべきメタデータの基準

  • Apex クラス・トリガー:開発したもの+テストクラス
  • カスタムオブジェクト・フィールド:開発対象のもの
  • LWC(Lightning Web Components):作成したコンポーネント
  • フロー・プロセスビルダー:開発対象のフロー
  • 設定情報(Custom Metadata, Custom Labels):必要なもの

これで、Code Builder で package.xml を使ったメタデータ管理ができるようになります!🚀

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?