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

PackagePushJob

組織で、あるバージョンから別のバージョンへパッケージをアップグレードするための個々の転送ジョブを表します。1 つの転送要求に対して複数の転送ジョブを作成できます。たとえば、5 つの組織を 1 つの転送でアップグレードする場合、1 つの PackagePushRequest レコードと 5 つの PackagePushJob レコードが作成されます。

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

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

項目

項目名 詳細
DurationSeconds
int
プロパティ
Group、Nillable
説明
転送アップグレードの完了に要した時間の長さ (秒)。この項目は API バージョン 51.0 で新規追加されました。
EndTime
dateTime
プロパティ
Create、Nillable、Update
説明
転送アップグレードが終了した ISO 8601 形式の日時 (UTC)。この項目は API バージョン 51.0 で新規追加されました。
PackagePushRequestId
reference
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
必須。親転送要求レコードの ID。親転送要求レコードは作成されている必要があります。
StartTime
dateTime
プロパティ
Create、Nillable、Update
説明
転送アップグレードが実際に開始した ISO 8601 形式の日時 (UTC)。この項目は API バージョン 51.0 で新規追加されました。
Status
picklist
プロパティ
Create、Filter、Group、Nillable、Restricted picklist、Sort
説明
ジョブの状況。有効な値は、次のとおりです。
  • Canceled
  • Created (デフォルト)
  • Failed
  • In Progress
  • Pending
  • Succeeded
転送ジョブを作成するときには、この値を指定しないでください。デフォルト値の Created が使用されます。
SubscriberOrganizationKey
string
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
必須。パッケージがアップグレードされる組織の組織キー。これは、PackageSubscriber 内の orgKey を参照します。

使用方法

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

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

1PackageSubscriber[] subscribers = new PackageSubscriber[];
2
3// ... populate eligible and desired subscribers
4
5// Create the PackagePushJob array
6PackagePushJob[] jobs = new PackagePushJob[subscribers.length];
7
8for (int i = 0; i < subscribers.length; i++) {
9	// create a job for each subscriber...
10	PackagePushJob job = new PackagePushJob();
11	// ... associate it to the PackagePushRequest ppr...
12	job.setPackagePushRequestId(ppr.getId());
13	// ... and add the orgKey
14	job.setSubscriberOrganizationKey(subscribers[i].getOrgKey());
15	jobs[i] = job;
16}
17
18// Save the jobs
19SaveResult[] saveResults = conn.create(jobs);
20
21// Add the newly generated id's to the PackagePushJob objects
22for (int i = 0; i < saveResults.length; i++) {
23	if (saveResults[i].isSuccess()) {
24		jobs[i].setId(saveResults[i].getId());
25	}
26}
または、REST API を使用している場合は、次の例のように PackagePushJob sObject エンドポイントに POST 要求を送信します。SOAP API もサポートされています。この例は、ジョブの状況を照会するために必要な転送ジョブ ID (0DX で始まる) を返します。
1POST
2/services/data/v38.0/sobjects/packagepushjob/
3{
4   "PackagePushRequestId" : "0DV...",
5   "SubscriberOrganizationKey" : "00DR00..."
6}

転送ジョブの状況の確認

ジョブの状況を確認するには、Status 項目を照会します。次に例を示します。
1SELECT Id, Status FROM PackagePushJob WHERE PackagePushRequestId ='0DV...'
次に Java での例を示します。
1// Finds the status of the PackagePushJob with the given id
2String PACKAGE_PUSH_JOB_STATUS_QUERY = "Select status from PackagePushJob where Id = '%s'";
3
4// job is a PackagePushJob instance
5QueryResult queryResult = conn.query(String.format(PACKAGE_PUSH_JOB_STATUS_QUERY, 
6job.getId()));
7
8// extract the status from the QueryResult 
9String status = ((PackagePushJob) queryResult.getRecords()[0]).getStatus();
10
11// optionally, update the PackagePushJob instance with the latest status
12job.setStatus(status);
ジョブが完了するまで継続的にジョブの状況をポーリングすることもできます。次の Java の例では、10 秒ごとに状況をポーリングします。
1// The set of states that indicate a PackagePushJob has completed
2final Set<String> TERMINAL_STATES = new HashSet<>();
3TERMINAL_STATES.add("Succeeded");
4TERMINAL_STATES.add("Failed");
5TERMINAL_STATES.add("Canceled");
6		
7String status = queryJobStatus(job); // this method returns the status as retrieved in the previous code sample
8
9// If the status is not one of the completed statuses...
10while(!TERMINAL_STATES.contains(status)) {
11	Thread.sleep(10 * 1000); // ... wait 10 seconds and try again
12	status = queryJobStatus(job);
13}