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

REST を使用した Apex テストを含むメタデータのリリース

リリースのすべての操作を処理する要求を開始するには、deployRequest REST リソースを使用してリリースします。

最大 10,000 ファイルまで同時にリリースまたは取得できます。AppExchange パッケージではさまざまな制限が使用されます。API バージョン 43.0 と 44.0 では、AppExchange パッケージに最大 12,500 件のファイルを含めることができます。API バージョン 45.0 では、AppExchange パッケージに最大 17,500 件のファイルを含めることができます。API バージョン 46.0 では、AppExchange パッケージに最大 22,000 件のファイルを含めることができます。API バージョン 47.0 以降では、AppExchange パッケージに最大 30,000 件のファイルを含めることができます。リリースまたは取得する .zip ファイルの最大サイズは 39 MB です。展開したフォルダ内の非圧縮ファイルの場合、サイズ制限は 400 MB です。

URI
https://host/services/data/vXX.0/metadata/deployRequest
形式
JSON
HTTP メソッド
POST
認証
Authorization: Bearer token

deployOptions パラメータ

リリースでのデフォルトのテスト動作、およびテスト要件を満たしながら時間を節約できる方法を確認するには、「リリースでのテストの実行」および「Sandbox および本番組織のリリースでの同じテストの実行」を参照してください。

メモ

パラメータ 説明
allowMissingFiles Boolean。package.xml に指定されているファイルが .zip ファイル内に存在しない場合、リリースを継続するかどうかを指定します。本番組織へのリリースでは、この引数を設定することはできません。
autoUpdatePackage 将来の使用のために予約されています。
checkOnly Boolean。デフォルトは false です。コンポーネントを対象組織に保存せずにコンポーネントのテストリリース (検証) を実行するには、true に設定します。検証では、リリースで生成されるテストの結果を確認できますが、変更はコミットされません。テストに合格して検証が完了したら、テストを再実行することなくリリースできます。「テストなしの最近検証されたコンポーネントのリリース」を参照してください。
ignoreWarnings Boolean。1 つ以上の警告を無視してリリースの正常な完了を許可するか (true)、否か (false) を示します。デフォルトは false です。

警告の DeployMessage オブジェクトには次の値が含まれます。

  • problemTypeWarning
  • problem — 警告のテキスト。

警告が発生し、ignoreWarningstrue に設定されている場合は、DeployMessage の success 項目は true です。ignoreWarningsfalse に設定されている場合、successfalse に設定され、警告はエラーとして処理されます。

performRetrieve 将来の使用のために予約されています。
purgeOnDelete Boolean。true の場合、destructiveChanges.xml マニフェストファイルの削除されたコンポーネントはごみ箱に保存されません。代わりに、即座に削除の対象となります。

このオプションは Developer Edition 組織または Sandbox 組織でのみ機能します。本番組織では機能しません。

rollbackOnError Boolean。エラーが発生した場合、ロールバックを完了するか (true)、否か (false) を示します。false の場合、エラーなしで実行できるアクションはすべて実行され、残りのアクションではエラーが返されます。本番組織にリリースする場合は、このパラメータは true に設定されている必要があります。デフォルトは、false です。
runTests String[]。リリース時に実行される Apex テストのリスト。クラス名 (1 インスタンスあたり 1 つの名前) を指定します。また、クラス名にはドット表記で名前空間を指定することもできます。詳細は、「リリースでのテストのサブセットの実行」を参照してください。

このオプションを使用するには、testLevelRunSpecifiedTests に設定します。

singlePackage Boolean。指定された .zip ファイルが指し示すディレクトリ構造が 1 つのパッケージを持つか (true)、パッケージのセットを持つか (false)) を示します。
testLevel TestLevel (string 型の列挙)。省略可能。リリースの一環として実行するテストを指定します。テストレベルは、リリースパッケージに存在するコンポーネントの種類に関係なく強制適用されます。有効な値は、次のとおりです。
  • NoTestRun — テストは実行されません。このテストレベルは、Sandbox、Developer Edition、トライアル組織など、開発環境へのリリースにのみ適用されます。このテストレベルは、開発環境のデフォルトです。
  • RunSpecifiedTestsrunTests オプションで指定したテストのみが実行されます。このテストレベルを使用する場合、コードカバー率要件がデフォルトのカバー率要件とは異なります。リリースパッケージ内にある各クラスおよびトリガは、実行されたテストによって 75% 以上のコードカバー率でカバーされる必要があります。このカバー率は、クラスおよびトリガごとに個別に計算され、全体のカバー率とは異なります。
  • RunLocalTestsインストール済みの管理パッケージおよびロック解除済みパッケージから発生したテストを除き、組織のすべてのテストが実行されます。このテストレベルは、デフォルトでは Apex クラスまたはトリガを含む、本番リリース用です。
  • RunAllTestsInOrgすべてのテストが実行されます。テストには、管理パッケージのテストを含む、組織内のすべてのテストが含まれます。

テストレベルを指定しないと、デフォルトのテスト実行動作が使用されます。「リリースでのテストの実行」を参照してください。

リリースの一環として実行される Apex テストは、常に順序に従って同期実行されます。

メモ

リクエストボディ: メタデータのリリース

メタデータをリリースすると、要求にはリリースのパラメータ、およびコンポーネントのディレクトリとマニフェストを含む .zip ファイルの両方が含まれます。ヘッダーを Content-Type: multipart/form-data に設定します。

