Hi!
I’m using flowable 6.7.2 and looks like there’s a problem migrating process instance from one callActivity to another in this version.
Let’s say, I have a simple model like this one:
After starting the process it goes to “call activity 1”. Inside both callActivities there’s just a single user task. So the main process will stop on “call activity 1” and wait for a user task completion.
Now let’s try to migrate process instance from “call activity 1” to “call activity 2” (same model version). Suggested behavior: active token will be moved from “call activity 1” to “call activity 2”, subprocess corresponding to “call activity 1” will be deleted and a new subprocess corresponding to “call activity 2” will be started.
Real behavior: no errors, but process instance has no changes after migration.
Here’s the code I’m using for migration:
String pid = "4505147";
String definitionId = "test_migration_bug:4:4505206";
ProcessInstanceMigrationBuilder migrationBuilder = processMigrationService.createProcessInstanceMigrationBuilder();
migrationBuilder.migrateToProcessDefinition(definitionId);
ActivityMigrationMapping currentMapping = ActivityMigrationMapping.createMappingFor("Activity_1ik53m0", "Activity_0jpkzf3");
migrationBuilder.addActivityMigrationMapping(currentMapping);
migrationBuilder.migrate(pid);
Previously I used flowable 6.5 and I’m pretty sure there was no such a bug.
Here’s a process model:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" targetNamespace="http://bpmn.io/schema/bpmn">
<process id="test_migration_bug" name="Тест миграции" isExecutable="true">
<startEvent id="StartEvent_1">
<outgoing>Flow_1x3nwgx</outgoing>
</startEvent>
<sequenceFlow id="Flow_1x3nwgx" sourceRef="StartEvent_1" targetRef="Gateway_15zt2ob" />
<endEvent id="Event_1efg82z">
<incoming>Flow_1atp8ps</incoming>
<incoming>Flow_0ti4wed</incoming>
</endEvent>
<sequenceFlow id="Flow_1atp8ps" sourceRef="Activity_1ik53m0" targetRef="Event_1efg82z" />
<exclusiveGateway id="Gateway_15zt2ob">
<incoming>Flow_1x3nwgx</incoming>
<outgoing>Flow_0lspzco</outgoing>
<outgoing>Flow_0j97xr8</outgoing>
</exclusiveGateway>
<sequenceFlow id="Flow_0lspzco" sourceRef="Gateway_15zt2ob" targetRef="Activity_1ik53m0">
<conditionExpression xsi:type="tFormalExpression">${true}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="Flow_0j97xr8" sourceRef="Gateway_15zt2ob" targetRef="Activity_0jpkzf3">
<conditionExpression xsi:type="tFormalExpression">${false}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="Flow_0ti4wed" sourceRef="Activity_0jpkzf3" targetRef="Event_1efg82z" />
<callActivity id="Activity_1ik53m0" name="call activity 1" calledElement="test_form">
<incoming>Flow_0lspzco</incoming>
<outgoing>Flow_1atp8ps</outgoing>
</callActivity>
<callActivity id="Activity_0jpkzf3" name="call activity 2" calledElement="test_form">
<incoming>Flow_0j97xr8</incoming>
<outgoing>Flow_0ti4wed</outgoing>
</callActivity>
</process>
<signal id="Signal_1u068dp" name="Signal_31vjese" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_migration_bug">
<bpmndi:BPMNEdge id="Flow_1x3nwgx_di" bpmnElement="Flow_1x3nwgx">
<omgdi:waypoint x="448" y="258" />
<omgdi:waypoint x="495" y="258" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1atp8ps_di" bpmnElement="Flow_1atp8ps">
<omgdi:waypoint x="705" y="250" />
<omgdi:waypoint x="862" y="250" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0lspzco_di" bpmnElement="Flow_0lspzco">
<omgdi:waypoint x="545" y="258" />
<omgdi:waypoint x="605" y="258" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0j97xr8_di" bpmnElement="Flow_0j97xr8">
<omgdi:waypoint x="520" y="283" />
<omgdi:waypoint x="520" y="360" />
<omgdi:waypoint x="605" y="360" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ti4wed_di" bpmnElement="Flow_0ti4wed">
<omgdi:waypoint x="705" y="360" />
<omgdi:waypoint x="880" y="360" />
<omgdi:waypoint x="880" y="268" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<omgdc:Bounds x="412" y="240" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1efg82z_di" bpmnElement="Event_1efg82z">
<omgdc:Bounds x="862" y="232" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_15zt2ob_di" bpmnElement="Gateway_15zt2ob" isMarkerVisible="true">
<omgdc:Bounds x="495" y="233" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_15aenqw_di" bpmnElement="Activity_1ik53m0">
<omgdc:Bounds x="605" y="210" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1t2fbup_di" bpmnElement="Activity_0jpkzf3">
<omgdc:Bounds x="605" y="320" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
Pino
May 3, 2023, 7:27am
3
I’m looking at Flowable reliability and support. I’m worried about finding bugs like this one that have no answers and is still open after a long time. Is there a rationale behind this?