Files
Projektwissen/.agents/skills/sn-bpmn/beispiele/beispiel_lanes.bpmn
T
DanielandClaude Opus 5.5 96225b5e02 Rücksprungkanten an allen Elementen vorbeiführen (#12)
- Mit Lanes: ruecksprung_points() fährt senkrecht nur in den Gängen
  zwischen den Spalten (rechts der Quelle, links des Ziels) und waagrecht
  knapp unter Quelle bzw. Ziel und in einem Kanal am Poolboden. Das
  Kanalband wird nach der Platzierung an die letzte Lane angehängt: Die
  Elemente bleiben, wo sie sind, die Kante bleibt im eigenen Pool, jede
  Rücksprungkante hat eine eigene Kanalhöhe.
- Ohne Lanes: Kanal seitlich an allen Elementen zwischen Quelle und Ziel
  vorbei (parallele Zweige stehen versetzt). Steht ein Nachbar in der
  Zeile im Weg, unten hinaus bzw. oben hinein über die Lücke zwischen den
  Zeilen (zeile(), zeile_frei()).
- beispiel_lanes: Kante S4->S2 läuft nicht mehr durch S5, Pool um das
  Kanalband höher, externer Pool entsprechend tiefer. beispiel_prozess:
  Kanal bei x 50 statt 20. Referenzmodell unverändert.
- xfail für #12 entfernt; fünf neue Tests in test_md_to_bpmn.py.
- Belastungstest (126 Rücksprung-Varianten, mit/ohne Lanes): Kreuzungen
  durch Rücksprungkanten vorher in 31 Fällen, jetzt in keinem.
- Tests: python -m pytest -q -> 102 bestanden, 2 xfail (#13).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 13:13:37 +02:00

181 lines
8.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="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" id="Definitions_1" targetNamespace="http://picture-tool.local/bpmn" exporter="md_to_bpmn.py">
<bpmn:collaboration id="Collaboration_1">
<bpmn:participant id="Participant_1" name="Antrag prüfen mit Zuständigkeiten (Beispiel)" processRef="Process_1"/>
<bpmn:participant id="Participant_Ext_1" name="Antragsteller"/>
<bpmn:messageFlow id="MsgFlow_1" sourceRef="Participant_Ext_1" targetRef="StartEvent_S1"/>
<bpmn:messageFlow id="MsgFlow_2" sourceRef="SendTask_S4" targetRef="Participant_Ext_1"/>
<bpmn:messageFlow id="MsgFlow_3" sourceRef="SendTask_S7" targetRef="Participant_Ext_1"/>
</bpmn:collaboration>
<bpmn:process id="Process_1" name="Antrag prüfen mit Zuständigkeiten (Beispiel)" isExecutable="false">
<bpmn:laneSet id="LaneSet_1">
<bpmn:lane id="Lane_1" name="Posteingang">
<bpmn:flowNodeRef>StartEvent_S1</bpmn:flowNodeRef>
<bpmn:flowNodeRef>SendTask_S7</bpmn:flowNodeRef>
<bpmn:flowNodeRef>EndEvent_S8</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_2" name="Sachbearbeitung">
<bpmn:flowNodeRef>Task_S2</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S3</bpmn:flowNodeRef>
<bpmn:flowNodeRef>SendTask_S4</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S5</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_3" name="Teamleitung">
<bpmn:flowNodeRef>Task_S6</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="StartEvent_S1" name="Antrag geht ein">
<bpmn:outgoing>Flow_1</bpmn:outgoing>
<bpmn:messageEventDefinition id="StartEvent_S1_ed"/>
</bpmn:startEvent>
<bpmn:task id="Task_S2" name="Antrag erfassen">
<bpmn:incoming>Flow_1</bpmn:incoming>
<bpmn:incoming>Flow_5</bpmn:incoming>
<bpmn:outgoing>Flow_2</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S3" name="Antrag vollständig?">
<bpmn:incoming>Flow_2</bpmn:incoming>
<bpmn:outgoing>Flow_3</bpmn:outgoing>
<bpmn:outgoing>Flow_4</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sendTask id="SendTask_S4" name="Unterlagen nachfordern">
<bpmn:incoming>Flow_4</bpmn:incoming>
<bpmn:outgoing>Flow_5</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:task id="Task_S5" name="Entscheidung vorbereiten">
<bpmn:incoming>Flow_3</bpmn:incoming>
<bpmn:outgoing>Flow_6</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S6" name="Entscheidung zeichnen">
<bpmn:incoming>Flow_6</bpmn:incoming>
<bpmn:outgoing>Flow_7</bpmn:outgoing>
</bpmn:task>
<bpmn:sendTask id="SendTask_S7" name="Bescheid versenden">
<bpmn:incoming>Flow_7</bpmn:incoming>
<bpmn:outgoing>Flow_8</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:endEvent id="EndEvent_S8" name="Antrag entschieden">
<bpmn:incoming>Flow_8</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_S1" targetRef="Task_S2"/>
<bpmn:sequenceFlow id="Flow_2" sourceRef="Task_S2" targetRef="Gateway_S3"/>
<bpmn:sequenceFlow id="Flow_3" sourceRef="Gateway_S3" targetRef="Task_S5" name="Ja"/>
<bpmn:sequenceFlow id="Flow_4" sourceRef="Gateway_S3" targetRef="SendTask_S4" name="Nein"/>
<bpmn:sequenceFlow id="Flow_5" sourceRef="SendTask_S4" targetRef="Task_S2"/>
<bpmn:sequenceFlow id="Flow_6" sourceRef="Task_S5" targetRef="Task_S6"/>
<bpmn:sequenceFlow id="Flow_7" sourceRef="Task_S6" targetRef="SendTask_S7"/>
<bpmn:sequenceFlow id="Flow_8" sourceRef="SendTask_S7" targetRef="EndEvent_S8"/>
</bpmn:process>
<bpmndi:BPMNDiagram id="Diagram_1">
<bpmndi:BPMNPlane id="Plane_1" bpmnElement="Collaboration_1">
<bpmndi:BPMNShape id="Participant_1_di" bpmnElement="Participant_1" isHorizontal="true">
<dc:Bounds x="0" y="0" width="1366" height="750"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1_di" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds x="0" y="0" width="1366" height="190"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_2_di" bpmnElement="Lane_2" isHorizontal="true">
<dc:Bounds x="0" y="190" width="1366" height="340"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_3_di" bpmnElement="Lane_3" isHorizontal="true">
<dc:Bounds x="0" y="530" width="1366" height="220"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_Ext_1_di" bpmnElement="Participant_Ext_1" isHorizontal="true">
<dc:Bounds x="0" y="810" width="1366" height="100"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="StartEvent_S1_di" bpmnElement="StartEvent_S1">
<dc:Bounds x="110" y="77" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S2_di" bpmnElement="Task_S2">
<dc:Bounds x="300" y="320" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S3_di" bpmnElement="Gateway_S3" isMarkerVisible="true">
<dc:Bounds x="490" y="335" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SendTask_S4_di" bpmnElement="SendTask_S4">
<dc:Bounds x="680" y="235" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S5_di" bpmnElement="Task_S5">
<dc:Bounds x="680" y="405" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S6_di" bpmnElement="Task_S6">
<dc:Bounds x="870" y="585" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SendTask_S7_di" bpmnElement="SendTask_S7">
<dc:Bounds x="1060" y="55" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_S8_di" bpmnElement="EndEvent_S8">
<dc:Bounds x="1250" y="77" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
<di:waypoint x="146" y="95"/>
<di:waypoint x="223" y="95"/>
<di:waypoint x="223" y="360"/>
<di:waypoint x="300" y="360"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
<di:waypoint x="400" y="360"/>
<di:waypoint x="400" y="310"/>
<di:waypoint x="515" y="310"/>
<di:waypoint x="515" y="335"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3">
<di:waypoint x="515" y="385"/>
<di:waypoint x="515" y="410"/>
<di:waypoint x="680" y="410"/>
<di:waypoint x="680" y="445"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="523" y="389.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4">
<di:waypoint x="540" y="360"/>
<di:waypoint x="565" y="360"/>
<di:waypoint x="565" y="275"/>
<di:waypoint x="680" y="275"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="537.5" y="340" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_5_di" bpmnElement="Flow_5">
<di:waypoint x="713.333" y="315"/>
<di:waypoint x="713.333" y="335"/>
<di:waypoint x="825" y="335"/>
<di:waypoint x="825" y="735"/>
<di:waypoint x="255" y="735"/>
<di:waypoint x="255" y="420"/>
<di:waypoint x="350" y="420"/>
<di:waypoint x="350" y="400"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_6_di" bpmnElement="Flow_6">
<di:waypoint x="780" y="445"/>
<di:waypoint x="825" y="445"/>
<di:waypoint x="825" y="625"/>
<di:waypoint x="870" y="625"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_7_di" bpmnElement="Flow_7">
<di:waypoint x="970" y="625"/>
<di:waypoint x="1015" y="625"/>
<di:waypoint x="1015" y="95"/>
<di:waypoint x="1060" y="95"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_8_di" bpmnElement="Flow_8">
<di:waypoint x="1160" y="95"/>
<di:waypoint x="1250" y="95"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="MsgFlow_1_di" bpmnElement="MsgFlow_1">
<di:waypoint x="341.5" y="810"/>
<di:waypoint x="128" y="113"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="MsgFlow_2_di" bpmnElement="MsgFlow_2">
<di:waypoint x="746.667" y="315"/>
<di:waypoint x="683" y="810"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="MsgFlow_3_di" bpmnElement="MsgFlow_3">
<di:waypoint x="1110" y="135"/>
<di:waypoint x="1024.5" y="810"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>