Migrate Workflows

Migrating workflows for IDM 7 involves the following steps:

  1. Manually dump the workflow database tables, and then import them before you start the new IDM instance for the first time.

    The workflow database tables start with the prefix ACT_. For information about dumping and importing individual tables, see the documentation for your database.

    Note

    Workflows are not supported with a DS repository.

  2. Update your BPMN 2.0 workflow definitions, and any associated resource files, such as forms. Workflow forms in IDM 7 must use Vue.JS and updated Vue.JS libraries.

    The end-user validation mechanism has been upgraded (from VeeValidate 2.x to 3.x). If you are migrating workfows from IDM 6.5, follow the VeeValidate migration documentation to update your workflows accordingly.

  3. Migrate process instances that are "in progress".

    1. When you have successfully migrated your IDM system and workflow definitions, query the old and updated process definitions. For example:

      curl \
      --header "X-OpenIDM-Username: openidm-admin" \
      --header "X-OpenIDM-Password: openidm-admin" \
      --header "accept: application/json" \
      --header "Accept-API-Version: resource=1.0" \
      --request GET \
      "http://localhost:8080/openidm/workflow/processdefinition?key=contractorOnboarding&_queryId=filtered-query"
      "result": [
          {
              "_id": "contractorOnboarding:1:5",
              ...
              "key": "contractorOnboarding",
              ...
              "version": 1
          },
          {
              "_id": "contractorOnboarding:2:105",
              ...
              "ioSpecification": null,
              "key": "contractorOnboarding",
              ...
              "version": 2
          }
      ]
    2. Query existing process instances that use the old version of the process definition:

      curl \
      --header "X-OpenIDM-Username: openidm-admin" \
      --header "X-OpenIDM-Password: openidm-admin" \
      --header "accept: application/json" \
      --header "Accept-API-Version: resource=1.0" \
      --request GET \
      "http://localhost:8080/openidm/workflow/processinstance?processDefinitionId=contractorOnboarding%3A1%3A5&_queryId=filtered-query"
      "result": [
          {
              "_id": "6",
              ...
              "processDefinitionId": "contractorOnboarding:1:5",
              "processDefinitionKey": "contractorOnboarding",
              "processDefinitionName": "Contractor onboarding process",
              "processDefinitionVersion": 1,
              "processInstanceId": "6",
              ...
          }
      ]
    3. Migrate the process instance to the new version of the process definition:

      curl \
      --header "X-OpenIDM-Username: openidm-admin" \
      --header "X-OpenIDM-Password: openidm-admin" \
      --header "accept: application/json" \
      --header "Accept-API-Version: resource=1.0" \
      --request POST \
      --data '{
        "processDefinitionId": "contractorOnboarding:2:105"
      }' \
      "http://localhost:8080/openidm/workflow/processinstance/6?_action=migrate"
Read a different version of :