Migration plan for process definition with parallel gateway in separate processe

Hy,

We have the following situation:
We modeled a process with a parallel gateway. After a while we realized that this parallel process in real is independent. So we model two new processes and now we would like to create a migration from the former parallel process. For testing purpose I have modeled the following. (In real the process is more complex.)

Old process definition:


New in sperate process definitions:
Process A:
image
Process B:
image
Is there a chance to create a migration from old process instances to the new one?
My Problem is, that migration plan only allows one “targetProcessDefinitionId”. Even if I would migrate only to on process (e.g. Process A), execution of migration fails because activity B has no target: B:64938b59-0e65-11ed-96d2-46ad0f5e57a2':\n\t\tThere is no migration instruction for this instance's activity\n

Hi @rich0rd,

you have to do two migrations. For all process instances waiting a task “Do A”, migrate to the first new process instance.

Then select all process instances that are waiting at “Do B” and migrate them.

Hope this helps, Ingo

Hy @Ingo_Richtsmeier,

many thanks for your reply.
Can you explain how to select the “process instance waiting a task “Do A”?
Currently my migration plan looks like:

{
  "migrationPlan": {
    {
    "sourceProcessDefinitionId": "parallel_test:1:d481a171-2de1-11ed-b94e-6ade9eaa457f",
    "targetProcessDefinitionId": "new_a_process:1:bc5caf9c-35a5-11ed-b94e-6ade9eaa457f",
    "instructions": [
        {
            "sourceActivityIds": [
                "do_a"
            ],
            "targetActivityIds": [
                "do_a"
            ],
            "updateEventTrigger": false
        }
    ]
  },
  "processInstanceQuery": {
    "processDefinitionId": "parallel_test:1:d481a171-2de1-11ed-b94e-6ade9eaa457f",
    "activityIdIn": ["do_a"]
  },
  "skipCustomListeners": true
}

If I execute this migration plan, I get the error that no migration instruction for the activity in “Do B” is available.

How can I specify in my migration plan only to migrate the activity in “Do A”?

Many thanks in advance
Richard

Hi @rich0rd,

After double checking I have to admit that you cannot migrate a single process instance into two process instances. Which is caused by keeping all instance IDs unchanged during migration.

But maybe you can stop the worker for Task A (as it is a service task with implementation external) and fulfill only the branch with “Do B” of the parallel process. Once one of the token reached the joining parallel gateway, you can cancel this token with process instance modification. Then you can migrate the remaining parallel process instance to the target process with task “Do A”.

Hope this helps, Ingo