# PackageVersionHeader

Specifies the package version for each installed managed package.

A managed package can have several versions with different content and behavior. This header allows you to specify the version used for each package referenced by your API client.

If a package version isn't specified, the API client uses the version of the package specified in Setup. From Setup, enter `API` in the `Quick Find` box, select **API**, and then click **Configure Enterprise Package Version Settings** under `Enterprise Package Version Settings`.

This header is available in API version 16.0 and later.

## Associated API Calls

convertLead(), [create()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_create.htm), [`delete()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_delete.htm), [`describeGlobal()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describeglobal.htm), [`describeLayout()`](/docs/platform/api/guide/sforce-api-calls-describelayout.md), [`describeSObject()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobject.htm), [`describeSObjects()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobjects.htm), [`describeSoftphoneLayout()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesoftphonelayout.htm), [`describeTabs()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describetabs.htm), [`executeAnonymous()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_executeanonymous.htm), [merge()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_merge.htm), [process()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_process.htm), [`query()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_query.htm), [`retrieve()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_retrieve.htm), [`search()`](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_search.htm), [undelete()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_undelete.htm), [update()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_update.htm), [upsert()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_upsert.htm)

## Fields

### `packageVersions`

**Type:** [PackageVersion](/docs/platform/api/guide/sforce-api-header-packageversionheader.md)\[]

**Description:** A list of package versions for installed managed packages referenced by your API client.

## PackageVersion

Specifies a version of an installed managed package. A package version is *majorNumber*.*minorNumber*, for example `2.1`.

### `majorNumber`

**Type:** int

**Description:** The major version number of a package version.

### `minorNumber`

**Type:** int

**Description:** The minor version number of a package version.

### `namespace`

**Type:** string

**Description:** The unique namespace of the managed package.

## Sample Code—Java

This sample sets the package version for one installed package in the `PackageVersionHeader`. Next, it executes the code passed into this method via the `executeAnonymous` Apex method.

```codesegment
import com.sforce.soap.apex.SoapConnection;

import com.sforce.soap.apex.PackageVersion;

import com.sforce.soap.apex.ExecuteAnonymousResult;

public void PackageVersionHeaderSample(SoapConnection connection, String code) throws Exception {

  com.sforce.soap.apex.PackageVersion pv = new com.sforce.soap.apex.PackageVersion();

  pv.setNamespace("installedPackageNamespaceHere");

  pv.setMajorNumber(1);

  pv.setMinorNumber(5);

  PackageVersion[] pvs = new PackageVersion[]{pv};

  connection.setPackageVersionHeader(pvs);

  ExecuteAnonymousResult result = connection.executeAnonymous(apexCode);

  if (result.isCompiled()) {

    System.out.println("Compiled successfully.");

    System.out.println("Execution result: " + (result.isSuccess() ? "SUCCESS" : "FAILED!"));

    if (!result.isSuccess()) {

      System.out.println("Cause: " + result.getExceptionMessage());

      System.out.println(result.getExceptionStackTrace());

    }

  } else {

    System.out.println("Failed to compile: " + result.getCompileProblem());

  }

}
```
