Application Upgrade

One consideration to make when changing a BPM project prior to attempting an application upgrade is the consistency of the application's 'service API' and the data used within those API's.

The service API consists of the web-services that the BPM application exposes to other applications (via processes with incoming message activities) and input/output data used by those services.

In order for the application to be upgradeable, first it must continue to provide any existing web-service operations unchanged (including the data classes referenced from the input/output data of each service).

Secondly, the application must ensure that any data referenced by service input/output data is consistent with data expected to be received by any existing process instances (that have not been migrated to the latest application version).

This is because there is only a single web-service end-point for a service exposed by a process for all versions of that process. Therefore incoming message activities in old-version process instances will be invoked using the data associated with the latest version of the WSDL service interface. The old-version process instances will use old-version BOM data models, and therefore would fail if the new-version data model had changed in an inconsistent way.

When process incoming message activities are configured to generate a WSDL, the WSDL service interface is derived from those activities and the set of data types referenced via formal-parameters associated with the activities. Therefore changes to those activities and data types will affect the application's web-service interface.

When process incoming message activities reference pre-defined WSDLs, the application's web-service interface is based on operations and schema data types defined in the WSDL.

Making changes to the project may result in changes to the generated WSDL, meaning that the application cannot be upgraded. See Making Changes to the Service Interface for more information about interface changes and about best practice in making and managing them.

Note: You can add a new operation - a Receive Task/event handler - to an existing operation and would be able to upgrade from an existing application.