Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-15258

DOCS: document process instance migration

    Details

    • Type: Story
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 7.0.0
    • Fix Version/s: 7.0.0
    • Component/s: documentation
    • Labels:
      None

      Description

      When customers upgrade to IDM 7, from any older version, they will need to update their BPMN 2.0 workflows (and associated resource files like forms). For example, their forms will need to use Vue.JS and updated Vue.JS libraries.

      Work done in OPENIDM-15229 fixed some issues for Process Instance migration. We need to document the steps outlined here.

      More specifically, after upgrading to IDM 7, they will need perform steps such as the following with our sample samples/provisioning-with-workflow:

      # start IDM
      openidm/startup.sh -p openidm/samples/provisioning-with-workflow
      
      # Query process definitions. In this case we can query by key.
      # After the upgrade, IDM provides an updated version of this BPMN.
      curl \
      --header "X-OpenIDM-Username: openidm-admin" \
      --header "X-OpenIDM-Password: openidm-admin" \
      -H "accept: application/json" \
      -H "Accept-API-Version: resource=1.0" \
      -X GET "http://localhost:8080/openidm/workflow/processdefinition?key=contractorOnboarding&_queryId=filtered-query" | jq
      
        "result": [
          {
            "_id": "contractorOnboarding:1:5",
      ...
            "key": "contractorOnboarding",
      ...
            "version": 1
          },
          {
            "_id": "contractorOnboarding:2:105",
      ...
            "ioSpecification": null,
            "key": "contractorOnboarding",
      ...
            "version": 2
          }
        ],
        
      
      # Query process instances that use the old version of the definition
      # You could alternatively query by key, as we did above.
      curl \
      --header "X-OpenIDM-Username: openidm-admin" \
      --header "X-OpenIDM-Password: openidm-admin" \
      -H "accept: application/json" \
      -H "Accept-API-Version: resource=1.0" \
      -X GET "http://localhost:8080/openidm/workflow/processinstance?processDefinitionId=contractorOnboarding%3A1%3A5&_queryId=filtered-query" | jq
      
        "result": [
          {
            "_id": "6",
      ...
            "processDefinitionId": "contractorOnboarding:1:5",
            "processDefinitionKey": "contractorOnboarding",
            "processDefinitionName": "Contractor onboarding process",
            "processDefinitionVersion": 1,
            "processInstanceId": "6",
      ...
          }
        ],
      
      # 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" \
      -H "accept: application/json" \
      -H "Accept-API-Version: resource=1.0" \
      -H "Content-Type: application/json" \
      -X POST "http://localhost:8080/openidm/workflow/processinstance/6?_action=migrate" \
      -d "{ \"processDefinitionId\": \"contractorOnboarding:2:105\" }" | jq
      

      ^ this is the easiest case, where the workflow is essentially the same structure, but with an upgraded form UI, for example

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Lana Lana Frost
                Reporter:
                travis.haagen Travis Haagen
                QA Assignee:
                Son Nguyen
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: