Upgrading a Case Data Model

When you upgrade a case data model that has already been deployed, each change is validated by the BPM runtime as part of the deployment process (based on either database rules or the ability to support existing data from an earlier version). Whether changes are valid or invalid determines how you can deploy the updated case model.

If your update contains only non-destructive and supported changes you can:

  1. increment the minor/micro/qualifier components of the project's version number, unless you are allowing Business Studio to automatically manage the version number.
  2. deploy the case data model as a new minor version, which upgrades the existing business data application and case data tables.

If you make any destructive changes, you must:

  1. increment the major component of the project's version number.
  2. deploy the case data model as a new major version, which creates a new business data application and a new set of case data tables. The application and case data tables for the existing case data model version are unaffected. (If you do not want to do this, you can delete the existing version, clear the ActiveMatrix Administrator software cache, then deploy the new version with the same version number. However, this will remove any existing data in the case data tables for this case data model.)
Note: Validation is performed as part of the deployment process (by the BDS component of the BPM runtime). If you attempt to deploy an updated case data model that contains destructive or unsupported changes as a new minor version, deployment will fail.

Non-Destructive Changes

The following changes are non-destructive, allowing upgrade to a higher minor version:

  • Add a new optional attribute to a class.
  • Add a new class.
  • Add an optional composition.
  • Add an association.
  • Change multiplicity upper bounds from 2 or higher to a higher value.
  • Change multiplicity lower bounds to a lower value.
  • Add a new enumeration literal to an existing enumeration type.
  • On an attribute:
    • Increase the length of a text field up to 400 (if it is currently less than 400).
    • Increase the "Integer - Fixed Length" number of digits up to 31.
    • Increase the "Decimal - Fixed Length" number of digits up to 31.
    • Increase the upper bounds of a numeric type.
    • Decrease the lower bounds of a numeric type.
    • Remove restrictions such as upper bound, length, lower bound or pattern.
    • Make it searchable or not searchable.

Destructive Changes

Any change other than those specifically listed as non-destructive is destructive, requiring an upgrade to a higher major version. The following are specific examples of destructive changes:

  • Add a generalization to an existing class.
  • Change the type of an existing attribute.
  • Add mandatory compositions.
  • Change multiplicity from 1..1 to 1..*.
  • Delete mandatory attributes or compositions.
  • Add a mandatory attribute to a class.
  • Change multiplicity 0..* to 0..1 or 1..1.
  • Delete optional attributes, associations, compositions.
  • Delete a class.
  • On an attribute:
    • Change between different numeric types.
    • Change a pattern that is applied to the attribute.
    • Decrease the length of a text field.
    • Increase the lower bounds of a numeric type.
    • Decrease the upper bounds of a numeric type.