Newer Version Available
PackageUploadRequest
Supported SOAP Calls
create(), describeSObjects(),query(),retrieve()
Supported REST HTTP Methods
Query, GET, POST
Fields
| Field | Details |
|---|---|
| Description |
|
| Errors |
|
| IsReleaseVersion |
|
| MajorVersion |
|
| MetadataPackageId |
|
| MetadataPackageVersionId |
|
| MinorVersion |
|
| Password |
|
| PostInstallUrl |
|
| ReleaseNotesUrl |
|
| Status |
|
| VersionName |
|
Usage
Suppose that you want to upload version 1.3 of your managed package. Let’s write some code to create a package upload request, upload the package version, and poll the status of the upload until it completes.
First, let’s set some variables for the request object.
1static private final String packageId = "033xx00000007l0";
2static private final Integer packageMajorVersionNumber = 1;
3static private final Integer packageMinorVersionNumber = 3;
4static private final Boolean isReleaseVersion = true;
5static private final String packageVersionDescriptionSuffix =
6 isReleaseVersion ? "" : "beta";
7static private final String packageVersionDescription =
8 "r" + packageMinorVersionNumber + packageVersionDescriptionSuffix;
9static private final String packageDescription =
10 String.format("This is the most amazing package in the world! ",
11 "And %s is the most amazing release so far! ",
12 packageVersionDescription);
13static private final String packageReleaseNotesUrl = "https://www.example.com";
14static private final String packagePostInstallUrl = "https://www.example.com";
15
16// Leave blank or null for no password
17static private final String packagePassword = "";
18
19static private final String baseUrl = "https://MyDomainName.my.salesforce.com:6109";Now let’s create the upload request and start the upload. This code sample uses the Web Services Connector (WSC).
1PackageUploadRequest packageUploadRequest = new PackageUploadRequest();
2packageUploadRequest.setMetadataPackageId(packageId);
3packageUploadRequest.setVersionName(packageVersionDescription);
4packageUploadRequest.setDescription(packageDescription);
5packageUploadRequest.setMajorVersion(packageMajorVersionNumber);
6packageUploadRequest.setMinorVersion(packageMinorVersionNumber);
7packageUploadRequest.setPostInstallUrl(packagePostInstallUrl);
8packageUploadRequest.setReleaseNotesUrl(packageReleaseNotesUrl);
9packageUploadRequest.setIsReleaseVersion(isReleaseVersion);
10packageUploadRequest.setPassword(packagePassword);
11
12SObject[] argArray = {packageUploadRequest};
13SaveResult[] saveResults = connection.create(argArray);
14
15if (saveResults[0].isSuccess()) {
16 // The save result contains the ID of the created request.
17 // Save it in the local request.
18 packageUploadRequest.setId(saveResults[0].getId());
19 System.out.println("PackagePushRequest created, ID: "
20 + saveResults[0].getId());
21} else {
22 for (Error error : saveResults[0].getErrors()) {
23 System.out.println(error.getMessage());
24 }
25}Checking the Status of an Upload Request
1// Find the status of the PackageUploadRequest for a given ID
2String query = String.format("SELECT Status,MetadataPackageVersionId
3 FROM PackageUploadRequest WHERE Id = '%s'", packageUploadRequest.getId());
4
5boolean inProgress = false;
6boolean queued = false;
7boolean done = false;
8while (true) {
9 QueryResult queryResult = connection.query(query);
10
11 PackageUploadRequest updatedPackageUploadRequest =
12 (PackageUploadRequest) queryResult.getRecords()[0];
13
14 PackageUploadRequestStatus status = updatedPackageUploadRequest.getStatus();
15 switch (status) {
16 case Success:
17 System.out.println(String.format("Package upload %s completed",
18 packageUploadRequest.getId()));
19 System.out.println(String.format(
20 "Package install url: %s/packaging/installPackage.apexp?p0=%s",
21 baseUrl,
22 updatedPackageUploadRequest.getMetadataPackageVersionId()));
23 done = true;
24 break;
25
26 case Error:
27 PackageUploadErrors errors = updatedPackageUploadRequest.getErrors();
28
29 if (errors.getErrors().length == 0) {
30 System.out.println(String.format(
31 "%s: For upload of package %s, no further information available",
32 updatedPackageUploadRequest.getStatus(),
33 packageUploadRequest.getId()));
34 }
35 else {
36 System.out.println(String.format(
37 "%s: For upload of package %s",
38 updatedPackageUploadRequest.getStatus(),
39 packageUploadRequest.getId()));
40 for (PackageUploadError error : errors.getErrors()) {
41 System.out.println("Error detail: " + error.getMessage());
42 }
43 }
44 assertTrue("Upload failure occurred", false);
45 break;
46
47 case Queued:
48 if (!queued) {
49 System.out.println(String.format("Package upload %s enqueued”,
50 packageUploadRequest.getId()));
51 queued = true;
52 }
53 break;
54
55 case InProgress:
56 if (!inProgress) {
57 System.out.println(String.format("Package upload %s started",
58 packageUploadRequest.getId()));
59 inProgress = true;
60 }
61 break;
62
63 case Unknown:
64 System.out.println("Unexpected package upload status: " +
65 updatedPackageUploadRequest.getStatus());
66 }
67
68 if (done) break;
69
70 try {
71 Thread.sleep(1000);
72 } catch (InterruptedException e) {
73 // ignore interruptions
74 }
75}