Validate Migration Plan

Validates a migration plan statically without executing it. This corresponds to the creation time validation described in the user guide.

Method

POST /migration/validate

Parameters

Request Body

A JSON object with the following properties:

Name Description
sourceProcessDefinitionId The id of the source process definition for the migration.
targetProcessDefinitionId The id of the target process definition for the migration.
instructions A list of migration instructions which map equal activities. Each migration instruction is a JSON object with the following properties:
Name Type Description
sourceActivityIds Array The activity ids from the source process definition being mapped.
targetActivityIds Array The activity ids from the target process definition being mapped.
updateEventTrigger Boolean Configuration flag whether event triggers defined are going to be updated during migration.
variables A map of variables which can be set into the process instances' scope. Each key is a variable name and each value a JSON variable value object with the following properties:

Name Description
value The variable's value. For variables of type Object, the serialized value has to be submitted as a String value.

For variables of type File the value has to be submitted as Base64 encoded string.

type The value type of the variable.
valueInfo A JSON object containing additional, value-type-dependent properties.

For serialized variables of type Object, the following properties can be provided:

  • objectTypeName: A string representation of the object's type name.
  • serializationDataFormat: The serialization format used to store the variable.

For serialized variables of type File, the following properties can be provided:

  • filename: The name of the file. This is not the variable name but the name that will be used when downloading the file again.
  • mimetype: The MIME type of the file that is being uploaded.
  • encoding: The encoding of the file that is being uploaded.

The following property can be provided for all value types:

  • transient: Indicates whether the variable should be transient or not. See documentation for more informations.

Result

A JSON object which contains a list of instruction reports if any errors are detected, other wise it is empty.

Name Type Description
instructionReports Array The list of instruction validation reports. If no validation errors are detected it is an empty list.
variableReports Object An object of variable validation reports. If no validation errors are detected it is an empty object. Each key is a variable name and each value a JSON variable validation report object.

The properties of an instruction report are as follows:

Name Type Description
instruction Object A migration instruction JSON object with the following properties:
Name Type Description
sourceActivityIds Array The activity ids from the source process definition being mapped.
targetActivityIds Array The activity ids from the target process definition being mapped.
updateEventTrigger Boolean Configuration flag whether event triggers defined are going to be updated during migration.
failures Array A list of instruction validation report messages.

The properties of a variable report are as follows:

Name Type Description
type String The value type of the variable.
value String/Number/Boolean/Object The variable’s value.
valueInfo Object A JSON object containing additional, value-type-dependent properties.
failures Array A list of instruction validation report messages.

Response codes

Code Media type Description
200 Request successful. The validation report was returned.
400 application/json The instance could not be created due to an invalid variable value, for example if the value could not be parsed to an Integer value or the passed variable type is not supported. See the Introduction for the error response format.
400 application/json In case additional parameters of the request are unexpected, an exception of type InvalidRequestException is returned. See the Introduction for the error response format.

Example

Request

POST /migration/validate

Request Body:

{
  "sourceProcessDefinitionId": "aProcessDefinitionId1",
  "targetProcessDefinitionId": "aProcessDefinitionId2",
  "instructions": [
    {
      "sourceActivityIds": ["aUserTask"],
      "targetActivityIds": ["aUserTask"]
    },
    {
      "sourceActivityIds": ["anEvent"],
      "targetActivityIds": ["anotherEvent"],
      "updateEventTrigger": true
    }
  ],
  "variables": {
    "foo": {
      "type": "Object",
      "value": "...",
      "valueInfo": {
        "objectTypeName": "java.util.ArrayList",
        "serializationDataFormat": "application/x-java-serialized-object"
      }
    }
  }
}

Response

Status 200.

{
  "instructionReports": [
    {
      "instruction": {
        "sourceActivityIds": [
          "aUserTask"
        ],
        "targetActivityIds": [
          "aUserTask"
        ],
        "updateEventTrigger": false
      },
      "failures": [
        "failure1",
        "failure2"
      ]
    },
    {
      "instruction": {
        "sourceActivityIds": [
          "anEvent"
        ],
        "targetActivityIds": [
          "anotherEvent"
        ],
        "updateEventTrigger": true
      },
      "failures": [
        "failure1",
        "failure2"
      ]
    }
  ],
  "variableReports": {
    "foo": {
      "type": "Object",
      "value": "...",
      "valueInfo": {
        "objectTypeName": "java.util.ArrayList",
        "serializationDataFormat": "application/x-java-serialized-object"
      },
      "failures": [
        "Cannot set variable with name foo. Java serialization format is prohibited"
      ]
    }
  }
}

On this Page: