Force.com 移行ツールガイド

Force.com 移行ツールガイド
バージョン 35.0, Winter ’16
@salesforcedocs
最終更新日: 2015/9/1
© Copyright 2000–2015 salesforce.com, inc. All rights reserved. Salesforce およびその他の名称や商標は、salesforce.com,
inc. の登録商標です。本ドキュメントに記載されたその他の商標は、各社に所有権があります。
目次
第 1 章: Force.com 移行ツールの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
第 2 章: Force.com 移行ツールのインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Force.com 移行ツールを使用する場合の前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Force.com 移行ツールのインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
第 3 章: Force.com 移行ツール の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Salesforce の接続情報の入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
プロジェクトマニフェストの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
指定コンポーネントの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
特定の種類のすべてのコンポーネントの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
標準オブジェクトの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
メタデータ型に関する情報の取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
メタデータ型の記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
メタデータ型のコンポーネントのリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
取得ターゲットの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
パッケージ化されていないコンポーネントの取得 . . . . . . . . . . . . . . . . . . . . . . . . . 16
管理パッケージまたは未管理パッケージの取得 . . . . . . . . . . . . . . . . . . . . . . . . . . 17
コンポーネントの一括取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Salesforce 組織からのメタデータの取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
メタデータの編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
組織からのファイルの削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Salesforce 組織への変更のリリース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
コンポーネントのリリース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
コードのリリース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
最近の検証のリリース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
リリースでのテストの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
リリースでのテストのサブセットの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Sandbox および本番組織のリリースでの同じテストの実行 . . . . . . . . . . . . . . . . . . 30
リリースのキャンセル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
タスクの状況の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
第 4 章: 一般的な移行の問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
用語集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
第1章
Force.com 移行ツールの概要
Force.com 移行ツールは、ローカルディレクトリと Salesforce 組織間でメタデータを移動する Java/Ant ベースのコ
マンドラインユーティリティです。Force.com 移行ツールは、次の場合に特に効果的です。
• 大量の設定変更を含むテスト環境を入力する必要がある開発プロジェクト — これらの変更を Web インター
フェースから行うと、長時間かかることがあります。
• マルチフェーズのリリース処理 — 一般的な開発プロセスでは、本番環境にリリースする前に作成、テス
ト、ステージングを繰り返し行う必要があります。コンポーネントの取得とリリースをスクリプト化する
と、この処理を効率的に行うことができます。
• 同じパラメータを使用した反復リリース — 組織のすべてのメタデータの取得、変更、コンポーネントのサ
ブセットのリリースを行うことができます。この処理を繰り返す必要がある場合、同じリリースターゲッ
トを再度コールするだけで十分です。
• IT によるフェーズから本番への移行 — スクリプト環境でのリリースを好むユーザにとって、Force.com 移行
ツールはなじみやすいプロセスでしょう。
メタデータ API について
メタデータ API には、組織の設定を管理し情報 (メタデータ) をカスタマイズする一連のオブジェクトと、その
オブジェクトを操作する SOAP コールが含まれます。メタデータ API では、次のことができます。
• XML メタデータファイルとして設定を操作する
• 組織間で設定の変更を移行する
• 組織およびアプリケーションのメタデータを管理する独自のツールを作成する
メタデータ API SOAP コールを使用して独自のクライアントアプリケーションを作成できますが、Salesforce では
Apex とメタデータを取得およびリリースする Force.com 移行ツールを提供しています。
パッケージとディレクトリ構造について
メタデータ API は、パッケージ中心に動作します。コンポーネントは、1 つ以上のパッケージに含まれる場合
もあれば、パッケージにまったく含まれない場合もあります。パッケージは、ローカル (Salesforce 組織で作成
する) でも、Force.com AppExchange からインストールしてもかまいません。Force.com 移行ツールで一連のコン
ポーネントを取得するたびに、それらのコンポーネントが単一パッケージの内容に制限される場合もあれば、
パッケージにまったく制限されない場合もあります。次の 3 種類のパッケージがあります。
• パッケージ化されていないパッケージ — 標準オブジェクトのように、組織でネイティブに存在するコン
ポーネントは、パッケージ化されていないパッケージとなります。
• 未管理パッケージ — 未管理パッケージは、通常、開発者にアプリケーションの基本ビルディングブロック
を提供するために、オープンソースプロジェクトまたはアプリケーションテンプレートを配布する場合に
使用します。未管理パッケージからコンポーネントがインストールされると、コンポーネントはインストー
ルされた組織で編集できるようになります。未管理パッケージを作成してアップロードした開発者は、イ
1
Force.com 移行ツールの概要
ンストールされたコンポーネントを制御できず、これらのコンポーネントを変更またはアップグレードで
きません。Sandbox から本番組織へのコンポーネントの移行に未管理パッケージを使用しないでください。
代わりに、変更セットを使用してください。
• 管理パッケージ — ユニットとして AppExchange に投稿され、名前空間と、場合によりライセンス管理組織
に関連付けられるアプリケーションコンポーネントの集合です。アップグレードをサポートするには、管
理パッケージであることが必要です。組織は、他の多くの組織でダウンロードおよびインストールできる
単一の管理パッケージを作成できます。管理パッケージは、未管理パッケージとは異なり、コンポーネン
トの一部がロックされていて、後でアップグレードできます。未管理パッケージには、ロックされたコン
ポーネントは含まれておらず、アップグレードはできません。また、管理パッケージでは、開発者の知的
財産保護のため、登録している組織では特定のコンポーネント (Apex など) は隠されます。
2
第2章
Force.com 移行ツールのインストール
Force.com 移行ツールをインストールする前に、Java および Ant をローカルマシンにインストールする必要があ
ります。次に、Salesforce 組織から Force.com 移行ツールをダウンロードします。
1. 「Force.com 移行ツールを使用する場合の前提条件」の説明に従って、Java および Ant をインストールしま
す。
2. 「Force.com 移行ツールのインストール」の説明に従って、Salesforce 組織にログインし、Force.com 移行ツー
ルをダウンロードします。
Force.com 移行ツールを使用する場合の前提条件
Force.com 移行ツールを使用する前に、Java および Ant をインストールし、正しく設定する必要があります。Java
および Ant がコンピュータにすでに存在する場合はインストールは必要ないため、まずコマンドプロンプトか
らインストールを確認します。
Java
Java がインストール済みかどうかを確認する手順は、次のとおりです。
1. コマンドプロンプトを開きます。
2. プロンプトで「java -version」と入力し、Enter キーを押します。
出力は次のようになります。
java version "1.6.0_39"
Java(TM) SE Runtime Environment (build 1.6.0_39-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
Force.com 移行ツールは、Java バージョン 1.6.x 以降で動作します。以前のバージョンを使用している場合は、Java
1.6.x 以降をインストールする必要があります。
Java をインストールするには、http://www.oracle.com/technetwork/java/javase/downloads/index.html にアクセスし、Java
JDK の最新バージョンを入手します。インストールが完了したら、コマンドプロンプトで「java -version」
と入力します。
Ant
Ant がインストール済みかどうかを確認する手順は、次のとおりです。
1. コマンドプロンプトを開きます。
2. プロンプトで「ant -version」と入力し、Enter キーを押します。
3
Force.com 移行ツールのインストール
Force.com 移行ツールのインストール
出力は次のようになります。
Apache Ant version 1.7.0 compiled on December 13 2006
Ant バージョンが 1.5.x 以前の場合は、Ant の最新バージョンをダウンロードする必要があります。
メモ: Ant がインストール済みでも、bin ディレクトリをパスに追加する必要があります。Windows オペ
レーティングシステムの場合、ANT_HOME および JAVA_HOME 環境変数を次のように設定する必要もあり
ます。
Ant をインストールおよび設定する手順は、次のとおりです。
1. Apache Ant バージョン 1.6 以降を任意のディレクトリ (http://ant.apache.org/bindownload.cgi など)
にダウンロードします。このディレクトリは ANT_HOME と呼ばれます。ファイルがコンピュータに保存さ
れたら、追加のインストールは不要です。
2. bin ディレクトリをパスに追加します (Ant の実行に必要なディレクトリは、bin と lib のみです)。
3. Windows オペレーティングシステムを使用している場合は、ANT_HOME 環境変数を作成し、値を Ant のイン
ストール場所に設定します。また、JAVA_HOME 環境変数も作成し、値を JDK の場所に設定します。
詳細は、http://ant.apache.org/manual/install.htmlを参照してください。
Force.com 移行ツールのインストール
Force.com 移行ツールをダウンロードおよびインストールする手順は、次のとおりです。
1. リリースマシン上で Salesforce 組織にログインします。
2. [設定] から [開発] > [ツール] をクリックし、[Force.com 移行ツール] をクリックします。
3. .zip ファイルをローカルに保存して、任意のディレクトリにコンテンツを抽出します。
4. ant-salesforce.jar をコピーし、Ant のインストール先の lib ディレクトリに貼り付けます。lib ディ
レクトリは、Ant のインストール先のルートフォルダにあります。
メモ: Ant がインストールされていない場合は、「Force.com 移行ツールを使用する場合の前提条件」を参
照してください。
Force.com 移行ツールの zip ファイルを抽出すると、指定した場所に次のフォルダとファイルが書き込まれます。
• ツールの使用方法を説明した Readme.html ファイル
• Ant タスクを含む Jar ファイル: ant-salesforce.jar
• 次の内容を含むサンプルフォルダ:
– SampleDeployClass.cls と SampleFailingTestClass.cls を含む codepkg\classes フォルダ
– SampleAccountTrigger.trigger を含む codepkg\triggers フォルダ
– 例で使用するカスタムオブジェクトを含む mypkg\objects フォルダ
– 組織から例を削除するための XML ファイルを含む removecodepkg フォルダ
– build.xml の Ant タスクを実行するための認証情報を指定するサンプル build.properties ファイル
– deploy および retrieve API コールを実行するサンプル build.xml ファイル
4
第3章
Force.com 移行ツール の使用
Force.com 移行ツールは、ローカルディレクトリと Salesforce 組織間でメタデータを移動する Java/Ant ベースのコ
マンドラインユーティリティです。Force.com 移行ツールを使用して、コンポーネントの取得、スクリプト化さ
れたリリースの作成、リリースパターンの反復を行うことができます。
Force.com 移行ツールを使用して、あるSalesforce組織から別の組織にメタデータをコピーする一般的な手順は次
のとおりです。
1. build.properties に、コピー元 Salesforce 組織のログイン情報と接続情報を入力します
2. build.xml で取得ターゲットを作成します
3. package.xml でプロジェクトマニフェストを作成します
4. Force.com 移行ツールを実行して、Salesforce からメタデータファイルを取得します
5. build.properties にコピー先 Salesforce 組織のログイン情報と接続情報を入力します
6. Force.com 移行ツールを実行して、メタデータファイルまたは削除を Salesforce にリリースします
Salesforce の接続情報の入力
メタデータコンポーネントを取得またはリリースするには、Salesforce組織を指し示すように build.properties
を編集する必要があります。
1. Force.com 移行ツールのファイルを抽出した場所に移動し、sample サブディレクトリを開きます。
2. テキストエディタで build.properties を開き、次のいずれかの操作を実行します。
• ログインにユーザ名とパスワードを使用するには、有効なSalesforceユーザ名とパスワードに置き換えま
す。セキュリティトークンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付け
ます。
• ログインに有効なSalesforceセッションを使用するには、sf.sessionId プロパティのコメントを解除し
て、有効なセッション ID に置き換えます。また、sf.username および sf.password プロパティのコ
メントを解除していることを確認します。
パラメータ
値
sf.username
ログイン用のSalesforceユーザ名。この接続に関連付けられるユーザ名は、「す
べてのデータの編集」権限を持っている必要があります。通常、これはシステ
ム管理者のみに有効です。Sandbox インスタンスに接続する場合は、Sandbox 名
がユーザ名に付加されます。たとえば、本番ユーザ名が [email protected]
であり、いずれか 1 つの Sandbox 名が bar の場合、Sandbox ユーザ名は
[email protected] になります。
5
Force.com 移行ツール の使用
プロジェクトマニフェストの作成
パラメータ
値
sf.password
このプロジェクトに関連付けられた組織にログインするために使用するパス
ワード。セキュリティトークンを使用している場合は、パスワードの最後に 25
桁のトークン値を貼り付けます。
sf.serverurl
Salesforce サーバの URL。本番組織または Developer Edition 組織に接続するには、
https://login.salesforce.com を使用します。Sandbox インスタンスに接
続するには、https://test.salesforce.com に変更します。
sf.sessionId
有効な Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワー
ドを使用して正常に Salesforce にログインした後に作成されます。新しいセッ
ションを作成する代わりに既存のセッションにログインする場合に、セッショ
ン ID を使用します。
メモ: build.properties ファイルでは、sf.password と sf.serverurl のプロパティペア、または
sf.sessionId プロパティのいずれかの値を指定できますが、両方指定することはできません。build.xml
ファイルでは、ターゲットに 3 つのパラメータのすべて (password、serverurl、および sessionId) を
含めることができます。ユーザ名とパスワード、またはセッション ID のいずれかが認証に使用されます。
プロジェクトマニフェストの作成
package.xml ファイルは、1 回の要求で取得またはリリースするすべてのコンポーネントが含まれるプロジェ
クトマニフェストです。一度に取得またはリリースできるパッケージは 1 つのみです。
次の要素は、package.xml に定義されている場合があります。
名前
説明
<fullName>
リリース先となるサーバ側パッケージの名前。<fullName> 項目を省略
すると、コンポーネントはリリース時にパッケージに割り当てられず、
unpackaged パッケージに存在します。この項目は、取得には使用され
ません。
<types>
この要素には、1 つ以上の <members> タグと 1 つの <name> タグが含ま
れ、取得またはリリースする特定の種類のメタデータコンポーネントを
リストするために使用されます。
<members>
コンポーネントの完全名です。ディレクトリの各コンポーネントには 1
つの <members> 要素が定義されています。各メンバーを個別にリスト
する代わりに、このメンバーの値をワイルドカード文字 * (アスタリス
ク) に置き換えることができます。これは、<types> の子要素です。
<name>
CustomObject や Profile など、コンポーネントの種類が含まれます。
ディレクトリの各コンポーネントの種類には 1 つの名前が定義されてい
ます。これは、<types> の子要素です。
6
Force.com 移行ツール の使用
プロジェクトマニフェストの作成
名前
説明
<version>
取得またはリリースしているファイルのメタデータ API のバージョン番
号。リリース時には、すべてのファイルがメタデータ APIの同じバージョ
ンに準拠する必要があります。
コンポーネントの種類
package.xml の <name> 要素で定義できるコンポーネントの種類の完全なリストは、『メタデータ API 開発
者ガイド』の「メタデータ型」を参照してください。
標準オブジェクトの指定
標準オブジェクトや、標準オブジェクトのカスタム項目を取得するには、package.xml でコンポーネントの
名前を指定する必要があります。次の package.xml ファイルは、Case オブジェクトの単一項目
EngineeringReqNumber__c と、Account オブジェクト全体を取得します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Case.EngineeringReqNumber__c</members>
<name>CustomField</name>
</types>
<types>
<members>Account</members>
<name>CustomObject</name>
</types>
<version>34.0</version>
</Package>
メモ: カスタムオブジェクトおよび標準オブジェクトは、<name>CustomObject</name> を含む同じ
<types> セクションに指定する必要があります。
7
Force.com 移行ツール の使用
指定コンポーネントの指定
指定コンポーネントの指定
コンポーネントを取得するには、<name> 要素でコンポーネントの種類を指定し、<members> コンポーネン
トで取得またはリリースする各コンポーネントを宣言します。次に、取得またはリリースする 2 つのカスタム
オブジェクトの名前を指定する package.xml プロジェクトマニフェストのサンプルを示します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c</members>
<members>MyHelloWorldObject__c</members>
<name>CustomObject</name>
</types>
<version>34.0</version>
</Package>
一部のメタデータコンポーネントは、別のコンポーネントのサブコンポーネントです。つまり、親コンポーネ
ント名を使用してサブコンポーネントをドット修飾する必要があります。
次のメタデータコンポーネントは、オブジェクトの一部として定義されています。
• CustomField
• Picklist
• RecordType
• Weblink
• ValidationRule
たとえば、次のコードは、Opportunity オブジェクトの ValidationRuleName という入力規則を取得します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Opportunity.ValidationRuleName</members>
<name>ValidationRule</name>
</types>
<version>34.0</version>
</Package>
8
Force.com 移行ツール の使用
特定の種類のすべてのコンポーネントの指定
特定の種類のすべてのコンポーネントの指定
特定の種類のすべてのコンポーネントを取得するには、ワイルドカード記号 (*) を使用します。たとえば、す
べてのカスタムオブジェクトを取得するには、次のように指定します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>CustomObject</name>
</types>
<version>34.0</version>
</Package>
ワイルドカード記号は、すべてのメタデータ型には適用されません。たとえば、CustomObject 型名でワイ
ルドカードを使用しても、標準オブジェクトは取得されません。標準オブジェクトを取得するには、
package.xml でオブジェクト名を明示的に指定する必要があります。同様に、標準オブジェクトで定義され
たカスタム項目を取得するには、オブジェクト名と項目名を指定する必要があります。
標準オブジェクトの指定
標準オブジェクトや、標準オブジェクトのカスタム項目を取得するには、package.xml でコンポーネントの
名前を指定する必要があります。次の package.xml ファイルは、Case オブジェクトの単一項目
EngineeringReqNumber__c と、Account オブジェクト全体を取得します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Case.EngineeringReqNumber__c</members>
<name>CustomField</name>
</types>
<types>
<members>Account</members>
<name>CustomObject</name>
</types>
9
Force.com 移行ツール の使用
メタデータ型に関する情報の取得
<version>34.0</version>
</Package>
メモ: カスタムオブジェクトおよび標準オブジェクトは、<name>CustomObject</name> を含む同じ
<types> セクションに指定する必要があります。
メタデータ型に関する情報の取得
目的のメタデータを取得またはリリースする最終バージョンを決定する前に、package.xml マニフェストファ
イルの構成を試してみる必要がある場合があります。この試行の間、関連情報を収集するのに役立つ
<sf:describeMetadata> および <sf:listMetadata> というヘルパーターゲットがあります。build.xml
ファイルは、Ant で実行される一連のコマンドを指定します。build.xml ファイル内には、ターゲット名を持
つ Ant の実行時に一連のコマンドを処理する指定ターゲットがあります。
メタデータ型の記述
describeMetadata ターゲットからは、組織で有効になっているメタデータ型のリストが返されます。この
ターゲットは、package.xml の <name> 要素 (カスタムオブジェクトの CustomObject や、ページレイアウ
トの Layout など) のメタデータ型に必要な構文を特定する場合に便利です。次のパラメータは、
<sf:describeMetadata> ターゲットごとに設定できます。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce ユー
ザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編集」権
限を持っている必要があります。通常、これはシステム管理者のみに有効で
す。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関連付
けられた組織にログインするために使用するパスワード。セキュリティトー
クンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付
けます。
sessionId
username および password が指定されていない場合は必須です。有効な
Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワードを
使用して正常に Salesforce にログインした後に作成されます。新しいセッショ
ンを作成する代わりに既存のセッションにログインする場合に、セッション
ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
login.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
apiVersion
省略可能。メタデータに使用する API バージョン。デフォルトは 34.0 です。
10
Force.com 移行ツール の使用
メタデータ型のコンポーネントのリスト
項目
説明
resultFilePath
省略可能。結果を保存する出力ファイルのパス。デフォルトの出力はコンソー
ルです。ファイルへの出力を指定すると、package.xml マニフェストファ
イルの関連情報を抽出しやすくなります。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表示
します。これには、ログイン時のユーザのパスワードがプレーンテキストで
表示されます。
組織で有効になっているメタデータ型のリストを取得するには、<sf:describeMetadata> を使用して、
build.xml ファイルでターゲットを指定します。
<target name="describeMetadata">
<sf:describeMetadata
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
resultFilePath="describeMetadata/describe.log"/>
</target>
メタデータ型のコンポーネントのリスト
listMetadata ターゲットは、組織のメタデータコンポーネントに関するプロパティ情報を取得します。こ
のターゲットは、package.xml の個々のコンポーネントを取得用に識別する場合、または組織の特定のメタ
データ型の概要が必要な場合に役立ちます。たとえば、組織の CustomObject コンポーネントまたは Layout
コンポーネントのすべての名前のリストが返されるようにこのターゲットを使用できます。さらに、この情報
を使用して、後続の取得でこれらのコンポーネントのサブセットが返されるようにすることができます。次の
パラメータは、<sf:listMetadata> ターゲットごとに設定できます。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce ユー
ザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編集」権
限を持っている必要があります。通常、これはシステム管理者のみに有効で
す。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関連付
けられた組織にログインするために使用するパスワード。セキュリティトー
11
Force.com 移行ツール の使用
項目
メタデータ型のコンポーネントのリスト
説明
クンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付
けます。
sessionId
username および password が指定されていない場合は必須です。有効な
Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワードを
使用して正常に Salesforce にログインした後に作成されます。新しいセッショ
ンを作成する代わりに既存のセッションにログインする場合に、セッション
ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
login.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
metadataType
必須。プロパティ情報を取得するメタデータ型の名前は、カスタムオブジェ
クトの場合は CustomObject、カスタムレポートの場合は Report のように
なります。有効な値の一覧は、「コンポーネントの種類」 (ページ 7)を参照
してください。
folder
コンポーネントに関連付けられたフォルダ。この項目は、Dashboard、Document、
EmailTemplate、Reportなどのフォルダを使用するコンポーネントでは必須です。
apiVersion
省略可能。メタデータに使用する API バージョン。デフォルトは 34.0 です。
resultFilePath
省略可能。結果を保存する出力ファイルのパス。デフォルトの出力はコンソー
ルです。ファイルへの出力を指定すると、package.xml マニフェストファイ
ルの関連情報を抽出しやすくなります。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表示し
ます。これには、ログイン時のユーザのパスワードがプレーンテキストで表
示されます。
CustomObject など、1 つのメタデータ型のコンポーネントのプロパティ情報を取得するには、
<sf:listMetadata> を使用して、build.xml ファイルでターゲットを指定します。
<target name="listMetadata">
<sf:listMetadata
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
metadataType="CustomObject"
12
Force.com 移行ツール の使用
取得ターゲットの作成
resultFilePath="listMetadata/list.log"/>
</target>
次の例では、フォルダに存在するコンポーネントを使用しています。
<target name="listMetadata">
<sf:listMetadata
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
metadataType="Report"
folder="Marketing_Reports"
resultFilePath="listMetadata/list.log"/>
</target>
取得ターゲットの作成
build.xml ファイルは、Ant で実行される一連のコマンドを指定します。build.xml ファイル内には、ター
ゲット名を持つ Ant の実行時に一連のコマンドを処理する指定ターゲットがあります。次のパラメータは、
<sf:retrieve> ターゲットごとに設定できます。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce
ユーザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編
集」権限を持っている必要があります。通常、これはシステム管理者のみ
に有効です。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関
連付けられた組織にログインするために使用するパスワード。セキュリ
ティトークンを使用している場合は、パスワードの最後に 25 桁のトーク
ン値を貼り付けます。
sessionId
username および password が指定されていない場合は必須です。有効
なSalesforceセッションの ID。セッションは、ユーザがユーザ名とパスワー
ドを使用して正常に Salesforce にログインした後に作成されます。新しい
セッションを作成する代わりに既存のセッションにログインする場合に、
セッション ID を使用します。
13
Force.com 移行ツール の使用
取得ターゲットの作成
項目
説明
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
login.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
retrieveTarget
必須。メタデータファイルを取得する先のディレクトリ構造のルート。
packageNames
unpackaged が指定されていない場合は必須です。取得するパッケージ名
のカンマ区切りのリストです。packageNames または unpackaged のい
ずれかを指定する必要がありますが、両方は指定できません。
apiVersion
省略可能。取得したメタデータファイルに使用するメタデータ API バー
ジョン。デフォルトは 34.0 です。
pollWaitMillis
省略可能。デフォルトは 10000 です。取得要求の結果をポーリングする
場合の試行間の待機時間 (ミリ秒単位) です。クライアントは、maxPoll
で定義された制限に到達するまで引き続きポーリングします。
maxPoll
省略可能。デフォルトは 200 です。取得要求の結果を得るためにサーバ
をポーリングする回数です。連続するポーリング試行間の待機時間は、
pollWaitMillis で定義されます。
singlePackage
省略可能。デフォルトは true です。複数のパッケージを取得する場合
は、false に設定する必要があります。false に設定すると、パッケー
ジごとに余分の最上位サブディレクトリが、取得された zip ファイルに含
まれます。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表
示します。これには、ログイン時のユーザのパスワードがプレーンテキス
トで表示されます。
unpackaged
packageNames が指定されていない場合は必須です。取得するコンポー
ネントを指定するファイルマニフェストのパスと名前です。unpackaged
または packageNames のいずれかを指定する必要がありますが、両方は
指定できません。
unzip
省略可能。デフォルトは true です。true に設定すると、取得されたコ
ンポーネントが解凍されます。false に設定すると、取得されたコンポー
ネントが zip ファイルとして retrieveTarget ディレクトリに保存され
ます。
コンポーネントの一括取得
このターゲットは、カスタムレポートなど、1 つのメタデータ型の大量のコンポーネントを一連のローカル
ファイルにダウンロードするための最適な方法です。次のパラメータは、<sf:bulkRetrieve> ターゲットご
とに設定できます。
14
Force.com 移行ツール の使用
取得ターゲットの作成
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce
ユーザ名。この接続に関連付けられるユーザ名は、「すべてのデータの
編集」権限を持っている必要があります。通常、これはシステム管理者
のみに有効です。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関
連付けられた組織にログインするために使用するパスワード。セキュリ
ティトークンを使用している場合は、パスワードの最後に 25 桁のトーク
ン値を貼り付けます。
sessionId
username および password が指定されていない場合は必須です。有効
なSalesforceセッションの ID。セッションは、ユーザがユーザ名とパスワー
ドを使用して正常に Salesforce にログインした後に作成されます。新しい
セッションを作成する代わりに既存のセッションにログインする場合に、
セッション ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
login.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
retrieveTarget
必須。メタデータファイルを取得する先のディレクトリ構造のルート。
metadataType
必須。取得するメタデータ型の名前は、カスタムオブジェクトの場合は
CustomObject、カスタムレポートの場合は Report のようになります。
有効な値の一覧は、「コンポーネントの種類」 (ページ 7)を参照してく
ださい。
containingFolder
省略可能。メタデータがフォルダに含まれている場合は、このパラメー
タを、コンテンツの取得元となるフォルダの名前にする必要があります。
batchSize
省略可能。デフォルトは 10 です。マルチパート取得の実行時に取得する
項目数です。
apiVersion
省略可能。取得したメタデータファイルに使用するメタデータ API バー
ジョン。デフォルトは 34.0 です。
maxPoll
省略可能。デフォルトは 200 です。取得要求の結果を得るためにサーバ
をポーリングする回数です。クライアントは、最初のポーリング試行の
後、2 秒間待機します。連続するポーリング試行ごとに待機時間が 2 倍に
なります。ポーリング試行間の最大待機時間は 30 秒です。
unzip
省略可能。デフォルトは true です。true に設定すると、取得されたコ
ンポーネントが解凍されます。false に設定すると、取得されたコンポー
ネントが zip ファイルとして retrieveTarget ディレクトリに保存され
ます。
15
Force.com 移行ツール の使用
パッケージ化されていないコンポーネントの取得
カスタムレポートコンポーネントを一括取得するには、<sf:bulkRetrieve> を使用して build.xml ファイ
ルでターゲットを指定します。
<target name="bulkRetrieve">
<sf:bulkRetrieve
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
metadataType="Report"
retrieveTarget="retrieveUnpackaged"/>
</target>
パッケージ化されていないコンポーネントの取得
パッケージ化されていないパッケージには、パッケージ内ではなく、組織でネイティブに存在する標準オブ
ジェクト、カスタム、オブジェクト、Apexクラス、他のメタデータコンポーネントがすべて含まれます。パッ
ケージ化されていないコンポーネントを取得するには、package.xml ファイルを指し示すパッケージ化され
ていない属性が含まれた build.xml ターゲットを使用します。次に例を示します。
<target name="retrieveUnpackaged">
<mkdir dir="projectFolder"/>
<sf:retrieve
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
retrieveTarget="projectFolder"
unpackaged="unpackaged/package.xml"/>
</target>
salesforce-ant.jar ファイルには、メタデータ API にアクセスするための Ant タスクが含まれています。上
記のコードの場合、sf:retrieve が Ant タスクです。メタデータ Ant タスクの完全なリストは、『メタデータ
API 開発者ガイド』を参照してください。
16
Force.com 移行ツール の使用
管理パッケージまたは未管理パッケージの取得
管理パッケージまたは未管理パッケージの取得
パッケージは、メタデータの関連バンドルを Force.com AppExchange 経由で複数のインスタンスまたは組織に配
布するのに便利です。ただし、Force.com 移行ツールを使用すると、AppExchange を使用せずに、パッケージ化
されたメタデータを自由に取得およびリリースできます。管理パッケージと未管理パッケージは、同じ方法で
取得します。
パッケージを取得するには、build.xml ファイルで packageNames パラメータを指定します。次に例を示し
ます。
<target name="retrieveNamedPackage">
<sf:retrieve
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
retrieveTarget="projectFolder"
packageNames="mySourcePackage"/>
</target>
コンポーネントの一括取得
このターゲットは、カスタムレポートなど、1 つのメタデータ型の大量のコンポーネントを一連のローカル
ファイルにダウンロードするための最適な方法です。次のパラメータは、<sf:bulkRetrieve> ターゲットご
とに設定できます。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce
ユーザ名。この接続に関連付けられるユーザ名は、「すべてのデータの
編集」権限を持っている必要があります。通常、これはシステム管理者
のみに有効です。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関
連付けられた組織にログインするために使用するパスワード。セキュリ
ティトークンを使用している場合は、パスワードの最後に 25 桁のトーク
ン値を貼り付けます。
sessionId
username および password が指定されていない場合は必須です。有効
なSalesforceセッションの ID。セッションは、ユーザがユーザ名とパスワー
ドを使用して正常に Salesforce にログインした後に作成されます。新しい
17
Force.com 移行ツール の使用
項目
コンポーネントの一括取得
説明
セッションを作成する代わりに既存のセッションにログインする場合に、
セッション ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
login.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
retrieveTarget
必須。メタデータファイルを取得する先のディレクトリ構造のルート。
metadataType
必須。取得するメタデータ型の名前は、カスタムオブジェクトの場合は
CustomObject、カスタムレポートの場合は Report のようになります。
有効な値の一覧は、「コンポーネントの種類」 (ページ 7)を参照してく
ださい。
containingFolder
省略可能。メタデータがフォルダに含まれている場合は、このパラメー
タを、コンテンツの取得元となるフォルダの名前にする必要があります。
batchSize
省略可能。デフォルトは 10 です。マルチパート取得の実行時に取得する
項目数です。
apiVersion
省略可能。取得したメタデータファイルに使用するメタデータ API バー
ジョン。デフォルトは 34.0 です。
maxPoll
省略可能。デフォルトは 200 です。取得要求の結果を得るためにサーバ
をポーリングする回数です。クライアントは、最初のポーリング試行の
後、2 秒間待機します。連続するポーリング試行ごとに待機時間が 2 倍に
なります。ポーリング試行間の最大待機時間は 30 秒です。
unzip
省略可能。デフォルトは true です。true に設定すると、取得されたコ
ンポーネントが解凍されます。false に設定すると、取得されたコンポー
ネントが zip ファイルとして retrieveTarget ディレクトリに保存され
ます。
カスタムレポートコンポーネントを一括取得するには、<sf:bulkRetrieve> を使用して build.xml ファイ
ルでターゲットを指定します。
<target name="bulkRetrieve">
<sf:bulkRetrieve
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
metadataType="Report"
18
Force.com 移行ツール の使用
Salesforce 組織からのメタデータの取得
retrieveTarget="retrieveUnpackaged"/>
</target>
Salesforce 組織からのメタデータの取得
Force.com コンポーネントを取得する手順は、次のとおりです。
1. コマンドプロンプトを開きます。
2. build.xml でターゲット名を指定して、Ant を実行します。Ant を初めて実行する場合は、ant
retrieveUnpackaged を使用して、package.xml で指定されたパッケージ化されていないコンポーネン
トを取得します。
メモ:
• サンプル build.xml には、retrieve() および deploy() のさまざまなオプションに使用できる便
利なターゲットがいくつか含まれています。これらは、変更しても、そのまま使用してもかまいませ
ん。build.xml のすべての指定ターゲットのリストを表示するには、コマンドラインで「ant -p」
と入力します。
• メタデータ API は、一度に最大 10,000 個のファイルまたは最大 400 MB をリリースおよび取得できます。
大量のコンポーネントを操作している場合は、listMetadata ターゲットを使用して取得するファイ
ルのサブセットを特定するか、コンポーネントの一括取得を使用してコンポーネントのバッチを取得
する必要があります。
メタデータの編集
任意の UTF-8 テキストエディタを使用して、取得するファイルに変更を加えることができます。
警告: UTF-8 をネイティブでサポートしないテキストエディタでは、バイトオーダーマーク (BOM) がファイ
ルの先頭に挿入され、XML メタデータで問題が生じる可能性があります。
組織からのファイルの削除
package.xml ファイルは、取得またはリリースするすべてのコンポーネントが含まれるプロジェクトマニフェ
ストです。package.xml は、コンポーネントの追加には使用できますが、削除には不十分です。ファイルを
削除するには、destructiveChanges.xml という削除マニフェストを作成します。削除マニフェストの形式
は package.xml と同じですが、ワイルドカードはサポートされていません。
リリースでのコンポーネントの削除
コンポーネントを削除するには、コンポーネントのリリースと同じ手順を使用します。ただし、
destructiveChanges.xml という名前の削除マニフェストファイルを含めて、このマニフェストで削除する
19
Force.com 移行ツール の使用
組織からのファイルの削除
コンポーネントもリストします。このマニフェストの形式は package.xml と同じです。ただし、ワイルド
カードはサポートされていません。
削除対象の単一のカスタムオブジェクトを指定しているサンプルの destructiveChanges.xml ファイルを
次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c</members>
<name>CustomObject</name>
</types>
</Package>
この破壊的な変更をリリースするには、リリースするコンポーネントがリストされておらず、API バージョン
を含み、destructiveChanges.xml と同じディレクトリ内にある package.xml ファイルも必要です。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>34.0</version>
</Package>
メモ:
• ごみ箱をスキップするには、purgeOnDelete オプションを true に設定します。
• 組織に存在しない複数のコンポーネントがファイルに含まれる場合でも、指定した項目のうち組織に
存在する項目は削除されます。
1 つのリリースでのコンポーネントの追加と削除
destructiveChanges.xml で削除するコンポーネントを指定し、package.xml で追加または更新するコン
ポーネントを指定するリリースを実行できます。削除のみのリリースの実行の場合とプロセスは同じですが、
追加または更新するコンポーネントが package.xml に含まれている点が異なります。
デフォルトでは、コンポーネントの追加の前に削除が処理されます。API バージョン 33.0 以降では、コンポー
ネントを追加する前後に、削除するコンポーネントを指定できます。削除のみのリリースの実行の場合とプロ
セスは同じですが、削除マニフェストファイルの名前が異なります。
• 他のコンポーネントを追加または更新する前にコンポーネントを削除するには、
destructiveChangesPre.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを
含めます。
20
Force.com 移行ツール の使用
Salesforce 組織への変更のリリース
• 他のコンポーネントを追加または更新した後にコンポーネントを削除するには、
destructiveChangesPost.xml という名前のマニフェストファイルを作成し、削除するコンポーネント
を含めます。
削除が処理されるタイミングの指定は、連動関係のあるコンポーネントを削除する場合に役立ちます。たとえ
ば、カスタムオブジェクトがApexクラスで参照されている場合、そのカスタムオブジェクトを削除する前に、
Apex クラスを変更してそのオブジェクトの連動関係を削除する必要があります この場合、Apex クラスを更新
して連動関係をクリアする 1 つのリリースを実行してから、destructiveChangesPost.xml を使用してカス
タムオブジェクトを削除します。この例に使用される package.xml および destructiveChangesPost.xml
マニフェストのサンプルを次に示します。
更新するクラスを指定するサンプル package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>SampleClass</members>
<name>ApexClass</name>
</types>
<version>34.0</version>
</Package>
クラス更新後に削除するカスタムオブジェクトを指定するサンプル destructiveChangesPost.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c</members>
<name>CustomObject</name>
</types>
</Package>
メモ: リリースで使用する API バージョンは、package.xml で指定された API バージョンです。
Salesforce 組織への変更のリリース
build.xml ファイルは、取得およびリリースするターゲットを指定します。次のパラメータは、リリースター
ゲットごとに設定できます。
21
Force.com 移行ツール の使用
Salesforce 組織への変更のリリース
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce ユー
ザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編集」権
限を持っている必要があります。通常、これはシステム管理者のみに有効で
す。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関連付
けられた組織にログインするために使用するパスワード。セキュリティトー
クンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付
けます。
sessionId
username および password が指定されていない場合は必須です。有効な
Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワードを
使用して正常に Salesforce にログインした後に作成されます。新しいセッショ
ンを作成する代わりに既存のセッションにログインする場合に、セッション
ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
www.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
pollWaitMillis
省略可能。デフォルトは 10000 です。リリース結果をポーリングする場合の
待機時間 (ミリ秒単位) です。待機を停止した場合でも、リリースに成功する
ことがあります。
checkOnly
省略可能。デフォルトは false です。組織で一切の変更を行わず、リリース
されたファイルの正当性をチェックするには、true に設定します。この場
合、コンポーネントはリリースされず、組織の変更も行われません。
maxPoll
省略可能。デフォルトは 200 です。リリース要求の結果を得るためにサーバ
をポーリングする回数です。待機を停止した場合でも、リリースに成功する
ことがあります。
deployRoot
zipFile が指定されていない場合は必須です。リリースするファイルのディ
レクトリツリーのルートを指定します。zipFile または deployRoot のい
ずれかの値を定義する必要があります。
zipFile
deployRoot が指定されていない場合は必須です。リリースするメタデータ
zip ファイルのパスを指定します。zipFile または deployRoot のいずれか
の値を定義する必要があります。
singlePackage
省略可能。デフォルトは false です。zipFile または deployRoot パラ
メータが、パッケージのセットではなく、1 つのパッケージを持つディレク
トリ構造を指し示すことを宣言します。
allowMissingFiles
省略可能。デフォルトは false です。ファイルが package.xml では指定さ
れているが、zip ファイルには存在しない場合でもリリースが成功するかどう
かを指定します。本番組織へのリリースでは、このパラメータを使用しない
でください。
22
Force.com 移行ツール の使用
Salesforce 組織への変更のリリース
項目
説明
autoUpdatePackage
省略可能。デフォルトは false です。ファイルが zip ファイルには存在する
が、package.xml では指定されていない場合でもリリースを継続するかど
うかを指定します。本番組織へのリリースでは、このパラメータを使用しな
いでください。
ignoreWarnings
省略可能。デフォルトは false です。この設定は、警告が発生した場合でも
リリースが成功するのか (true)、リリースが失敗してロールバックするのか
(false) を示します。警告ではなくエラーが発生した場合、リリースは常に
失敗しロールバックします。
logType
省略可能。テストを実行するときのデバッグログレベル。デフォルトは None
です。有効なオプションは、次のとおりです。
• None
• Debugonly
• Db
• Profiling
• Callout
• Detail
purgeOnDelete
true の場合、destructiveChanges.xml マニフェストファイルの削除され
たコンポーネントはごみ箱に保存されません。代わりに、即座に削除の対象
となります。このオプションは Developer Edition 組織または Sandbox 組織でのみ
機能しますが、本番組織では機能しません。
rollbackOnError
省略可能。デフォルトは true です。エラーが発生した場合、ロールバック
を完了するか (true)、否か (false) を示します。false の場合、エラーなし
で実行できるアクションのセットはすべて実行され、残りのアクションでは
エラーが返されます。本番組織にリリースする場合は、このパラメータは
true に設定されている必要があります。
メモ: 以前のバージョンの Force.com 移行ツール (Spring '14 以前) では、こ
のパラメータは build.xml で無視され、Salesforce はこのパラメータが
true に設定されているかのように動作します。
runAllTests
(廃止済みであり、API バージョン 33.0 以前でのみ使用できます。) このパラ
メータは省略可能で、デフォルトは false です。インストール済みの管理
パッケージから作成されたテストを含むすべてのApexテストをリリース後に
実行するには、true に設定します。
runTest
子要素 (省略可能)。リリース後に実行されるテストが含まれた Apex クラスの
リストです。詳細は、「リリースでのテストのサブセットの実行」を参照し
てください。
このオプションを使用するには、testLevel を RunSpecifiedTests に設
定します。
23
Force.com 移行ツール の使用
Salesforce 組織への変更のリリース
項目
説明
testLevel
リリースの一環として実行するテストを指定します。テストレベルは、リリー
スパッケージに存在するコンポーネントの種類に関係なく強制適用されます。
有効な値は、次のとおりです。
• NoTestRun — テストは実行されません。このオプションは、Sandbox、
Developer Edition、トライアル組織など、開発環境へのリリースにのみ適用
されます。このオプションは、開発環境のデフォルトです。
• RunSpecifiedTests — runTests オプションで指定したテストのみが
実行されます。このオプションを使用する場合、コードカバー率要件がデ
フォルトのカバー率要件とは異なります。リリースパッケージ内にある各
クラスおよびトリガは、実行されたテストによって 75% 以上のコードカ
バー率でカバーされる必要があります。このカバー率は、クラスおよびト
リガごとに個別に計算され、全体のカバー率とは異なります。
• RunLocalTests — インストール済みの管理パッケージから発生したテス
トを除き、組織のすべてのテストが実行されます。
• RunAllTestsInOrg — すべてのテストが実行されます。テストには、管
理パッケージのテストを含む、組織内のすべてのテストが含まれます。
テストレベルを指定しないと、デフォルトのテスト実行動作が使用されます。
『メタデータ API 開発者ガイド』の「リリースでのテストの実行」を参照して
ください。
この項目は、API バージョン 34.0 以降で使用できます。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表示
します。これには、ログイン時のユーザのパスワードがプレーンテキストで
表示されます。
メモ: Force.com 移行ツールでは、名前がピリオド (.) で開始し、チルダ (~) で終了するファイルまたはフォ
ルダは、ファイルのリリース時に無視されます。Subversion などの一部のソース制御システムでは、名前
がピリオドで開始するファイルまたはフォルダが作成されます。これらのファイルは、Salesforce へのリ
リース時に問題の原因となる可能性があるため、Force.com 移行ツールでは無視されます。
Force.com 移行ツールには、いくつかのリリースターゲットをリストするサンプル build.xml ファイルが含ま
れています。サンプルターゲットを開始点として使用して、独自のカスタムターゲットを作成できます。次
に、サンプルターゲットについて説明します。
• deployUnpackaged — ターゲットで指定されるパッケージ化されていないコンポーネントをリリースしま
す。
• deployCode — ターゲットで指定される codepkg パッケージのコンテンツをリリースします。
• undeployCode — destructiveChanges.xml マニフェストで指定される removecodepkg ディレクト
リのクラスとトリガを削除します。このファイルは、package.xml と似ていますが、リストされるのは削
除するコンポーネントです。詳細は、「組織からのファイルの削除」 (ページ 19)を参照してください。
24
Force.com 移行ツール の使用
コンポーネントのリリース
• deployCodeFailingTest — デモ目的のためにのみ、テスト要件を満たしていないコードをリリースしま
す。
• deployCodeCheckOnly — リリースが動作することを確認しますが、コンポーネントのリリースは行いま
せん。
コンポーネントのリリース
コンポーネントの任意のセットをパッケージとしてリリースしたり、パッケージ化されていないパッケージを
組織に直接リリースしたりできます。使用するパッケージは、build.xml ターゲットではなくプロジェクト
マニフェスト (package.xml) によって決まります。リリースターゲットのサンプルは次のとおりです。
<target name="deployUnpackaged">
<sf:deploy
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
deployroot="projectFolder"/>
</target>
コードのリリース
メタデータコンポーネントとApexを同時にリリースすることはできますが、Apexのリリース用に別のターゲッ
トを作成すると、リリースの一環としてテストを実行でき、便利です。次に、build.xml ファイルの一部を
示します。codepkg パッケージのコンテンツをリリースする deployCode という名前のターゲットを使用
し、1 つのクラスに対してテストを実行します。
<target name="deployCode">
<sf:deploy
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
deployroot="codepkg">
<runTest>SampleDeployClass</runTest>
25
Force.com 移行ツール の使用
最近の検証のリリース
</sf:deploy>
</target>
関連トピック:
リリースでのテストのサブセットの実行
最近の検証のリリース
検証のリリースではテストが再実行されないため、リリース時間を短縮できます。最近検証に成功している場
合は、テストを実行せずに検証済みコンポーネントをリリースできます。<sf:deployRecentValidation>
タスクで最近の検証をリリースできます。
検証では、組織にはいかなるコンポーネントも保存されません。検証は、実際のリリースで受信する可能性の
ある成功または失敗のメッセージを確認する場合にのみ使用します。コンポーネントを検証するには、
checkOnly="true" パラメータをリリースターゲット (<sf:deploy>) に追加します。
最近の検証をリリースする前に、次の要件が満たされていることを確認します。
• コンポーネントが対象の環境で過去 4 日 (96 時間) 以内に正常に検証されている。
• 検証の一部として、対象組織でのすべての Apex テストに合格している。
• 組織の全体的なコードカバー率が 75% 以上で、Apex トリガのカバー率も同じである。
<sf:deployRecentValidation> タスクは次のパラメータをサポートしています。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce ユー
ザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編集」権
限を持っている必要があります。通常、これはシステム管理者のみに有効で
す。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関連付
けられた組織にログインするために使用するパスワード。セキュリティトー
クンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付
けます。
recentValidationId
必須。最近の検証の ID を指定します。
sessionId
username および password が指定されていない場合は必須です。有効な
Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワードを
使用して正常に Salesforce にログインした後に作成されます。新しいセッショ
ンを作成する代わりに既存のセッションにログインする場合に、セッション
ID を使用します。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
www.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
26
Force.com 移行ツール の使用
リリースでのテストの実行
項目
説明
rollbackOnError
省略可能。デフォルトは true です。エラーが発生した場合、ロールバック
を完了するか (true)、否か (false) を示します。false の場合、エラーなし
で実行できるアクションのセットはすべて実行され、残りのアクションでは
エラーが返されます。本番組織にリリースする場合は、このパラメータは
true に設定されている必要があります。
maxPoll
省略可能。デフォルトは 200 です。リリース要求の結果を得るためにサーバ
をポーリングする回数です。待機を停止した場合でも、リリースに成功する
ことがあります。
pollWaitMillis
省略可能。デフォルトは 10000 です。リリース結果をポーリングする場合の
待機時間 (ミリ秒単位) です。待機を停止した場合でも、リリースに成功する
ことがあります。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表示
します。これには、ログイン時のユーザのパスワードがプレーンテキストで
表示されます。
次の例に、最近の検証のリリースターゲットを示します。recentValidationId (sf.recentValidationId)
の値は、build.properties ファイルで定義されます。
<target name="quickDeploy">
<sf:deployRecentValidation username="${sf.username}" password="${sf.password}"
sessionId="${sf.sessionId}" serverurl="${sf.serverurl}"
maxPoll="${sf.maxPoll}"
recentValidationId="${sf.recentValidationId}"/>
</target>
<sf:deployRecentValidation> は、Force.com 移行ツールのバージョン 34.0 以降でサポートされます。
リリースでのテストの実行
本番組織のデフォルトのテスト実行
リリースオプションにテストレベルが指定されていない場合、デフォルトのテスト実行動作はリリースパッ
ケージの内容によって異なります。本番組織へのリリース時に、リリースパッケージに Apex クラスまたはト
リガが含まれる場合は、管理パッケージから作成されたテストを除くすべてのテストが実行されます。パッ
ケージに Apex コンポーネントが含まれない場合は、デフォルトでテストは実行されません。
API バージョン 33.0 以前では、Apex コンポーネントのみならず、テストを必要とするコンポーネント (カスタム
オブジェクトなど) にテストが実行されていました。たとえば、パッケージにカスタムオブジェクトが含まれ
27
Force.com 移行ツール の使用
リリースでのテストの実行
る場合、API バージョン 33.0 以前ではすべてのテストが実行されます。他方、API バージョン 34.0 以降ではこの
パッケージにテストは実行されません。API バージョンは、API クライアントのバージョンまたは使用している
ツール (Force.com 移行ツール) のバージョンに対応します。
Apex以外のコンポーネントのリリースにテストを実行できます。リリースオプションにテストレベルを設定す
れば、デフォルトのテスト実行動作を上書きできます。テストレベルは、リリースパッケージに存在するコン
ポーネントの種類に関係なく強制適用されます。本番組織にリリースする前に、Sandbox などの開発環境です
べてのテストを実行することをお勧めします。開発環境でテストを実行すれば、本番リリースで実行する必要
のあるテストの量を削減できます。
API バージョン 33.0 以前での本番組織のデフォルトのテスト実行
本番組織へのリリースの場合、インストール済みの管理パッケージから作成されたテストを除く組織のすべて
のテストは、デフォルトで実行されます。テストのいずれかが失敗した場合は、リリース全体がロールバック
されます。
リリースに次のメタデータ型のコンポーネントが含まれている場合は、すべてのテストが実行されます。
• ApexClass
• ApexComponent
• ApexPage
• ApexTrigger
• ArticleType
• BaseSharingRule
• CriteriaBasedSharingRule
• CustomDataType
• CustomField
• CustomObject
• DataCategoryGroup
• Flow
• InstalledPackage
• NamedFilter
• OwnerSharingRule
• PermissionSet
• Profile
• Queue
• RecordType
• RemoteSiteSetting
• Role
• SharingReason
• Territory
• Validation Rules
• Workflow
たとえば、次のリリースではテストは実行されません。
28
Force.com 移行ツール の使用
リリースでのテストのサブセットの実行
• 1 個の CustomApplication コンポーネント
• 100 個の Report コンポーネントおよび 40 個の Dashboard コンポーネント
次のリリースではすべてのテストが実行されます。
• 1 個の CustomField コンポーネント
• 1 個の ApexComponent コンポーネントおよび 1 個の ApexClass コンポーネント
• 5 個の CustomField コンポーネントおよび 1 個の ApexPage コンポーネント
• 100 個の Report コンポーネント、40 個の Dashboard コンポーネント、および 1 個の CustomField コンポーネン
ト
リリースでのテストのサブセットの実行
テストレベルにより、リリースで実行するテストに対する制御が強化されます。本番組織へのリリース時間を
短縮するには、Apexコンポーネントをリリース時にテストのサブセットを実行します。本番組織のデフォルト
のテスト実行動作も変更されました。テストレベルが指定されていないときは、デフォルトで、リリースパッ
ケージに Apex クラスまたはトリガが含まれる場合を除き、テストが実行されません。
リリースの Apex コンポーネントのコードカバー率が 75% 未満の場合は、リリースに失敗します。指定したテ
ストのいずれかに失敗した場合も、リリースに失敗します。最初に Sandbox でリリースをテストし、指定した
テストが各コンポーネントを十分にカバーすることを確認することをお勧めします。組織の全体的なコードカ
バー率が 75% 以上でも、Apex コンポーネントの個々のカバー率が 75% 未満のことがあります。コードカバー率
の要件を満たしていない場合は、他のテストを記述してリリースに含めます。
テストのサブセットを実行するには、testLevel="RunSpecifiedTests" パラメータをリリースターゲット
に追加します。sf:deploy 要素内の <runTest> </runTest> 子要素に、リリースターゲットに実行する各
テストクラスを指定します。<runTest> </runTest> タグ内にテストクラス名を追加します。runTest タグ
はテストクラスに 1 つずつ必要なだけ追加します。
このリリースターゲットの例は、3 つのテストクラスを示します。このパッケージのリリース時に、Salesforce
がこれらのテストクラスを実行します。
<target name="deployCode">
<sf:deploy username="${sf.username}" password="${sf.password}"
sessionId="${sf.sessionId}" serverurl="${sf.serverurl}"
deployroot="codepkg" testLevel="RunSpecifiedTests">
<runTest>TestClass1</runTest>
<runTest>TestClass2</runTest>
<runTest>TestClass3</runTest>
</sf:deploy>
</target>
29
Force.com 移行ツール の使用
Sandbox および本番組織のリリースでの同じテストの実
行
テストクラス名には、名前空間プレフィックスを含めることができます。組織に名前空間が定義されている場
合、またはテストクラスが管理パッケージに属する場合に名前空間プレフィックスを追加します。たとえば、
名前空間が MyNamespace の場合は、テストクラスを MyNamespace.TestClass1 と指定します。
ターゲットで実行するテストクラスを指定しない場合は、本番組織へのリリース時にデフォルトのリリース動
作が適用されます。デフォルトでは、インストール済みの管理パッケージから発生したテストを除き、リリー
ス時に組織のすべてのテストが実行されます。デフォルトのコードカバー率要件も適用されます。この要件で
は、すべてのクラスとトリガでの全体の最小カバー率が 75% です。また、トリガは 0% のカバー率は許可され
ません。
特定のテストの実行に関する留意事項
• 指定できるのはテストクラスのみで、個々のテストメソッドは指定できません。
• コードカバー率の要件を満たす最小限のテストを含めるように、テストクラスを再構成することをお勧め
します。テストクラスを再構成するとテストの実行時間が短縮され、結果的にリリース時間も短縮されま
す。
• テストのサブセットを指定するときに、無効化されたトリガをリリースすることはサポートされていませ
ん。トリガが無効化されている場合は、テストのサブセットの実行時にそのトリガが実行されず、カバー
率が 0% になります。そのためリリースされません。ただし、すべてのテストを実行するときは、無効化さ
れたトリガのリリースがサポートされます。
Sandbox および本番組織のリリースでの同じテストの実行
API バージョン 34.0 以降、本番環境で実行するテストに合わせて、開発環境で実行するテスト (ローカルテスト
のみなど) を選択できます。以前のバージョンでは、Sandbox リリースでテストを有効にすると、管理パッケー
ジテストを除外できませんでした。
デフォルトでは、Sandbox または Developer Edition 組織などの本番以外の組織へのリリースでは、テストは実行
されません。開発環境で実行するテストを指定するには、testLevel リリースオプションを設定します。た
とえば、リリースでローカルテストを実行し、管理パッケージテストを除外するには、次の例に示すように
testLevel="RunLocalTests" パラメータをリリースターゲットに追加します。
<target name="deployCode">
<sf:deploy username="${sf.username}" password="${sf.password}"
sessionId="${sf.sessionId}" serverurl="${sf.serverurl}"
deployroot="codepkg" testLevel="RunLocalTests">
</sf:deploy>
</target>
メモ: リリースパッケージの内容に関係なく、RunLocalTests テストレベルが強制適用されます。これ
に対し、本番組織ではデフォルトで、リリースパッケージに Apex クラスまたはトリガが含まれる場合に
のみテストが実行されます。RunLocalTests は、Sandbox および本番組織のリリースに使用できます。
30
Force.com 移行ツール の使用
リリースのキャンセル
リリースのキャンセル
<sf:cancelDeploy> タスクで進行中またはキュー内にあるリリースをキャンセルできます。
<sf:cancelDeploy> タスクは次のパラメータをサポートしています。
項目
説明
username
sessionId が指定されていない場合は必須です。ログイン用の Salesforce ユー
ザ名。この接続に関連付けられるユーザ名は、「すべてのデータの編集」権
限を持っている必要があります。通常、これはシステム管理者のみに有効で
す。
password
sessionId が指定されていない場合は必須です。このプロジェクトに関連付
けられた組織にログインするために使用するパスワード。セキュリティトー
クンを使用している場合は、パスワードの最後に 25 桁のトークン値を貼り付
けます。
sessionId
username および password が指定されていない場合は必須です。有効な
Salesforce セッションの ID。セッションは、ユーザがユーザ名とパスワードを
使用して正常に Salesforce にログインした後に作成されます。新しいセッショ
ンを作成する代わりに既存のセッションにログインする場合に、セッション
ID を使用します。
requestId
必須。キャンセルする進行中またはキュー内にあるリリースの ID を指定しま
す。
serverurl
省略可能。Salesforce サーバの URL (空白の場合、デフォルトは
www.salesforce.com)。Sandbox インスタンスに接続するには、
test.salesforce.com に変更します。
maxPoll
省略可能。デフォルトは 200 です。リリース要求の結果を得るためにサーバ
をポーリングする回数です。待機を停止した場合でも、リリースに成功する
ことがあります。
pollWaitMillis
省略可能。デフォルトは 10000 です。リリース結果をポーリングする場合の
待機時間 (ミリ秒単位) です。待機を停止した場合でも、リリースに成功する
ことがあります。
trace
省略可能。デフォルトは false です。SOAP 要求と応答をコンソールに表示
します。これには、ログイン時のユーザのパスワードがプレーンテキストで
表示されます。
次の例に、リリースのキャンセルターゲットを示します。requestId (sf.deployRequestId) の値は、
build.properties ファイルで定義されます。
<target name="cancel">
<sf:cancelDeploy username="${sf.username}" password="${sf.password}"
31
Force.com 移行ツール の使用
タスクの状況の確認
sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}
requestId="${sf.deployRequestId}"/>
</target>
sf:cancelDeploy は、Force.com 移行ツールのバージョン 34.0 以降でサポートされます。
タスクの状況の確認
ターゲットを実行すると、Force.com 移行ツールで、ターゲットに含まれるリリースタスクまたは取得タスクご
とに要求 ID が出力されます。要求 ID を使用して、リリースタスクまたは取得タスクの状況を確認できます。
これは、クライアントの実行時間が長く、マシンのForce.com 移行ツールとSalesforce間の接続が切断されるネッ
トワーク問題が発生する場合に特に便利です。
実行ターゲットの状況を確認するには、次のコマンドを使用します。
ant -Dsf.asyncRequestId=requestID targetName
ターゲットを実行したときに出力された requestID を使用します。たとえば、deployZip ターゲットを実
行する場合は、次のコマンドを実行して取得の状況を確認できます。
ant -Dsf.asyncRequestId=04sx00000002aGuAAI deployZip
メモ: 取得タスクまたはリリースタスクが複数含まれるターゲットでは、このコマンドを使用しないでく
ださい。bulkRetrieve タスクは複数の要求の取得を一括処理するため、このコマンドではこのタスク
を使用しないでください。
[設定] から [監視] > [リリース] をクリックして、リリースの状況を Salesforce 内から追跡することもできます。
32
第4章
一般的な移行の問題
メタデータの移行時および変更のリリース時には、一般的な問題がいくつか発生する可能性があります。これ
らの問題は、3 つのカテゴリに分類できます。
• メタデータ — 特定のメタデータコンポーネントを処理する場合の特殊な考慮事項
• 接続 — 組織への接続や結果のポーリングを行う場合の問題
• テストおよびコードカバー率 — リリース前の Apex のテスト
一般的なメタデータの問題
最も一般的なメタデータの問題として、次のようなものがあります。
• 標準オブジェクトのカスタム項目の取得 — package.xml でワイルドカード記号を使用してすべてのオブ
ジェクトを取得する場合、標準オブジェクトや標準オブジェクトのカスタム項目は取得されません。標準
オブジェクトのカスタム項目を取得する場合は、「プロジェクトマニフェストの作成」 (ページ 6)を参照
してください。
• プロファイルまたは権限セットと項目レベルセキュリティ — 取得したプロファイルまたは権限セットの内
容は、retrieve 要求の他の内容に応じて異なります。たとえば、カスタムオブジェクトに含まれている項目
の項目レベルセキュリティは、プロファイルまたは権限セットと同時に返されます。詳細は、『Force.com
メタデータ API 開発者ガイド』の「プロファイル」および「PermissionSet」を参照してください。
• パッケージについて — パッケージは、複数の組織で共有したり Force.com AppExchange で配布したりできる
ようにするため、関連コンポーネントをバンドルするために使用されます。管理パッケージとは、インス
トーラ組織内のアップグレード可能なパッケージを指します。管理パッケージは、一部のコンポーネント
がロックされている未管理パッケージとは異なり、アップグレードが可能です。どのパッケージにも含ま
れないメタデータコンポーネントには、sf:retrieve および sf:deploy の unpackaged 属性を使用し
てアクセスできます。
• ワークフロー — .workflow ファイルは、オブジェクトに関連付けられた、WorkflowAlert、WorkflowFieldUpdate、
WorkflowOutboundMessage、WorkflowRule、WorkflowTask など、個々のワークフローコンポーネントのコンテナ
です。すべてのワークフローを取得するには、次の XML を package.xml に含めます。
<types>
<members>*</members>
<name>Workflow</name>
</types>
• オブジェクト定義に依存するコンポーネントの取得またはリリース — メタデータコンポーネント
CustomField、Picklist、RecordType、Weblink、および ValidationRule の定義は、特定のオブ
ジェクトに依存します。つまり、package.xml ではコンポーネント名をドットとオブジェクト名で修飾す
33
一般的な移行の問題
る必要があります。また、ワイルドカード記号は使用しないでください。詳細は、「プロジェクトマニフェ
ストの作成」 (ページ 6)を参照してください。
• 個人フォルダ — ユーザの個人フォルダは、レポートとドキュメントのいずれもメタデータ API では公開さ
れません。レポートまたはドキュメントを移行するには、公開フォルダに移動する必要があります。
接続の問題
最も一般的な接続の問題として、次のようなものがあります。
• 要求のタイムアウト — メタデータを取得またはリリースする場合、要求は非同期で送信されます。つま
り、応答はすぐに返されません。このコールは非同期であるため、Force.com 移行ツールがタイムアウトに
なった場合でも、サーバで deploy() が完了するまで処理されます。リリースに成功すると、変更がサー
バにコミットされます。タイムアウト後にリリースに失敗した場合、サーバからエラーメッセージを取得
する方法はありません。このため、タイムアウトエラーを受け取った場合は、pollWaitMillis および
maxPoll パラメータを調整することが重要です。
– pollWaitMillis — 取得/リリース結果を取得するまで待機するポーリング間隔の時間 (ミリ秒単位)。
デフォルト値は 10000 ミリ秒 (10 秒) です。実行時間の長いプロセスの場合は、この値を増やして、1 日
の API 制限にカウントされるポーリング要求の合計数を削減します。
– maxPoll — 中止されるまでのポーリング試行回数。デフォルト値は、200 です。pollWaitMillis
(10000) のデフォルト値と組み合わせると、Force.com 移行ツールにより、タイムアウトになる前にサー
バプロセスを完了するための時間が合計 2,000 秒 (33 分) 取られます。合計時間は、各ポーリング間の待
機時間が 10 秒で、200 回のポーリング試行として計算されます。
メモ: これらのパラメータにはデフォルト値があるため、パラメータを指定する必要はありません。
ただし、指定ターゲットにこれらのパラメータが存在しない場合があります。これらのパラメータを
追加するには、ターゲット定義に含めます。次に例を示します。
<sf:retrieve
username="${sf.username}"
password="${sf.password}"
sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}"
retrieveTarget="retrieveUnpackaged"
unpackaged="unpackaged/package.xml"
pollWaitMillis="10000"
maxPoll="100"/>
• ユーザ名、パスワード、セキュリティトークンが無効か、ユーザがロックされています - このエラーは、
build.properties でログイン情報に問題があることを示します。
34
一般的な移行の問題
– ユーザ名 — このアカウントのユーザ名が正しいことを確認します。Sandbox インスタンスに接続する場
合は、Sandbox 名がユーザ名に付加されます。たとえば、本番ユーザ名が [email protected] であ
り、いずれか 1 つの Sandbox 名が bar の場合、Sandbox ユーザ名は [email protected] になり
ます。
– パスワード — このアカウントのパスワードが正しいことを確認します。セキュリティトークンは、パ
スワードの最後に付加されます。
– セキュリティトークン — セキュリティトークンは、パスワードに付加される 25 桁の文字列です。セキュ
リティトークンをリセットするには、個人設定の [私のセキュリティトークンのリセット] ページに移動
します。
– ロックアウト — 組織へのログインに何度も失敗すると、一時的にロックアウトされることがあります。
接続の失敗回数およびロックアウト期間は、組織の設定によって異なります。システム管理者にロック
の解除を依頼するか、ロックアウト期間が経過するまで待機します。
– Sandbox と本番の接続の不一致 — build.properties のすべての接続認証情報が正しい場合、URL の不
一致が考えられます。サーバ URL は、Sandbox 環境と本番環境では異なります。本番環境の場合、
build.properties の sf.serverurl 値は https://login.salesforce.com になります。Sandbox
環境の場合、値は https://test.salesforce.com になります。
• プロキシ設定 — プロキシ経由で接続する場合は、Ant プロキシ設定手順に従う必要があります。
Apex のテスト
本番組織にリリースするときに実行するテストを指定しないと、組織の名前空間内のすべての単体テストが実
行されます。Apex をリリースする前に、次の条件を満たす必要があります。
• Apex コードの少なくとも 75% が単体テストでカバーされており、かつすべてのテストが成功している。
次の点に注意してください。
– 本番組織にリリースするときに、組織の名前空間内のすべての単体テストが実行されます。
– System.debug へのコールは、Apex コードカバー率の対象とはみなされません。
– テストメソッドとテストクラスは、Apex コードカバー率の対象とはみなされません。
– Apexコードの 75% が単体テストでカバーされている必要がありますが、カバー率を上げることだけに集
中すべきではありません。アプリケーションのすべてのユースケース (正・誤両方の場合や単一データ
だけでなく複数データの場合) の単体テストを作成するようにしてください。このような多様なユース
ケースのテストコードを実装することが 75% 以上のカバー率につながります。
• すべてのトリガについて何らかのテストを行う。
• すべてのクラスとトリガが正常にコンパイルされる。
実行するテストを指定すると、リリースのコードカバー率計算が若干異なります。「リリースでのテストのサ
ブセットの実行」を参照してください。
Salesforce は次の事項のテストを作成することをお勧めします。
単一操作
単一のレコードが適切かつ予測どおりの結果を生成することを確認するテスト。
35
一般的な移行の問題
一括操作
トリガ、クラス、拡張にかかわらず、すべての Apex コードが 1 件から 200 件のレコードについて呼び出さ
れます。単一レコードのケースだけでなく、一括ケースについてもテストする必要があります。
ポジティブ動作
予測される動作がすべての予測される順列で行われること、つまりユーザがすべてを正しく入力し、制限
を超えないことを確認するテスト。
ネガティブ動作
将来の日付を追加できない、負の数量を指定できないなどの制限がアプリケーションに存在する場合があ
ります。ネガティブケースについてテストし、制限内のポジティブケースと同様、エラーメッセージが適
切に生成されることを確認する必要があります。
制限ユーザ
コード内で使用する sObjects へのアクセス権限が制限されているユーザが予測どおりの動作を行えるかどう
かを確認するテスト。つまり、コードを実行できるかどうか、エラーメッセージを受信するかどうかを確
認します。
メモ: 条件演算子および 3 項演算子は、ポジティブブランチとネガティブブランチの両方が実行されない
限り、実行されたとはみなされません。
詳細は、『Force.com Apex コード開発者ガイド』の「Apex のテストについて」を参照してください。
36
用語集
A |B |C |D |E |F |G |H |I |J |K |L |M |N |O |P |Q |R |S |T |U |V |W |X |Y |Z
A
Apex
Apex は、開発者が Force.com プラットフォームサーバでフローとトランザクションの制御ステートメントを
Force.comAPIへのコールと組み合わせて実行できるようにした、強く型付けされたオブジェクト指向のプロ
グラミング言語です。Java に似た、データベースのストアドプロシージャのように動作する構文を使用す
るApexにより、開発者は、ボタンクリック、関連レコードの更新、およびVisualforceページなどのほとんど
のシステムイベントにビジネスロジックを追加できます。Apex コードは、Web サービス要求、およびオブ
ジェクトのトリガから開始できます。
Apex による共有管理
開発者は、アプリケーションの動作をサポートする共有をプログラムで操作できるようになります。Apex
による共有管理は、カスタムオブジェクトでのみ有効です。
アプリケーション
「App」と表記されることもあります。特定のビジネス要件を扱うタブ、レポート、ダッシュボードおよび
Visualforce ページなどのコンポーネントの集合です。Salesforce では、セールスおよびコールセンターなどの
標準アプリケーションを提供しています。お客様のニーズに合わせてこれらの標準アプリケーションをカ
スタマイズできます。また、アプリケーションをパッケージ化して、カスタム項目、カスタムタブ、カス
タムオブジェクトなどの関連コンポーネントと共にAppExchangeにアップロードできます。そのアプリケー
ションを AppExchange から他の Salesforce ユーザが利用できるようにすることもできます。
AppExchange
AppExchange は Salesforce の共有インターフェースであり、Force.com プラットフォームのアプリケーションや
サービスを参照および共有できます。
AppExchange のアップグレード
アプリケーションのアップグレードは、新しいバージョンをインストールするプロセスです。
アプリケーションプログラムインターフェース (API)
コンピュータシステム、ライブラリ、またはアプリケーションが、その他のコンピュータプログラムがサー
ビスを要求したりデータを交換したりできる機能を提供するインターフェースです。
非同期コール
操作に長い時間がかかるため、直ちに結果を返さないコールです。メタデータ API と Bulk API のコールは非
同期です。
37
用語集
B
Boolean 演算子
Boolean 演算子をレポートプロファイルで使用して、2 つの値の間の論理関係を指定できます。たとえば、2
つの値の間で AND 演算子を使用すると、両方の値を含む検索結果が生成されます。同様に、2 つの値の間
で OR 演算子を使用すると、どちらかの値を含む検索結果が生成されます。
Bulk API
REST ベースの Bulk API は、大規模データセットの処理用に最適化されています。Salesforce によりバックグラ
ウンドで処理される複数のバッチを送信することにより、多数のレコードを非同期でクエリ、挿入、更新、
更新/挿入または削除できます。「SOAP API」も参照してください。
C
クラス、Apex
Apexオブジェクトの作成でベースとして使用する一種のテンプレートです。他のクラス、ユーザ定義メソッ
ド、変数、例外型、および静的初期化コードで構成されます。多くの場合、Apex クラスは、Java 内のその
対応物に基づいています。
クライアントアプリケーション
Salesforce ユーザインターフェースの外部で実行し、Force.com API または Bulk API のみを使用するアプリケー
ションです。通常、デスクトップまたはモバイルデバイス上で稼動します。これらのアプリケーションは、
プラットフォームをデータソースとして扱い、設計されたツールおよびプラットフォームの開発モデルを
使用します。
コンポーネント、メタデータ
コンポーネントは、メタデータ API のメタデータ型のインスタンスです。たとえば、CustomObject はカスタ
ムオブジェクトのメタデータ型で、MyCustomObject__c コンポーネントはカスタムオブジェクトのイン
スタンスです。コンポーネントは XML ファイルに記述され、メタデータ API を使用するか、Force.com IDE や
Force.com 移行ツールなど、API で構築されたツールを使用してリリースしたり、取得したりできます。
コンポーネント、Visualforce
<apex:detail> などの一連のタグを使用して Visualforce ページに追加できます。Visualforce には、多くの標
準コンポーネントが含まれていますが、独自のカスタムコンポーネントを作成することもできます。
コンポーネントの参照、Visualforce
組織で使用できるVisualforceの標準コンポーネントおよびカスタムコンポーネントの説明。Visualforceページ
の開発フッターまたは『Visualforce 開発者ガイド』からコンポーネントライブラリにアクセスできます。
コントローラ、Visualforce
Visualforce ページに実行する必要のあるデータおよびビジネスロジックを提供する Apex クラス。Visualforce
ページは、デフォルトですべての標準オブジェクトまたはカスタムオブジェクトに付属する標準コントロー
ラを使用、またはカスタムコントローラを使用できます。
制御項目
対応する 1 つ以上の連動項目で使用可能な値を制御する、標準またはカスタムの選択リストやチェックボッ
クスの項目です。
38
用語集
カスタムアプリケーション
「アプリケーション」を参照してください。
カスタムリンク
カスタムリンクとは管理者によって定義された URL。これを使用して、Salesforceデータを外部 Web サイトと
バックエンドのオフィスシステムと統合します。以前は Web リンクと呼ばれていました。
カスタムオブジェクト
組織固有の情報を保存することが可能なカスタムレコード。
カスタム Sコントロール
メモ: Sコントロールは、Visualforce ページに置き換えられました。2010 年以降、新しい組織同様、Sコ
ントロールを作成したことのない組織は、Sコントロールを作成できなくなります。既存の Sコント
ロールに影響はありません。今後も編集できます。
カスタムリンクで使用するカスタム Web コンテンツ。カスタム Sコントロールには、Java アプレット、Active-X
コントロール、Excel ファイル、カスタム HTML Web フォームなど、ブラウザに表示できるあらゆる種類のコ
ンテンツを入れることができます。
D
データベース
情報の編成されたコレクション。Force.com プラットフォームの基底となるアーキテクチャには、データが
格納されているデータベースが含まれています。
データベーステーブル
追跡する必要のある人物、物事、またはコンセプトに関する情報のリストで、行および列で表示されます。
「オブジェクト」も参照してください。
データ操作言語 (DML)
レコードを挿入、更新、削除する Apex のメソッドまたは操作。
小数点の位置
数値、通貨、パーセント項目で、小数点の右に入力できる桁数合計。たとえば、4.98 の場合は 2 となりま
す。これ以上の桁の数値を入力した場合は、四捨五入されます。たとえば、[小数点の位置] が 2 の場合に
4.986 と入力すると、その数値は 4.99 となります。Salesforce では、round half up アルゴリズムを使用します。
中間値は常に四捨五入されます。たとえば、1.45 は 1.5 に切り上げられます。–1.45 は –1.5 に切り上げられま
す。
連動項目
対応する制御項目で選択された値に基づいて、使用可能な値が表示される、カスタムの選択リストまたは
複数選択の選択リストの項目です。
Salesforce 開発者
Salesforce 開発者 Web サイト (developer.salesforce.com) では、サンプルコード、ツールキット、オンライン開発
者コミュニティなど、プラットフォーム開発者向けの幅広いリソースを提供しています。開発向けのForce.com
プラットフォーム環境も、ここから入手できます。
39
用語集
ドキュメントライブラリ
ドキュメントの保存場所。これらのドキュメントは、取引先や取引先責任者、商談、またはその他のレコー
ドに添付しません。
E
メールアラート
メールアラートは、メールテンプレートを使用してワークフロールールまたは承認プロセスによって生成
され、Salesforce ユーザなど、指定された受信者に送信されるワークフローおよび承認アクションです。
Enterprise WSDL
Salesforce 組織のみでインテグレーションを構築する顧客や、Tibco、webMethods などのツールを使って強い
型キャストが必要なインテグレーションを構築するパートナー向けの強い型付けの WSDL です。Enterprise
WSDL の欠点は、組織のデータモデルに存在するすべての一意のオブジェクトおよび項目にバインドされて
いるため、1 つの Salesforce 組織のスキーマだけを扱うという点です。
エンティティ関係図 (ERD)
データをエンティティ (またはForce.comプラットフォームではオブジェクト) に整理し、それらのリレーショ
ンを定義することができるデータモデリングツールです。主要な Salesforce オブジェクトの ERD ダイアグラ
ムについては、『SOAP API 開発者ガイド』を参照してください。
列挙項目
列挙は、WSDL での選択項目と同じです。項目の有効な値は、同じデータ型を持つ指定可能な値のセットに
厳密に制限されます。
F
項目
テキストまたは通貨の値など、情報の特定の部分を保持するオブジェクトの一部です。
項目レベルセキュリティ
項目が、ユーザに非表示、表示、参照のみ、または編集可能であるかどうかを決定する設定です。Enterprise
Edition、Unlimited Edition、Performance Edition、Developer Edition でのみ使用できます。
検索条件
リストビューまたはレポートに含まれる項目を絞り込むための、特定の項目に対する条件。たとえば「都
道府県」「次の文字列と一致する」「東京都」など。
Force.com
クラウドでアプリケーションを構築するための Salesforce プラットフォーム。Force.com は、強力なユーザイ
ンターフェース、オペレーティングシステムおよびデータベースを結合して、企業全体でアプリケーショ
ンをカスタマイズおよび展開できます。
Force.com IDE
開発者が Eclipse 開発環境で Force.com アプリケーションを管理、作成、デバッグおよびリリースできる Eclipse
プラグイン。
40
用語集
Force.com 移行ツール
ローカルファイルシステムと Salesforce 組織との間で Force.com コンポーネントを移行する Apache Ant 開発ス
クリプトを作成するためのツールキット。
外部キー
値が別のテーブルの主キーと同じ項目です。外部キーは、別のテーブルの主キーのコピーとしてみなすこ
とができます。2 つのテーブルのリレーションは、あるテーブルの外部キーの値と、別のテーブルの主キー
の値が一致することによって成り立ちます。
数式項目
カスタム項目の一種。差し込み項目、式、またはその他の値に基づいて、値を自動的に計算します。
関数
あらかじめ用意されている数式。入力パラメータを使用してカスタマイズできます。たとえば、DATE 関数
は、年、月、および日付から日付データ型を作成します。
G
グレゴリオ暦
世界中で使用されている、12 か月構造に基づいたカレンダーです。
H
HTTP デバッガ
AJAX Toolkit から送信される SOAP 要求を識別し、調査するために使用できるアプリケーションです。ローカ
ルコンピュータで稼動するプロキシサーバとして動作し、各要求を調査および認証できます。
I
ID
「Salesforce レコード ID」を参照してください。
インライン Sコントロール
メモ: Sコントロールは、Visualforce ページに置き換えられました。2010 年以降、新しい組織同様、Sコ
ントロールを作成したことのない組織は、Sコントロールを作成できなくなります。既存の Sコント
ロールに影響はありません。今後も編集できます。
個別のページでなく、レコード詳細ページまたはダッシュボード内に表示される Sコントロールです。
インスタンス
組織のデータをホストし、アプリケーションを実行する単一の論理サーバとして示されるソフトウェアお
よびハードウェアのクラスタです。Force.comプラットフォームは複数のインスタンスで稼動しますが、1 つ
の組織のデータは常に 1 つのインスタンスに保存されています。
インテグレーションユーザ
クライアントアプリケーションまたはインテグレーションのみを対象に定義された Salesforce ユーザです。
また、SOAP API コンテキストではログインユーザとも呼ばれます。
41
用語集
ISO コード
国際標準化機構が定める国コードで、各国を 2 文字で表します。
J
連結オブジェクト
2 つの主従関係を持つカスタムオブジェクトです。カスタム連結オブジェクトを使用して、2 つのオブジェ
クト間の「多対多」リレーションをモデル化できます。たとえば、「バグ」という名前のカスタムオブジェ
クトを作成し、1 つのバグを複数のケースに、また 1 つのケースを複数のバグに関連付けることができま
す。
K
該当用語はありません。
L
ライセンス管理アプリケーション (LMA)
無料の AppExchange アプリケーションで、AppExchange から管理パッケージ (アプリケーション) をダウンロー
ドするすべてのユーザのセールスリードおよび取引先を追跡できます。
ライセンス管理組織 (LMO)
パッケージをインストールしたすべての Salesforce ユーザを追跡できる、Salesforce 組織です。ライセンス管
理組織には、ライセンス管理アプリケーション (LMA)をインストールする必要があります。ライセンス管理
アプリケーションは、パッケージがインストールまたはアンインストールされるたびに自動的に通知を受
信するため、簡単にユーザにアップグレードを通知できます。Enterprise Edition、Unlimited Edition、Performance
Edition、または Developer Edition の組織をライセンス管理組織として指定できます。詳細は、
http://www.salesforce.com/docs/en/lma/index.htm を参照してください。
リストビュー
特定の条件による項目 (取引先、または取引先責任者など) のリスト表示。Salesforce には、事前に定義され
たビューがあります。
エージェントコンソールでは、リストビューが、具体的な条件に基づいてレコードのリストビューを表示
する最上位のフレームです。[コンソール] タブに表示して選択できるリストビューは、各オブジェクトの
タブで定義されたリストビューと同じです。コンソール内でリストビューを作成することはできません。
ローカルプロジェクト
プロジェクトマニフェスト (package.xml) および 1 つ以上のメタデータコンポーネントを含む .zip ファ
イルです。
ログインユーザ
SOAP APIコンテキストで、Salesforceにログインするために使用するユーザ名です。クライアントアプリケー
ションは、ログインユーザの権限および共有設定に基づいて動作します。また、インテグレーションユー
ザとも呼ばれます。
42
用語集
参照項目
別のレコードに対するリンク可能な値を含む項目の種別です。オブジェクトに別のオブジェクトとの参照
関係または主従関係がある場合、ページレイアウトに参照項目を表示できます。たとえば、ケースに納入
商品との参照関係がある場合、ケース詳細ページからルックアップダイアログを使用して納入商品を選択
し、ケース詳細ページから納入商品の名前をクリックできます。
M
管理パッケージ
ユニットとしてAppExchangeに投稿され、名前空間と、場合によりライセンス管理組織に関連付けられるア
プリケーションコンポーネントの集合です。アップグレードをサポートするには、管理パッケージである
ことが必要です。組織は、他の多くの組織でダウンロードおよびインストールできる単一の管理パッケー
ジを作成できます。管理パッケージは、未管理パッケージとは異なり、コンポーネントの一部がロックさ
れていて、後でアップグレードできます。未管理パッケージには、ロックされたコンポーネントは含まれ
ておらず、アップグレードはできません。また、管理パッケージでは、開発者の知的財産保護のため、登
録している組織では特定のコンポーネント (Apex など) は隠されます。
マニフェストファイル
プロジェクトマニフェストファイル (package.xml) には、メタデータ API、またはメタデータ API の上に構
築された Force.com IDE または Force.com 移行ツールなどのクライアントを使用するときに取得またはリリー
スする XML コンポーネントがリストされます。
手動による共有
レコード所有者がレコードにアクセス権を持たないユーザに参照権限および編集権限を与えることができ
るレコードレベルのアクセスルールです。
多対多リレーション
リレーションの両端に多くの子があるリレーションです。多対多リレーションは、連結オブジェクトを使
用して実装されます。
メタデータ
組織およびいずれかの部署の構造、外観、機能に関する情報です。Force.com では、メタデータを記述する
のに XML を使用します。
メタデータ WSDL
Force.com メタデータ API コールを使用するユーザの WSDL。
マルチテナンシー
すべてのユーザおよびアプリケーションが単一で共通のインフラストラクチャおよびコードベースを共有
するアプリケーションモデルです。
N
名前空間
パッケージコンテキストでは、ドメイン名と同様、AppExchangeにある自社パッケージとその内容を他の開
発者のパッケージと区別するための 1 ~ 15 文字の英数字で構成される識別子です。Salesforce では、Salesforce
43
用語集
組織のすべての一意のコンポーネント名に自動的に名前空間接頭辞とそれに続く 2 つのアンダースコア (__)
を追加します。
ネイティブアプリケーション
Force.comの設定 (メタデータ) 定義で排他的に開発されたアプリケーションです。ネイティブアプリケーショ
ンには、外部サービスまたは外部インフラストラクチャは必要ありません。
O
オブジェクト
Salesforce 組織に情報を保存するために使用するオブジェクト。オブジェクトは、保存する情報の種類の全
体的な定義です。たとえば、Case オブジェクトを使用して、顧客からの問い合わせに関する情報を保存で
きます。各オブジェクトについて、組織は、そのデータ型の具体的なインスタンスに関する情報を保存す
る複数のレコードを保有します。たとえば、佐藤次郎さんから寄せられたトレーニングに関する問い合わ
せに関する情報を保存するケースレコードと、山田花子さんから寄せられたコンフィグレーションの問題
に関する情報を保存するケースレコードなどです。
オブジェクトレベルのヘルプ
カスタムオブジェクトに提供できるカスタムヘルプのテキスト。カスタムオブジェクトレコードのホーム
(概要)、詳細、編集ページ、リストビューや関連リストに表示されます。
オブジェクトレベルセキュリティ
特定のユーザに対してオブジェクト全体を非表示にできる設定です。ユーザはそうしたデータの存在を知
ることもできません。オブジェクトレベルセキュリティはオブジェクト権限で指定されます。
onClick JavaScript
ボタンまたはリンクをクリックすると実行される JavaScript コードです。
一対多リレーション
1 つのオブジェクトが多数のオブジェクトに関連するリレーション。たとえば、取引先に 1 つまたは複数の
関連取引先責任者がある場合があります。
組織の共有設定
ユーザが組織で持つデータアクセスのベースラインレベルを指定できる設定。たとえば、オブジェクト権
限によって有効化されている特定のオブジェクトの任意のレコードを参照できますが、編集するには別の
権限が必要となるよう、組織の共有設定を設定できます。
アウトバウンドメッセージ
アウトバウンドメッセージは、外部サービスなどの指定したエンドポイントに指定の情報を送信するワー
クフロー、承認、およびマイルストンアクションです。アウトバウンドメッセージは、Salesforce の設定メ
ニューで設定します。その後で、外部エンドポイントを設定する必要があります。SOAP API を使用して、
メッセージのリスナーを作成できます。
フロート表示
ユーザインターフェースの要素にマウスポインタを停止すると、フロート表示に追加情報が表示されます。
フロート表示によって、マウスを移動したり、フロート表示外部をクリックしたり、または [閉じる] ボタ
ンをクリックしたりすると、フロート表示が閉じられます。
所有者
レコード (取引先責任者またはケースなど) が割り当てられる個別ユーザ。
44
用語集
P
パッケージ
AppExchangeを介して他の組織で使用可能なForce.comのコンポーネントおよびアプリケーションのグループ
です。AppExchangeにまとめてアップロードできるように、パッケージを使用してアプリケーションおよび
関連するコンポーネントをバンドルします。
Partner WSDL
複数の Salesforce 組織にまたがって動作するインテグレーションや AppExchange アプリケーションを構築する
場合に顧客、パートナー、ISV が使用する、弱い型付けの WSDL。この WSDL では、開発者が適切なオブジェ
クト表現でデータのマーシャリングを行います。通常、ここには XML の編集が含まれます。ただし、開発
者は特定のデータモデルまたは Salesforce 組織に依存しません。強い型付けの Enterprise WSDL とは対照的で
す。
選択リスト
Salesforce オブジェクトの特定の項目で選択できる選択肢。たとえば、取引先の [業種] 項目など。ユーザ
は、項目に直接入力せずに、選択リストから 1 つの値を選択できます。「マスタ選択リスト」も参照して
ください。
選択リスト (複数選択)
Salesforce オブジェクトの特定の項目で選択できる選択肢のリストです。複数選択リストを使用して 1 つま
たは複数の値を選択できます。ユーザは値をダブルクリックして選択するか、Ctrl キーを押したまま値をク
リックしてスクロールリストから複数の値を選択し、矢印アイコンを使用して選択されたボックスに値を
移動できます。
主キー
リレーショナルデータベースのコンセプトです。リレーショナルデータベースの各テーブルには、データ
値が一意にレコードを識別する項目があります。この項目を、主キーと呼びます。2 つのテーブルのリレー
ションは、あるテーブルの外部キーの値と、別のテーブルの主キーの値が一致することによって成り立ち
ます。
本番組織
実際の本番データとそれらにアクセスするライブユーザを持っている Salesforce 組織です。
Q
キュー
処理する前にアイテムを置いておく領域です。Salesforce では、さまざまな機能やテクノロジーにキューを
使用します。
クエリ文字列パラメータ
通常 URL の「?」文字の後に指定されている名前 - 値のペアです。次に例を示します。
http://na1.salesforce.com/001/e?name=value
45
用語集
R
レコード
Salesforce オブジェクトの単一インスタンス。たとえば、「John Jones」は取引先責任者レコードの名前とな
ります。
レコード名
すべての Salesforce オブジェクトの標準項目です。レコード名が Force.com アプリケーションに表示される
と、値はレコードの詳細ビューへのリンクとして表示されます。レコード名は自由形式のテキストまたは
自動採番項目です。[レコード名] には、必ずしも一意の値を割り当てる必要はありません。
レコードタイプ
レコードタイプとは、そのレコードの標準およびカスタムの選択リスト項目の一部またはすべてを含める
ことができる特定のレコードに使用可能な項目です。レコードタイプをプロファイルに関連付けて、含ま
れている選択リストの値のみがそのプロファイルのユーザに使用できるようにできます。
レコードレベルセキュリティ
データを制御するメソッドで、特定のユーザがオブジェクトを参照および編集でき、ユーザが編集できる
レコードを制限できます。
ごみ箱
削除した情報を表示し、復元できるページです。ごみ箱には、サイドバー内のリンクからアクセスします。
関連オブジェクト
特定のタイプのレコードがコンソールの詳細ビューに表示されている状況で、システム管理者がエージェ
ントコンソールのミニビューへの表示を指定できるオブジェクトです。たとえば、システム管理者は、ケー
スが詳細ビューに表示されているときにミニビューに表示される項目として、関連する取引先、取引先責
任者、納入商品などを指定できます。
リレーション
ページレイアウト内の関連リストおよびレポート内の詳細レベルを作成するために使われる、2 つのオブ
ジェクトの間の接続です。両方のオブジェクトの特定の項目において一致する値を使用して、関連するデー
タにリンクします。たとえば、あるオブジェクトには会社に関連するデータが保存されていて、別のオブ
ジェクトには人に関連するデータが保存されている場合、リレーションを使用すると、その会社で働いて
いる人を検索できます。
リレーションクエリ
SOQL コンテキストで、オブジェクト間のリレーションを辿り、結果を識別および返すクエリです。親対子
および子対親の構文は、SOQL クエリでは異なります。
レポートタイプ
レポートタイプは、主オブジェクトとその関連オブジェクトとの関係に基づいて、レポートで使用するレ
コードと項目のセットを定義するものです。レポートには、レポートタイプで定義された条件を満たすレ
コードのみが表示されます。Salesforceには、定義済みの標準レポートタイプのセットが用意されています。
管理者がカスタムレポートタイプを作成することもできます。
ロール階層
レコードレベルのセキュリティで使用される設定です。ロール階層によって特定のレベルのロールを割り
当てられたユーザは、組織の共有モデルとは関係なく、階層において自分よりも下位のユーザが所有して
いるデータ、および該当のユーザと共有しているデータに対する参照、編集権限を持つことになります。
46
用語集
積み上げ集計項目
主従関係の子レコードの値の集計値を自動的に提供する項目の種別です。
S
SaaS
「サービスとしてのソフトウェア (SaaS)」を参照してください。
Sコントロール
メモ: Sコントロールは、Visualforce ページに置き換えられました。2010 年以降、新しい組織同様、Sコ
ントロールを作成したことのない組織は、Sコントロールを作成できなくなります。既存の Sコント
ロールに影響はありません。今後も編集できます。
カスタムリンクで使用するカスタム Web コンテンツ。カスタムSコントロールには、Java アプレット、Active-X
コントロール、Excel ファイル、カスタム HTML Web フォームなど、ブラウザに表示できるあらゆる種類のコ
ンテンツを入れることができます。
Salesforce レコード ID
Salesforce の 1 つのレコードを識別する 15 文字または 18 文字の一意の英数字文字列です。
Salesforce SOA (サービス指向アーキテクチャ)
Apex 内から外部 Web サービスへのコールを実行できる Force.com の強力な機能です。
Sandbox
開発、テストおよびトレーニング用の、Salesforce 本番組織とほぼ同一のコピー。Sandbox のコンテンツとサ
イズは、Sandbox の種別および Sandbox に関連付けられた本番組織のエディションによって異なります。
セッション ID
ユーザが Salesforce に正常にログインした場合に返される認証トークンです。セッション ID を使用すると、
ユーザが Salesforce で別のアクションを実行するときに毎回ログインする必要がなくなります。レコード ID
または Salesforce ID と異なり、Salesforce レコードの一意の ID を示す用語です。
セッションタイムアウト
ログインしてからユーザが自動的にログアウトするまでの時間です。セッションは、前もって決定された
非活動状態の期間の後、自動的に終了します。非活動状態の期間の長さは、[設定] の [セキュリティのコン
トロール] をクリックすることによって Salesforce で設定できます。デフォルト値は 120 分 (2 時間) です。ユー
ザが Web インターフェースでアクションを実行または API コールを実行すると、非活動状態タイマーが 0 に
リセットされます。
設定
システム管理者が組織の設定および Force.com アプリケーションをカスタマイズおよび定義できるメニュー
です。組織のユーザインターフェース設定に応じて、[設定] はユーザインターフェースのヘッダーでリン
クになっている場合もあれば、ユーザ名の下でドロップダウンリストになっている場合もあります。
サイト
Force.com サイトでは、公開 Web サイトとアプリケーションを作成できます。それらは Salesforce 組織と直接
統合されるため、ユーザがログインする場合にユーザ名やパスワードは必要ありません。
47
用語集
スニペット
メモ: Sコントロールは、Visualforce ページに置き換えられました。2010 年以降、新しい組織同様、Sコ
ントロールを作成したことのない組織は、Sコントロールを作成できなくなります。既存の Sコント
ロールに影響はありません。引き続き編集できます。
スニペットは、他の Sコントロールに組み込めるよう設計された Sコントロールです。コードの一部で他の
メソッドによって使用されるヘルパーメソッドと同様、スニペットを使用して、複数の Sコントロールで再
利用できる HTML や JavaScript の 1 つのコピーを保持できます。
SOAP (Simple Object Access Protocol)
XML エンコードデータを渡す一定の方法を定義するプロトコル。
サービスとしてのソフトウェア (SaaS)
ソフトウェアアプリケーションがサービスとしてホストされ、顧客にインターネットを経由して提供され
る配信モデルです。SaaS ベンダは、アプリケーションおよび各顧客データの日常メンテナンス、操作およ
びサポートを行う責任があります。このサービスで、顧客が独自のハードウェア、ソフトウェア、そして
関連 IT リソースを使用してアプリケーションをインストール、構成、保守する必要性を緩和します。SaaS
モデルを使用して、あらゆる市場区分にサービスを配信することができます。
SOQL (Salesforce オブジェクトクエリ言語)
Force.com データベースからデータを選択する条件を指定するために使う、単純で強力なクエリ文字列を構
築できるクエリ言語です。
SOSL (Salesforce オブジェクト検索言語)
Force.com API を使用して、テキストベースの検索を実行できるクエリ言語。
標準オブジェクト
Force.com プラットフォームに含まれる組み込みオブジェクトです。アプリケーション独自の情報を格納す
るカスタムオブジェクトを作成することもできます。
システムログ
開発者コンソールの一部。コードスニペットのデバッグに使用できる独立したウィンドウ。ウィンドウの
下部にテストするコードを入力して、[実行] をクリックします。システムログの本文には、実行する行の
長さや、作成されたデータベースコール数などのシステムリソース情報が表示されます。コードが完了し
なかった場合は、コンソールにデバッグ情報が表示されます。
T
Test メソッド
特定のコードが適切に動作しているかを確認する Apex クラスメソッドです。Test メソッドは引数を採用せ
ず、データをデータベースにコミットしません。また、コマンドラインまたは Force.com IDE のような Apex
IDE で runTests() システムメソッドによって実行できます。
トランスレーションワークベンチ
トランスレーションワークベンチを使用して、翻訳する言語を指定し、翻訳者を言語に割り当て、Salesforce
組織に作成したカスタマイズの翻訳を作成し、管理対象パッケージから表示ラベルと翻訳を上書きするこ
とができます。カスタム選択リスト値からカスタム項目にいたるすべてを翻訳し、海外のユーザがSalesforce
のすべてを彼らの言語で使用できるようになりました。
48
用語集
トリガ
データベースの特定の種別のレコードが挿入、更新、または削除される前後で実行する Apex スクリプトで
す。各トリガは、トリガが実行されるレコードへのアクセス権限を提供する一連のコンテキスト変数で実
行し、すべてのトリガは一括モードで実行します。つまり、一度に 1 つずつレコードを処理するのではな
く、複数のレコードを一度に処理します。
トリガコンテキスト変数
トリガおよびトリガが起動するレコードに関する情報へのアクセス権を提供するデフォルトの変数です。
U
V
入力規則
指定される基準に一致しない場合、レコードを保存しない規則です。
Visualforce
開発者が、プラットフォームに作成されたアプリケーションのカスタムページおよびコンポーネントを容
易に定義できる、単純で、タグベースのマークアップ言語。各タグが、ページのセクション、関連リスト、
または項目など、大まかなコンポーネントときめの細かいコンポーネントのどちらにも対応しています。
コンポーネントは、標準の Salesforce ページと同じロジックを使用して制御することができます。また、開
発者が独自のロジックを Apex で記述されたコントローラと関連付けることもできます。
W
Web コントロール
「URL Sコントロール」を参照してください。
Web サービス
様々なプラットフォームで稼動、さまざまな言語で作成、またはお互い地理的に離れている場合であって
も、2 つのアプリケーションがインターネットを経由してデータを容易に交換できるメカニズムです。
WebService メソッド
サードパーティのアプリケーションのマッシュアップなど、外部システムによって使用できる Apex クラス
メソッドまたは変数です。Web サービスメソッドは、グローバルクラスで定義する必要があります。
Web サービス API
Salesforce組織の情報へのアクセスを提供する Web サービスアプリケーションプログラミングインターフェー
ス。「SOAP API」および「Bulk API」も参照してください。
Web タブ
ユーザがアプリケーション内から外部 Web サイトを使用できるカスタムタブです。
ワークフローアクション
ワークフローアクション (メールアラート、項目自動更新、アウトバウンドメッセージ、ToDo など) は、ワー
クフロールールの条件が満たされると起動します。
49
用語集
ワークフローメールアラート
ワークフロールールが起動したときにメールを送信するワークフローアクションです。ワークフロー ToDo
と異なり、アプリケーションユーザにのみ割り当てることができ、ワークフローアラートは有効なメール
アドレスがある限り、ユーザまたは取引先責任者に送信できます。
ワークフロー項目自動更新
ワークフロールールが起動したときに、レコードの特定の項目の値を変更するワークフローアクションで
す。
ワークフローアウトバウンドメッセージ
別のクラウドコンピューティングアプリケーションなど、外部 Web サービスにデータを送信するワークフ
ローアクションです。アウトバウンドメッセージは、主に複合アプリケーションで使用されます。
ワークフローキュー
1つ以上の時間ベースワークフローアクションがあるワークフロールールに基づいて起動するようスケジュー
ルされている、ワークフローアクションのリストです。
ワークフロールール
ワークフロールールは、指定された条件に該当するときに、ワークフローアクションを実行します。ワー
クフローアクションは、ワークフロールールで指定された条件をレコードが満たすとただちに実行するか、
タイムトリガを設定して特定の日に実行するように設定することができます。
ワークフロー ToDo
ワークフロールールが起動したときに ToDo をアプリケーションユーザに割り当てるワークフローアクショ
ン。
WSDL (Web Services Description Language) ファイル
Web サービスと送受信するメッセージの形式を説明する XML ファイルです。開発環境の SOAP クライアント
は、Salesforce Enterprise WSDL または Partner WSDL を使用して、SOAP API で Salesforce と通信します。
X
XML (拡張可能マークアップ言語)
構造化データの共有と移動を可能にするマークアップ言語です。メタデータ API を使用して取得またはリ
リースされるすべての Force.com コンポーネントは、XML 定義に従って表されます。
Y
該当用語はありません。
Z
Zip ファイル
データ圧縮およびアーカイブの形式です。
メタデータ APIによって取得またはリリースされるファイルの集合です。「ローカルプロジェクト」も参照
してください。
50