Process Migration

If you want to be able to migrate a process instance from one version of a process template to a later one, you will need to make sure that the data in the first process template is compatible with the second process template version. The Case Data Manager (CDM) component will do a compatibility check for all types of classes (Local or Case) whenever a new version of Business Data Project is deployed.

As much of the structure of the data comes from the BOM, you have to ensure that the BOM used by the two versions of the project is compatible. This means that the BOM used by the process template that you are migrating from must be a subset of the BOM used by the process template that you are migrating to.

Therefore, if you want to be able to migrate process instances from the old process template to the new version of the process template, you can only make compatible changes to the BOM. If incompatible changes are made to the BOM, there is a possibility that process instances will not be able to be migrated to the new version of the process templates.

A compatible change adds a new entity to a BOM, or makes an existing entity less restrictive, for example, the addition of a new class, or increasing the length of a text attribute from 50 to 60 characters. Examples of ‘incompatible changes’ include removal of a class, making an optional attribute mandatory, or adding a maximum value to an integer attribute that was previously unrestricted.

The following changes in the process template are considered as compatible when migrating a process instance from one version of a process template to a later one.

General Changes

Any BOM entity’s label can be changed (as long as the name remains the same).

Diagrams can be rearranged, annotated, and so on.

Changes to a Class

  • Addition of new attributes and composition attributes, as long as they are optional (for example, they must have multiplicity with a lower bound of zero, such as 0..1 or "*").

Changes to Class Attributes and Composition Relationships

The multiplicity of an attribute or composition relationship may be changed, as long as it makes it less restrictive (for example, it either increases the upper bound or decreases the lower bound) and it does not change between having a maximum multiplicity of 1 and greater than 1. Examples are given in the following table.

From To Valid?
1..5 1..8 Yes - increase in multiplicity
1 0..1 Yes – made optional
0..1 * No (cannot change from single to many)
1 1..* No (cannot change from single to many)
* 1..* No (might have zero)
0..1 1 No (might have zero)
* 4..* No (might have less than 4)

The attribute type cannot be changed. If an attribute’s type remains the same, its restrictions may be altered, as long as they are less restrictive than the old restrictions.

Restriction Permitted Change
Default value May be changed
Lower limit May be decreased or removed if a former lower limit was set
Upper limit May be increased or removed if a former upper limit was set
Lower limit inclusive May be changed from false to true
Upper limit inclusive May be changed from false to true
Maximum text length May be increased
Number length May be increased
Decimal places May be increased (if length increased by the same amount or more)

Changes to an Enumeration

Addition of new enumeration literals.

Change to a Primitive Type

When the type has a BOM Native Type as its superclass, it may be altered subject to the compatible change rules described in Changes to Class Attributes and Composition Relationships.