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 deploy the case data model (it is automatically given a new minor version), which upgrades the existing business data application and case data tables. If you attempt to deploy an updated case data model that contains destructive or unsupported changes as a new minor version, deployment will fail.

You can choose to fix destructive changes, or you can:

  1. increment the major component of the project's version number. Select Properties > Lifecycle and then click Increment Major Version and apply your change.
  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.

Non-Destructive Changes

The following changes are non-destructive:

  • 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 changing, or an upgrade to a higher major version. The following are specific examples of destructive changes:

  • 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.