この POST 要求の例では、リリースを開始する deployRequest オブジェクトを作成します。
  1. POST 要求ヘッダーを Content-Type: multipart/form-data に設定し、要求のさまざまな下位区分をカプセル化するための boundary を定義します。
  2. 最初の境界の後の下位部分では、JSON 要求により、リリースのパラメータを渡すための deployOptions 子オブジェクトが作成されます。
  3. 2 番目の境界の後の下位部分では、マニフェストとコンポーネントディレクトリを含む .zip ファイルを指定します。
1POST /services/data/v48.0/metadata/deployRequest
2Authorization: Bearer 00D....
3Content-Type: multipart/form-data; boundary=--------------------------BOUNDARY
4----------------------------BOUNDARY
5Content-Disposition: form-data; name="json"
6Content-Type: application/json
7{ 
8    "deployOptions" :
9        {
10        "allowMissingFiles" : false,
11        "autoUpdatePackage" : false,
12        "checkOnly" : false,
13        "ignoreWarnings" : false,
14        "performRetrieve" : false,
15        "purgeOnDelete" : false,
16        "rollbackOnError" : false,
17        "runTests" : null,
18        "singlePackage" : true,
19        "testLevel" : "RunAllTestsInOrg"
20        }
21    }
22----------------------------BOUNDARY
23Content-Disposition: form-data; name="file"; filename="deploy.zip"
24Content-Type: application/zip
25
26//Contents of deploy.zip
27----------------------------BOUNDARY--

レスポンスボディ: メタデータのリリース

201 (作成済み) の HTTP 状況コードが返された場合は、要求が成功し、処理されるリリースが作成されたことを意味します。

1{ "id" : "0Afxx00000001VPCAY",
2  "deployOptions" : 
3   { "checkOnly" : false,
4     "singlePackage" : false,
5     "allowMissingFiles" : false,
6     "performRetrieve" : false,
7     "autoUpdatePackage" : false,
8     "rollbackOnError" : true,
9     "ignoreWarnings" : false,
10     "purgeOnDelete" : false,
11     "runAllTests" : false },
12  "deployResult" : 
13   { "id" : "0Afxx00000001VPCAY",
14     "success" : false,
15     "checkOnly" : false,
16     "ignoreWarnings" : false,
17     "rollbackOnError" : true,
18     "status" : "Pending",
19     "runTestsEnabled" : false,
20     "done" : false } }

deployResult パラメータ

パラメータ 説明
id ID。リリースされるコンポーネントの ID。
canceledBy ID。リリースをキャンセルしたユーザの ID。
canceledByName String。リリースをキャンセルしたユーザの氏名。
checkOnly Boolean。組織で一切の変更を行わず、リリースされたファイルの有効性を確認するためにこのリリースが使用されているか (true)、否か (false) を示します。確認のみのリリースでは、いずれのコンポーネントもリリースせず、組織の変更も一切行いません。
completedDate DateTime。リリースプロセスの終了時期を示すタイムスタンプ。
createdBy ID。リリースを作成したユーザの ID。
createdByName String。リリースを作成したユーザの氏名。
createdDate DateTime。リリース要求の受信時期を示すタイムスタンプ。
details DeployDetails。GET 要求に ?includeDetails=true がクエリとして追加されている場合は、進行中または終了済みのリリースの詳細を示します。
done Boolean。指定された id に対するリリース要求の処理がサーバで完了したかどうかを示します。
errorMessage String。errorStatusCode 項目に値がある場合は、それに対応するメッセージ。
errorStatusCode String。リリース要求中にエラーが発生した場合、状況コードが返され、その状況コードに対応するメッセージが errorMessagefield で返されます。
ignoreWarnings Boolean。省略可能。デフォルトは false です。リリース中に警告が発生しても処理を続行するかどうかを指定します。本番組織へのリリースでは、この引数を true に設定することはできません。
lastModifiedDate DateTime。リリースプロセスの最後の更新時期を示すタイムスタンプ。
numberComponentErrors Int。リリースプロセスでリリースされたコンポーネントの数。リリースの進行状況を見積もるには、この値を numberComponentsTotal 値で使用します。
numberComponentsTotal Int。リリースのコンポーネントの合計数。リリースの進行状況を見積もるには、この値を numberComponentsDeployed 値で使用します。
numberTestErrors Int。このリリース中にエラーを生成した Apex テストの数。
numberTestsCompleted このリリースで完了した Apex テストの数。リリースのテストの進行状況を見積もるには、この値を numberTestsTotal 値で使用します。
numberTestsTotal Int。このリリースの Apex テストの合計数。リリースのテストの進行状況を見積もるには、この値を numberTestsCompleted 値で使用します。この項目の値は、リリースされるコンポーネントのテストが開始されるまで正確ではありません。
runTestsEnabled Boolean。Apex テストがこのリリースの一部として実行されたか (true)、否か (false) を示します。テストは、リリースの一部として自動的に実行されるか、deployOptions 子オブジェクトで実行するように設定できます。
rollbackOnError Boolean。デフォルトは true です。エラーが発生した場合、ロールバックを完了するか (true)、否か (false) を示します。false の場合、エラーなしで実行できるアクションのセットはすべて実行され、残りのアクションではエラーが返されます。本番組織にリリースする場合は、このパラメータは true に設定されている必要があります。
startDate DateTime。リリースプロセスの開始時期を示すタイムスタンプ。
stateDetail String。リリースされているコンポーネント、または実行している Apex テストクラスを示します。
status リリースの現在の状況を示します。有効な値は、次のとおりです。
  • Pending
  • InProgress
  • Succeeded
  • SucceededPartial
  • Failed
  • Canceling
  • Canceled
success Boolean。リリースが正常に行われたか (true)、否か (false) を示します。