-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepared workflow is created incomplete #3754
Comments
Workflow XML generated by migration tool<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:template="http://www.kitodo.org/template" id="sample-diagram"
targetNamespace="http://bpmn.io/schema/bpmn"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:process id="ChangeME" name="ChangeME" isExecutable="false"
template:outputName="ChangeME">
<bpmn2:startEvent id="StartEvent_1">
<bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:task id="Task_1" name="Titelaufnahme" template:editType="4" template:processingStatus="1" template:concurrent="true" template:typeMetadata="false" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="false" template:typeImagesWrite="false" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="StartEvent_1" targetRef="Task_1"/>
<bpmn2:task id="Task_2" name="Scannen" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="false" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="true" template:typeImagesWrite="true" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_2" sourceRef="Task_1" targetRef="Task_2"/>
<bpmn2:task id="Task_3" name="TIFs einspielen" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="true" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="true" template:typeImagesWrite="true" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_3" sourceRef="Task_2" targetRef="Task_3"/>
<bpmn2:task id="Task_4" name="Seitenkontrolle und-paginierung" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="true" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="true" template:typeImagesWrite="true" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="Task_3" targetRef="Task_4"/>
<bpmn2:task id="Task_5" name="Struktur- und Metadatenerfassung" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="true" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="true" template:typeImagesWrite="true" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_5" sourceRef="Task_4" targetRef="Task_5"/>
<bpmn2:task id="Task_6" name="Export Digitale Bibliothek" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="true" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="true" template:typeImagesWrite="true" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_6" sourceRef="Task_5" targetRef="Task_6"/>
<bpmn2:task id="Task_8" name="PubPharm Datensatz" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="false" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="false" template:typeImagesWrite="false" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_8" sourceRef="Task_7" targetRef="Task_8"/>
<bpmn2:task id="Task_9" name="Titelaufnahme O-Datensatz" template:editType="4" template:processingStatus="0" template:concurrent="true" template:typeMetadata="false" template:separateStructure="false" template:typeAutomatic="false" template:typeExportDMS="false" template:typeImagesRead="false" template:typeImagesWrite="false" template:typeAcceptClose="false" template:typeCloseVerify="false" template:batchStep="false" template:repeatOnCorrection="false" >
<bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_9" sourceRef="Task_8" targetRef="Task_9"/>
<bpmn2:endEvent id="EndEvent_1">
<bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:sequenceFlow id="SequenceFlow_9" sourceRef="Task_8" targetRef="EndEvent_1"/>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ChangeME">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_1" bpmnElement="StartEvent_1">
<dc:Bounds x="412" y="240" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_1_di" bpmnElement="SequenceFlow_1">
<di:waypoint x="448" y="258"/>
<di:waypoint x="498" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="473" y="237" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_1_di" bpmnElement="Task_1">
<dc:Bounds x="498" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_2_di" bpmnElement="SequenceFlow_2">
<di:waypoint x="598" y="258"/>
<di:waypoint x="648" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="623" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_2_di" bpmnElement="Task_2">
<dc:Bounds x="648" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_3_di" bpmnElement="SequenceFlow_3">
<di:waypoint x="748" y="258"/>
<di:waypoint x="798" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="773" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_3_di" bpmnElement="Task_3">
<dc:Bounds x="798" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_4_di" bpmnElement="SequenceFlow_4">
<di:waypoint x="898" y="258"/>
<di:waypoint x="948" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="923" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_4_di" bpmnElement="Task_4">
<dc:Bounds x="948" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_5_di" bpmnElement="SequenceFlow_5">
<di:waypoint x="1048" y="258"/>
<di:waypoint x="1098" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1073" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_5_di" bpmnElement="Task_5">
<dc:Bounds x="1098" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_6_di" bpmnElement="SequenceFlow_6">
<di:waypoint x="1198" y="258"/>
<di:waypoint x="1248" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1223" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_6_di" bpmnElement="Task_6">
<dc:Bounds x="1248" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_7_di" bpmnElement="SequenceFlow_7">
<di:waypoint x="1348" y="258"/>
<di:waypoint x="1398" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1373" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_8_di" bpmnElement="Task_8">
<dc:Bounds x="1398" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_9_di" bpmnElement="SequenceFlow_9">
<di:waypoint x="1498" y="258"/>
<di:waypoint x="1548" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1523" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Task_9_di" bpmnElement="Task_9">
<dc:Bounds x="1548" y="218" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_10_di" bpmnElement="SequenceFlow_10">
<di:waypoint x="1648" y="258"/>
<di:waypoint x="1698" y="258"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1673" y="247" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
<dc:Bounds x="1698" y="240" width="36" height="36"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1716" y="280" width="0" height="12"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions> |
I opened the Workflow XML in the online BPMN.io Editor trial version (https://demo.bpmn.io) and got a bunch of error messages.
The first issue seems to be a duplicate use of the same ID
The other issues mean that an element is referenced that does not exist or are incomplete. We go from I hope that helps. :) |
Was problem created by some external migration code or by Kitodo? |
I see why the last sequence is a duplicate. There are two distinct methods to generate the For kitodo-production/Kitodo/src/main/java/org/kitodo/production/migration/TasksToWorkflowConverter.java Line 76 in 6961876
kitodo-production/Kitodo/src/main/java/org/kitodo/production/migration/XmlGenerator.java Line 39 in 6961876
But for the kitodo-production/Kitodo/src/main/java/org/kitodo/production/migration/XmlGenerator.java Line 111 in 6961876
Because these values are independent we end up with the same number by accident. Thereby creating a duplicate In the screenshot and the XML we can see that there are eight tasks. The
But somehow we are missing I think it makes sense to sort the tasks by My suggestion would be to not rely on this attribute to get the kitodo-production/Kitodo/src/main/java/org/kitodo/production/migration/TasksToWorkflowConverter.java Line 74 in 6961876
Apparently, the When the same value is also passed to generate the |
Can someone explain why there's a gap with the Is it because the workflow was modified and |
Sounds like the good solution 😃 |
Not yet. In the 2.x processes where this comes from, the number is even strictly ascending: In database: Basically, the number does not have to be continuous. It can also be interrupted or a number appears more than once if two steps are parallel. This is completely legal in version 2 and it should work, too. But that's not even the case here. |
Well… interesting where the gap comes from when the values are sequential but why that happens specifically for this example should not bother us further.
That's all we need to know at this point. If it does not have to be continuous and there could be duplicates we cannot use the value to generate For both cases we run into problems with duplicate |
I should take that back! 🤔 Are we looking at the same workflow that was migrated? The tasks and their order do not match at all! What is happening? 👀 Migrated XML:
The workflow has Tasks that are not in the database ( Are we just looking at two independent workflows? Or is the migration broken? |
Obviously I got the wrong tasks 🤦 |
Phew… Crisis averted! |
The workflow was created from the virtual machine that was prepared for the migration workshop. There are missing some transitions here. The missing transitions were drawn in by hand:
The text was updated successfully, but these errors were encountered: