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

PackagePushRequest

1 つまたは複数の組織で、あるバージョンから別のバージョンへパッケージをアップグレードするための転送要求を表します。

サポートされているコール

create()describeSObjects()query()retrieve()update()upsert()

特別なアクセスルール

第一世代管理パッケージの転送アップグレードを開始するには、「AppExchange パッケージのアップロード」ユーザ権限が必要です。

ロック解除済み管理パッケージまたは第二世代管理パッケージの転送アップグレードを開始するには、「第二世代パッケージの作成および更新」権限が必要です。

転送アップグレード機能は、AppExchange セキュリティレビューに合格した第一世代および第二世代管理パッケージでのみ使用できます。管理パッケージの転送アップグレードを有効にするには、Salesforce パートナーコミュニティでサポートケースを登録します。

ロック解除済みパッケージでは、転送アップグレードはデフォルトで有効になっています。

項目

項目名 詳細
DurationSeconds
int
プロパティ
Group、Nillable
説明
転送アップグレードの完了に要した時間の長さ (秒)。この項目は API バージョン 51.0 で新規追加されました。
EndTime
dateTime
プロパティ
Create、Nillable、Update
説明
転送アップグレードが終了した ISO 8601 形式の日時 (UTC)。この項目は API バージョン 51.0 で新規追加されました。
PackageVersionId
reference
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
必須。パッケージがアップグレードされる、ベータでも非推奨でもないパッケージバージョン。
ScheduledStartTime
dateTime
プロパティ
Create、Filter、Nillable、Sort、Update
説明
転送要求が処理される ISO 8601 形式の日時 (UTC)。Salesforce で転送の開始を試行する最も早い時間にこの値を設定します。日曜日の午前 1:00 など、ピーク時間外に転送をスケジュールすることをお勧めします。値を指定しないと、パッケージ転送要求の Status が Pending に設定されているときに転送が開始します。
StartTime
dateTime
プロパティ
Create、Nillable、Update
説明
転送アップグレードが実際に開始した ISO 8601 形式の日時 (UTC)。この項目は API バージョン 51.0 で新規追加されました。
Status
picklist
プロパティ
Create、Filter、Group、Nillable、Restricted picklist、Sort、Update
説明
転送の状況。有効な値は、次のとおりです。
  • Canceled
  • Created (デフォルト)
  • Failed
  • In Progress
  • Pending
  • Succeeded
転送要求を作成する場合はこの値を指定しないでください。デフォルト値の [Created] が使用されます。後で状況を [Pending] に変更し、転送アップグレードをスケジュールします。

使用方法

パッケージのバージョン 3.4.6 をすべての組織に転送するとします。MetadataPackageVersion を使用して、アップグレード対象の組織をすでに特定しています。各対象組織の転送ジョブを保持する転送要求を作成するため、いくつかのコードを記述しましょう。

このコードサンプルは Web Services Connector (WSC) を使用しています。

1// Create a new PackagePushRequest for the versionId to upgrade to
2// (for example, versionId is the "04t..." id of version 
3// 3.4.6 of the package
4PackagePushRequest ppr = new PackagePushRequest();
5ppr.setPackageVersionId(versionId);
6
7// Optionally, set the start time of the PackagePushRequest to schedule it to begin 
8// automatically; scheduledStartTime is a java.util.Calendar instance
9ppr.setScheduledStartTime(scheduledStartTime);
10
11// Save the PackagePushRequest
12SaveResult[] saveResults = conn.create(new SObject[] { ppr });
13if (saveResults[0].isSuccess()) {
14	// Add the newly generated Id to the object
15	ppr.setId(saveResults[0].getId());
16} else {
17	for (Error error : saveResults[0].getErrors()) {
18		System.out.println(error.getMessage());
19	}
20}

または、REST API を使用している場合、次の例のように POST 要求を PackagePushRequest sObject エンドポイントに送信します。SOAP API もサポートされています。

この例は、転送ジョブの作成に必要な転送要求 ID (0DV で開始) を返します。
1POST
2/services/data/v38.0/sobjects/packagepushrequest/
3{
4   "PackageVersionId" : "04t...",
5   "ScheduledStartTime" : "2016-08-24T21:00:00"
6}

次のステップでは、PackagePushJob を使用して、アップグレードする各対象サブスクライバーの転送ジョブを作成します。

転送アップグレードのスケジュール

転送アップグレードの準備ができていることを示すには、転送要求の状況を Pending に変更します。ScheduledStartTime を設定していない場合、転送アップグレードは状況を変更した直後に開始されます。

次の Java の例を参照してください。
1// ppr is the PackagePushRequest instance
2ppr.setStatus("Pending");
3conn.update(new SObject[] { ppr });

REST API を使用している場合、次の例のように PATCH 要求を PackagePushRequest sObject エンドポイントに送信します。SOAP API もサポートされています。

1PATCH
2/services/data/v38.0/sobjects/packagepushrequest/0DV...
3{
4   "Status" : "Pending"
5}

転送要求の状況の確認

PackagePushRequest の状況は、その関連付けられたすべてのジョブが成功した場合は Succeeded、1 つ以上のジョブが失敗した場合は Failed になります。
1// Finds the status of the PackagePushRequest for a given Id
2final String PACKAGE_PUSH_REQUEST_STATUS_QUERY = "Select status from PackagePushRequest" +
3	" where Id = '%s'";
4
5// ppr is a PackagePushRequest instance
6QueryResult queryResult = conn.query(String.format(PACKAGE_PUSH_REQUEST_STATUS_QUERY, 
7	ppr.getId()));
8
9// extract the status from the QueryResult
10String status = ((PackagePushRequest) queryResult.getRecords()[0]).getStatus();
11
12// optionally, update the PackagePushRequest instance with the latest status
13ppr.setStatus(status);

PackagePushJob の Status 項目を照会してジョブの状況を確認することもできます。

転送要求の中止

状況を [Canceled] に変更して、パッケージ転送要求を中止できます。

たとえば、REST API を使用している場合、PATCH 要求を PackagePushRequest sObject エンドポイントに送信します。
1PATCH
2/services/data/v38.0/sobjects/packagepushrequest/0DV...
3{
4   "Status" : "Canceled"
5}
Java の例は次のとおりです。
1// ppr is the PackagePushRequest instance
2ppr.setStatus("Canceled");

状況が [Created] または [Pending] の場合のみパッケージ転送要求を中止できます。中止が成功すると、関連する転送ジョブもすべてキャンセルされます。現在の PackagePushRequest の状況が [Canceled]、[Succeeded]、[Failed]、または [In Progress] の場合、転送は中止されずにエラーメッセージが返されます。