Referenzmodell Gewannenfestlegung für Konvertertests (#7) #10

Merged
Daniel merged 1 commits from feature/7-referenzmodell-gewannenfestlegung into main 2026-09-25 05:06:35 +00:00
7 changed files with 884 additions and 0 deletions
+7
View File
@@ -202,6 +202,13 @@ In `beispiele/` neben dieser Datei, reine Syntaxbeispiele (fachlich nicht geprü
- Ohne Lanes: `beispiele/beispiel_prozess.md` / `beispiele/beispiel_prozess.bpmn`
- Mit Lanes und externem Beteiligten: `beispiele/beispiel_lanes.md` / `beispiele/beispiel_lanes.bpmn`
Referenzmodell (Test) – ein echter, größerer Prozess, gegen den Änderungen am
Konverter geprüft werden (Byte-Vergleich plus Strukturtests in
`tests/test_referenzmodelle.py`):
- `beispiele/referenz_gewannenfestlegung.md` / `.bpmn` – 4 Lanes, externer Pool,
14 Gateways, verschachtelte Varianten; fachlich nicht abgenommen
Ein Test hält die `.bpmn` der Beispiele aktuell; nach einer Änderung am
Konverter `python scripts/pruefe_prozesse.py --erzeugen` ausführen.
@@ -0,0 +1,716 @@
<?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="Gewannenfestlegung" processRef="Process_1"/>
<bpmn:participant id="Participant_Ext_1" name="Bau- und Unterhaltungslastträger"/>
<bpmn:messageFlow id="MsgFlow_1" sourceRef="Task_S4" targetRef="Participant_Ext_1"/>
<bpmn:messageFlow id="MsgFlow_2" sourceRef="Task_S16" targetRef="Participant_Ext_1"/>
</bpmn:collaboration>
<bpmn:process id="Process_1" name="Gewannenfestlegung" isExecutable="false">
<bpmn:laneSet id="LaneSet_1">
<bpmn:lane id="Lane_1" name="Flurneuordnungsbehörde">
<bpmn:flowNodeRef>StartEvent_S1</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S2</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S3</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S4</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S5</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S6</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S7</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S9</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S10</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S11</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S12</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S13</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S14</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S15</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S16</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S17</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S18</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S20</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S22</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S23</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S25</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S26</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S27</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S40</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S41</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S42</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S43</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S44</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_S50</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S51</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S52</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S53</bpmn:flowNodeRef>
<bpmn:flowNodeRef>EndEvent_S54</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_2" name="Vorstand TG">
<bpmn:flowNodeRef>Task_S8</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_3" name="Beteiligte/Dienstleister">
<bpmn:flowNodeRef>Task_S19</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_4" name="ÖbVI">
<bpmn:flowNodeRef>Task_S21</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_S24</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="StartEvent_S1" name="Gewannenfestlegung beginnt">
<bpmn:outgoing>Flow_1</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:task id="Task_S2" name="Gewannenkonzept erarbeiten">
<bpmn:incoming>Flow_1</bpmn:incoming>
<bpmn:outgoing>Flow_2</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S3" name="Verwaltungsgrenzen prüfen">
<bpmn:incoming>Flow_2</bpmn:incoming>
<bpmn:outgoing>Flow_3</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S4" name="Zeitplan abstimmen">
<bpmn:incoming>Flow_3</bpmn:incoming>
<bpmn:outgoing>Flow_4</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S5" name="Eigene Messung oder Vergabe klären">
<bpmn:incoming>Flow_4</bpmn:incoming>
<bpmn:outgoing>Flow_5</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S6" name="Sofort abmarken?">
<bpmn:incoming>Flow_5</bpmn:incoming>
<bpmn:outgoing>Flow_6</bpmn:outgoing>
<bpmn:outgoing>Flow_7</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S7" name="Leitungspläne einholen">
<bpmn:incoming>Flow_6</bpmn:incoming>
<bpmn:outgoing>Flow_8</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S8" name="Art der Abmarkung beschließen">
<bpmn:incoming>Flow_8</bpmn:incoming>
<bpmn:outgoing>Flow_9</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S9" name="Abmarkungsmaterial beschaffen">
<bpmn:incoming>Flow_9</bpmn:incoming>
<bpmn:outgoing>Flow_10</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S10" name="Vorarbeiten abgeschlossen">
<bpmn:incoming>Flow_7</bpmn:incoming>
<bpmn:incoming>Flow_10</bpmn:incoming>
<bpmn:outgoing>Flow_11</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S11" name="Grenzen in der Ortslage verhandeln">
<bpmn:incoming>Flow_11</bpmn:incoming>
<bpmn:outgoing>Flow_12</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S12" name="Vorausbau erfolgt?">
<bpmn:incoming>Flow_12</bpmn:incoming>
<bpmn:outgoing>Flow_13</bpmn:outgoing>
<bpmn:outgoing>Flow_14</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_S13" name="Wald eigene Gewanne?">
<bpmn:incoming>Flow_13</bpmn:incoming>
<bpmn:outgoing>Flow_15</bpmn:outgoing>
<bpmn:outgoing>Flow_16</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S14" name="Waldgrenzen verhandeln">
<bpmn:incoming>Flow_15</bpmn:incoming>
<bpmn:outgoing>Flow_17</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S15" name="Waldfrage erledigt">
<bpmn:incoming>Flow_16</bpmn:incoming>
<bpmn:incoming>Flow_17</bpmn:incoming>
<bpmn:outgoing>Flow_18</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S16" name="Anlagengrenzen im Ortstermin festlegen und abpflocken">
<bpmn:incoming>Flow_18</bpmn:incoming>
<bpmn:outgoing>Flow_19</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S17" name="Jetzt abmarken?">
<bpmn:incoming>Flow_19</bpmn:incoming>
<bpmn:outgoing>Flow_20</bpmn:outgoing>
<bpmn:outgoing>Flow_21</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_S18" name="Wer markt ab?">
<bpmn:incoming>Flow_20</bpmn:incoming>
<bpmn:outgoing>Flow_22</bpmn:outgoing>
<bpmn:outgoing>Flow_23</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S19" name="Grenzpunkte anhand der Pflöcke abmarken">
<bpmn:incoming>Flow_22</bpmn:incoming>
<bpmn:outgoing>Flow_24</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S20" name="Aufmessung veranlassen">
<bpmn:incoming>Flow_24</bpmn:incoming>
<bpmn:outgoing>Flow_25</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S21" name="Abmarken und aufmessen">
<bpmn:incoming>Flow_23</bpmn:incoming>
<bpmn:outgoing>Flow_26</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S22" name="Abmarkung erledigt">
<bpmn:incoming>Flow_25</bpmn:incoming>
<bpmn:incoming>Flow_26</bpmn:incoming>
<bpmn:outgoing>Flow_27</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_S23" name="Wer misst auf?">
<bpmn:incoming>Flow_21</bpmn:incoming>
<bpmn:outgoing>Flow_28</bpmn:outgoing>
<bpmn:outgoing>Flow_29</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S24" name="Aufmessen, Abmarkung bis zur vorläufigen Besitzeinweisung">
<bpmn:incoming>Flow_28</bpmn:incoming>
<bpmn:outgoing>Flow_30</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S25" name="Im Ortstermin aufmessen">
<bpmn:incoming>Flow_29</bpmn:incoming>
<bpmn:outgoing>Flow_31</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S26" name="Aufmessung erledigt">
<bpmn:incoming>Flow_30</bpmn:incoming>
<bpmn:incoming>Flow_31</bpmn:incoming>
<bpmn:outgoing>Flow_32</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_S27" name="Vermessung erledigt">
<bpmn:incoming>Flow_27</bpmn:incoming>
<bpmn:incoming>Flow_32</bpmn:incoming>
<bpmn:outgoing>Flow_33</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S40" name="Gewannen nach Planungsunterlagen projektieren">
<bpmn:incoming>Flow_14</bpmn:incoming>
<bpmn:outgoing>Flow_34</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S41" name="Gewannen vor Bautätigkeit abstecken">
<bpmn:incoming>Flow_34</bpmn:incoming>
<bpmn:outgoing>Flow_35</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S42" name="Vor Baumaßnahme abmarken?">
<bpmn:incoming>Flow_35</bpmn:incoming>
<bpmn:outgoing>Flow_36</bpmn:outgoing>
<bpmn:outgoing>Flow_37</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S43" name="Vor Baumaßnahme abmarken">
<bpmn:incoming>Flow_37</bpmn:incoming>
<bpmn:outgoing>Flow_38</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="Gateway_S44" name="Absteckung erledigt">
<bpmn:incoming>Flow_36</bpmn:incoming>
<bpmn:incoming>Flow_38</bpmn:incoming>
<bpmn:outgoing>Flow_39</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_S50" name="Örtliche Arbeiten abgeschlossen">
<bpmn:incoming>Flow_33</bpmn:incoming>
<bpmn:incoming>Flow_39</bpmn:incoming>
<bpmn:outgoing>Flow_40</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:task id="Task_S51" name="Messdaten auswerten">
<bpmn:incoming>Flow_40</bpmn:incoming>
<bpmn:outgoing>Flow_41</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S52" name="Punktdaten einlesen, Punktattribute vergeben">
<bpmn:incoming>Flow_41</bpmn:incoming>
<bpmn:outgoing>Flow_42</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_S53" name="Gewannen im NoBIS bilden und prüfen">
<bpmn:incoming>Flow_42</bpmn:incoming>
<bpmn:outgoing>Flow_43</bpmn:outgoing>
</bpmn:task>
<bpmn:endEvent id="EndEvent_S54" name="Gewannen festgelegt">
<bpmn:incoming>Flow_43</bpmn:incoming>
</bpmn:endEvent>
<bpmn:textAnnotation id="TextAnnotation_H0">
<bpmn:text>Test – Referenzentwurf für Konvertertests, fachlich nicht abgenommen</bpmn:text>
</bpmn:textAnnotation>
<bpmn:textAnnotation id="TextAnnotation_H3">
<bpmn:text>Wald und Ortslage abwägen – Waldgrenzen zu verhandeln ist grundsätzlich zu empfehlen, eine eigene Waldgewanne aber nicht immer zweckmäßig (z. B. Hufenstruktur – ohne Gewannegrenze zwischen Acker und Wald lassen sich Flurstücke leichter verschmelzen). Eine Gesamtgewanne für die Ortslage erleichtert Änderungen im Ort, macht Änderungen der Ortslagenabgrenzung (z. B. Gartenerweiterung in die Feldlage) aber aufwendig. Die bevorzugte Variante kann je Verfahren abweichen.</bpmn:text>
</bpmn:textAnnotation>
<bpmn:textAnnotation id="TextAnnotation_H1">
<bpmn:text>Variante 3: Bautätigkeit muss zwingend innerhalb der abgesteckten Grenzen erfolgen; bei Abmarkung vor der Baumaßnahme droht deren Verlust.</bpmn:text>
</bpmn:textAnnotation>
<bpmn:textAnnotation id="TextAnnotation_H2">
<bpmn:text>Nummerierung systematisch (gemeinschaftliche Anlagen Nr. X4XX, Gemarkung, Orts-/Feldlage, öffentliche Anlagen) und über die Verfahrenslaufzeit stabil. Nur so viele Gewannen wie nötig.</bpmn:text>
</bpmn:textAnnotation>
<bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_S1" targetRef="Task_S2"/>
<bpmn:sequenceFlow id="Flow_2" sourceRef="Task_S2" targetRef="Task_S3"/>
<bpmn:sequenceFlow id="Flow_3" sourceRef="Task_S3" targetRef="Task_S4"/>
<bpmn:sequenceFlow id="Flow_4" sourceRef="Task_S4" targetRef="Task_S5"/>
<bpmn:sequenceFlow id="Flow_5" sourceRef="Task_S5" targetRef="Gateway_S6"/>
<bpmn:sequenceFlow id="Flow_6" sourceRef="Gateway_S6" targetRef="Task_S7" name="Ja"/>
<bpmn:sequenceFlow id="Flow_7" sourceRef="Gateway_S6" targetRef="Gateway_S10" name="Nein"/>
<bpmn:sequenceFlow id="Flow_8" sourceRef="Task_S7" targetRef="Task_S8"/>
<bpmn:sequenceFlow id="Flow_9" sourceRef="Task_S8" targetRef="Task_S9"/>
<bpmn:sequenceFlow id="Flow_10" sourceRef="Task_S9" targetRef="Gateway_S10"/>
<bpmn:sequenceFlow id="Flow_11" sourceRef="Gateway_S10" targetRef="Task_S11"/>
<bpmn:sequenceFlow id="Flow_12" sourceRef="Task_S11" targetRef="Gateway_S12"/>
<bpmn:sequenceFlow id="Flow_13" sourceRef="Gateway_S12" targetRef="Gateway_S13" name="Ja"/>
<bpmn:sequenceFlow id="Flow_14" sourceRef="Gateway_S12" targetRef="Task_S40" name="Nein"/>
<bpmn:sequenceFlow id="Flow_15" sourceRef="Gateway_S13" targetRef="Task_S14" name="Ja"/>
<bpmn:sequenceFlow id="Flow_16" sourceRef="Gateway_S13" targetRef="Gateway_S15" name="Nein"/>
<bpmn:sequenceFlow id="Flow_17" sourceRef="Task_S14" targetRef="Gateway_S15"/>
<bpmn:sequenceFlow id="Flow_18" sourceRef="Gateway_S15" targetRef="Task_S16"/>
<bpmn:sequenceFlow id="Flow_19" sourceRef="Task_S16" targetRef="Gateway_S17"/>
<bpmn:sequenceFlow id="Flow_20" sourceRef="Gateway_S17" targetRef="Gateway_S18" name="Ja"/>
<bpmn:sequenceFlow id="Flow_21" sourceRef="Gateway_S17" targetRef="Gateway_S23" name="Nein"/>
<bpmn:sequenceFlow id="Flow_22" sourceRef="Gateway_S18" targetRef="Task_S19" name="Beteiligte/Dienstleister"/>
<bpmn:sequenceFlow id="Flow_23" sourceRef="Gateway_S18" targetRef="Task_S21" name="ÖbVI"/>
<bpmn:sequenceFlow id="Flow_24" sourceRef="Task_S19" targetRef="Task_S20"/>
<bpmn:sequenceFlow id="Flow_25" sourceRef="Task_S20" targetRef="Gateway_S22"/>
<bpmn:sequenceFlow id="Flow_26" sourceRef="Task_S21" targetRef="Gateway_S22"/>
<bpmn:sequenceFlow id="Flow_27" sourceRef="Gateway_S22" targetRef="Gateway_S27"/>
<bpmn:sequenceFlow id="Flow_28" sourceRef="Gateway_S23" targetRef="Task_S24" name="ÖbVI"/>
<bpmn:sequenceFlow id="Flow_29" sourceRef="Gateway_S23" targetRef="Task_S25" name="Flurneuordnungsbehörde"/>
<bpmn:sequenceFlow id="Flow_30" sourceRef="Task_S24" targetRef="Gateway_S26"/>
<bpmn:sequenceFlow id="Flow_31" sourceRef="Task_S25" targetRef="Gateway_S26"/>
<bpmn:sequenceFlow id="Flow_32" sourceRef="Gateway_S26" targetRef="Gateway_S27"/>
<bpmn:sequenceFlow id="Flow_33" sourceRef="Gateway_S27" targetRef="Gateway_S50"/>
<bpmn:sequenceFlow id="Flow_34" sourceRef="Task_S40" targetRef="Task_S41"/>
<bpmn:sequenceFlow id="Flow_35" sourceRef="Task_S41" targetRef="Gateway_S42"/>
<bpmn:sequenceFlow id="Flow_36" sourceRef="Gateway_S42" targetRef="Gateway_S44" name="Nein (empfohlen)"/>
<bpmn:sequenceFlow id="Flow_37" sourceRef="Gateway_S42" targetRef="Task_S43" name="Ja"/>
<bpmn:sequenceFlow id="Flow_38" sourceRef="Task_S43" targetRef="Gateway_S44"/>
<bpmn:sequenceFlow id="Flow_39" sourceRef="Gateway_S44" targetRef="Gateway_S50"/>
<bpmn:sequenceFlow id="Flow_40" sourceRef="Gateway_S50" targetRef="Task_S51"/>
<bpmn:sequenceFlow id="Flow_41" sourceRef="Task_S51" targetRef="Task_S52"/>
<bpmn:sequenceFlow id="Flow_42" sourceRef="Task_S52" targetRef="Task_S53"/>
<bpmn:sequenceFlow id="Flow_43" sourceRef="Task_S53" targetRef="EndEvent_S54"/>
</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="5480" height="1060"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1_di" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds x="0" y="0" width="5480" height="340"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_2_di" bpmnElement="Lane_2" isHorizontal="true">
<dc:Bounds x="0" y="340" width="5480" height="190"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_3_di" bpmnElement="Lane_3" isHorizontal="true">
<dc:Bounds x="0" y="530" width="5480" height="190"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_4_di" bpmnElement="Lane_4" isHorizontal="true">
<dc:Bounds x="0" y="720" width="5480" height="340"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_Ext_1_di" bpmnElement="Participant_Ext_1" isHorizontal="true">
<dc:Bounds x="0" y="1120" width="5480" height="100"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="StartEvent_S1_di" bpmnElement="StartEvent_S1">
<dc:Bounds x="110" y="152" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S2_di" bpmnElement="Task_S2">
<dc:Bounds x="300" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S3_di" bpmnElement="Task_S3">
<dc:Bounds x="490" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S4_di" bpmnElement="Task_S4">
<dc:Bounds x="680" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S5_di" bpmnElement="Task_S5">
<dc:Bounds x="870" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S6_di" bpmnElement="Gateway_S6">
<dc:Bounds x="1060" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S7_di" bpmnElement="Task_S7">
<dc:Bounds x="1250" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S8_di" bpmnElement="Task_S8">
<dc:Bounds x="1440" y="395" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S9_di" bpmnElement="Task_S9">
<dc:Bounds x="1630" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S10_di" bpmnElement="Gateway_S10">
<dc:Bounds x="1820" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S11_di" bpmnElement="Task_S11">
<dc:Bounds x="2010" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S12_di" bpmnElement="Gateway_S12">
<dc:Bounds x="2200" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S13_di" bpmnElement="Gateway_S13">
<dc:Bounds x="2390" y="60" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S14_di" bpmnElement="Task_S14">
<dc:Bounds x="2580" y="45" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S15_di" bpmnElement="Gateway_S15">
<dc:Bounds x="2770" y="60" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S16_di" bpmnElement="Task_S16">
<dc:Bounds x="2960" y="45" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S17_di" bpmnElement="Gateway_S17">
<dc:Bounds x="3150" y="60" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S18_di" bpmnElement="Gateway_S18">
<dc:Bounds x="3340" y="60" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S19_di" bpmnElement="Task_S19">
<dc:Bounds x="3530" y="585" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S20_di" bpmnElement="Task_S20">
<dc:Bounds x="3720" y="45" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S21_di" bpmnElement="Task_S21">
<dc:Bounds x="3530" y="765" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S22_di" bpmnElement="Gateway_S22">
<dc:Bounds x="3910" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S23_di" bpmnElement="Gateway_S23">
<dc:Bounds x="3340" y="230" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S24_di" bpmnElement="Task_S24">
<dc:Bounds x="3530" y="935" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S25_di" bpmnElement="Task_S25">
<dc:Bounds x="3530" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S26_di" bpmnElement="Gateway_S26">
<dc:Bounds x="3720" y="230" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S27_di" bpmnElement="Gateway_S27">
<dc:Bounds x="4100" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S40_di" bpmnElement="Task_S40">
<dc:Bounds x="2390" y="215" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S41_di" bpmnElement="Task_S41">
<dc:Bounds x="2580" y="215" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S42_di" bpmnElement="Gateway_S42">
<dc:Bounds x="2770" y="230" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S43_di" bpmnElement="Task_S43">
<dc:Bounds x="2960" y="215" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S44_di" bpmnElement="Gateway_S44">
<dc:Bounds x="3150" y="230" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_S50_di" bpmnElement="Gateway_S50">
<dc:Bounds x="4290" y="145" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S51_di" bpmnElement="Task_S51">
<dc:Bounds x="4480" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S52_di" bpmnElement="Task_S52">
<dc:Bounds x="4670" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_S53_di" bpmnElement="Task_S53">
<dc:Bounds x="4860" y="130" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_S54_di" bpmnElement="EndEvent_S54">
<dc:Bounds x="5050" y="152" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_H0_di" bpmnElement="TextAnnotation_H0">
<dc:Bounds x="5240" y="40" width="160" height="60"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_H3_di" bpmnElement="TextAnnotation_H3">
<dc:Bounds x="5240" y="130" width="160" height="60"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_H1_di" bpmnElement="TextAnnotation_H1">
<dc:Bounds x="5240" y="220" width="160" height="60"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_H2_di" bpmnElement="TextAnnotation_H2">
<dc:Bounds x="5240" y="310" width="160" height="60"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
<di:waypoint x="146" y="170"/>
<di:waypoint x="300" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
<di:waypoint x="400" y="170"/>
<di:waypoint x="490" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3">
<di:waypoint x="590" y="170"/>
<di:waypoint x="680" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4">
<di:waypoint x="780" y="170"/>
<di:waypoint x="870" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_5_di" bpmnElement="Flow_5">
<di:waypoint x="970" y="170"/>
<di:waypoint x="970" y="120"/>
<di:waypoint x="1085" y="120"/>
<di:waypoint x="1085" y="145"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_6_di" bpmnElement="Flow_6">
<di:waypoint x="1085" y="195"/>
<di:waypoint x="1085" y="220"/>
<di:waypoint x="1250" y="220"/>
<di:waypoint x="1250" y="170"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1093" y="199.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_7_di" bpmnElement="Flow_7">
<di:waypoint x="1110" y="170"/>
<di:waypoint x="1135" y="170"/>
<di:waypoint x="1135" y="120"/>
<di:waypoint x="1845" y="120"/>
<di:waypoint x="1845" y="145"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="1107.5" y="150" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_8_di" bpmnElement="Flow_8">
<di:waypoint x="1350" y="170"/>
<di:waypoint x="1395" y="170"/>
<di:waypoint x="1395" y="435"/>
<di:waypoint x="1440" y="435"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_9_di" bpmnElement="Flow_9">
<di:waypoint x="1540" y="435"/>
<di:waypoint x="1585" y="435"/>
<di:waypoint x="1585" y="170"/>
<di:waypoint x="1630" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10_di" bpmnElement="Flow_10">
<di:waypoint x="1730" y="170"/>
<di:waypoint x="1795" y="170"/>
<di:waypoint x="1820" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11_di" bpmnElement="Flow_11">
<di:waypoint x="1845" y="195"/>
<di:waypoint x="1845" y="220"/>
<di:waypoint x="2010" y="220"/>
<di:waypoint x="2010" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_12_di" bpmnElement="Flow_12">
<di:waypoint x="2110" y="170"/>
<di:waypoint x="2110" y="120"/>
<di:waypoint x="2225" y="120"/>
<di:waypoint x="2225" y="145"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13_di" bpmnElement="Flow_13">
<di:waypoint x="2225" y="195"/>
<di:waypoint x="2225" y="220"/>
<di:waypoint x="2415" y="220"/>
<di:waypoint x="2415" y="35"/>
<di:waypoint x="2415" y="60"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2233" y="199.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14_di" bpmnElement="Flow_14">
<di:waypoint x="2250" y="170"/>
<di:waypoint x="2275" y="170"/>
<di:waypoint x="2275" y="255"/>
<di:waypoint x="2390" y="255"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2247.5" y="150" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15_di" bpmnElement="Flow_15">
<di:waypoint x="2415" y="110"/>
<di:waypoint x="2415" y="135"/>
<di:waypoint x="2580" y="135"/>
<di:waypoint x="2580" y="85"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2423" y="114.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16_di" bpmnElement="Flow_16">
<di:waypoint x="2440" y="85"/>
<di:waypoint x="2465" y="85"/>
<di:waypoint x="2465" y="35"/>
<di:waypoint x="2795" y="35"/>
<di:waypoint x="2795" y="60"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2437.5" y="65" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17_di" bpmnElement="Flow_17">
<di:waypoint x="2680" y="85"/>
<di:waypoint x="2745" y="85"/>
<di:waypoint x="2770" y="85"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18_di" bpmnElement="Flow_18">
<di:waypoint x="2795" y="110"/>
<di:waypoint x="2795" y="135"/>
<di:waypoint x="2960" y="135"/>
<di:waypoint x="2960" y="85"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19_di" bpmnElement="Flow_19">
<di:waypoint x="3060" y="85"/>
<di:waypoint x="3060" y="35"/>
<di:waypoint x="3175" y="35"/>
<di:waypoint x="3175" y="60"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_20_di" bpmnElement="Flow_20">
<di:waypoint x="3175" y="110"/>
<di:waypoint x="3175" y="135"/>
<di:waypoint x="3365" y="135"/>
<di:waypoint x="3365" y="35"/>
<di:waypoint x="3365" y="60"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3183" y="114.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_21_di" bpmnElement="Flow_21">
<di:waypoint x="3200" y="85"/>
<di:waypoint x="3225" y="85"/>
<di:waypoint x="3225" y="205"/>
<di:waypoint x="3365" y="205"/>
<di:waypoint x="3365" y="230"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3197.5" y="65" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_22_di" bpmnElement="Flow_22">
<di:waypoint x="3365" y="110"/>
<di:waypoint x="3365" y="135"/>
<di:waypoint x="3530" y="135"/>
<di:waypoint x="3530" y="625"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3373" y="114.5" width="144" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_23_di" bpmnElement="Flow_23">
<di:waypoint x="3390" y="85"/>
<di:waypoint x="3415" y="85"/>
<di:waypoint x="3415" y="805"/>
<di:waypoint x="3530" y="805"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3387.5" y="65" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_24_di" bpmnElement="Flow_24">
<di:waypoint x="3630" y="625"/>
<di:waypoint x="3675" y="625"/>
<di:waypoint x="3675" y="85"/>
<di:waypoint x="3720" y="85"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_25_di" bpmnElement="Flow_25">
<di:waypoint x="3820" y="85"/>
<di:waypoint x="3820" y="120"/>
<di:waypoint x="3935" y="120"/>
<di:waypoint x="3935" y="145"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_26_di" bpmnElement="Flow_26">
<di:waypoint x="3630" y="805"/>
<di:waypoint x="3885" y="805"/>
<di:waypoint x="3885" y="170"/>
<di:waypoint x="3910" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_27_di" bpmnElement="Flow_27">
<di:waypoint x="3935" y="195"/>
<di:waypoint x="3935" y="220"/>
<di:waypoint x="4125" y="220"/>
<di:waypoint x="4125" y="120"/>
<di:waypoint x="4125" y="145"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_28_di" bpmnElement="Flow_28">
<di:waypoint x="3365" y="280"/>
<di:waypoint x="3365" y="305"/>
<di:waypoint x="3530" y="305"/>
<di:waypoint x="3530" y="975"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3373" y="284.5" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_29_di" bpmnElement="Flow_29">
<di:waypoint x="3390" y="255"/>
<di:waypoint x="3415" y="255"/>
<di:waypoint x="3415" y="170"/>
<di:waypoint x="3530" y="170"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="3387.5" y="235" width="132" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_30_di" bpmnElement="Flow_30">
<di:waypoint x="3630" y="975"/>
<di:waypoint x="3630" y="205"/>
<di:waypoint x="3745" y="205"/>
<di:waypoint x="3745" y="230"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_31_di" bpmnElement="Flow_31">
<di:waypoint x="3630" y="170"/>
<di:waypoint x="3695" y="170"/>
<di:waypoint x="3695" y="255"/>
<di:waypoint x="3720" y="255"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_32_di" bpmnElement="Flow_32">
<di:waypoint x="3745" y="280"/>
<di:waypoint x="3745" y="305"/>
<di:waypoint x="4075" y="305"/>
<di:waypoint x="4075" y="170"/>
<di:waypoint x="4100" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_33_di" bpmnElement="Flow_33">
<di:waypoint x="4125" y="195"/>
<di:waypoint x="4125" y="220"/>
<di:waypoint x="4315" y="220"/>
<di:waypoint x="4315" y="120"/>
<di:waypoint x="4315" y="145"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_34_di" bpmnElement="Flow_34">
<di:waypoint x="2490" y="255"/>
<di:waypoint x="2580" y="255"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_35_di" bpmnElement="Flow_35">
<di:waypoint x="2680" y="255"/>
<di:waypoint x="2680" y="205"/>
<di:waypoint x="2795" y="205"/>
<di:waypoint x="2795" y="230"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_36_di" bpmnElement="Flow_36">
<di:waypoint x="2795" y="280"/>
<di:waypoint x="2795" y="305"/>
<di:waypoint x="3175" y="305"/>
<di:waypoint x="3175" y="205"/>
<di:waypoint x="3175" y="230"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2803" y="284.5" width="96" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_37_di" bpmnElement="Flow_37">
<di:waypoint x="2820" y="255"/>
<di:waypoint x="2845" y="255"/>
<di:waypoint x="2960" y="255"/>
<bpmndi:BPMNLabel>
<dc:Bounds x="2817.5" y="235" width="30" height="14"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_38_di" bpmnElement="Flow_38">
<di:waypoint x="3060" y="255"/>
<di:waypoint x="3125" y="255"/>
<di:waypoint x="3150" y="255"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_39_di" bpmnElement="Flow_39">
<di:waypoint x="3175" y="280"/>
<di:waypoint x="3175" y="305"/>
<di:waypoint x="4265" y="305"/>
<di:waypoint x="4265" y="170"/>
<di:waypoint x="4290" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_40_di" bpmnElement="Flow_40">
<di:waypoint x="4315" y="195"/>
<di:waypoint x="4315" y="220"/>
<di:waypoint x="4480" y="220"/>
<di:waypoint x="4480" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_41_di" bpmnElement="Flow_41">
<di:waypoint x="4580" y="170"/>
<di:waypoint x="4670" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_42_di" bpmnElement="Flow_42">
<di:waypoint x="4770" y="170"/>
<di:waypoint x="4860" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_43_di" bpmnElement="Flow_43">
<di:waypoint x="4960" y="170"/>
<di:waypoint x="5050" y="170"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="MsgFlow_1_di" bpmnElement="MsgFlow_1">
<di:waypoint x="730" y="210"/>
<di:waypoint x="1826.67" y="1120"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="MsgFlow_2_di" bpmnElement="MsgFlow_2">
<di:waypoint x="3010" y="125"/>
<di:waypoint x="3653.33" y="1120"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
@@ -0,0 +1,79 @@
# Referenzmodell (Test) für Konvertertests – aus einer echten Beschreibung abgeleitet, fachlich nicht abgenommen. Nicht von Hand an die Ausgabe anpassen; Änderungen per Pull Request.
Prozess: Gewannenfestlegung
Extern: Bau- und Unterhaltungslastträger
# --- Vorarbeiten ---
S1 Start: Flurneuordnungsbehörde: Gewannenfestlegung beginnt
S2 Task: Flurneuordnungsbehörde: Gewannenkonzept erarbeiten
S3 Task: Flurneuordnungsbehörde: Verwaltungsgrenzen prüfen
S4 Task: Flurneuordnungsbehörde: Zeitplan abstimmen
~> Bau- und Unterhaltungslastträger
-> S5
S5 Task: Flurneuordnungsbehörde: Eigene Messung oder Vergabe klären
S6 Gateway XOR: Flurneuordnungsbehörde: Sofort abmarken?
Ja -> S7
Nein -> S10
S7 Task: Flurneuordnungsbehörde: Leitungspläne einholen
S8 Task: Vorstand TG: Art der Abmarkung beschließen
S9 Task: Flurneuordnungsbehörde: Abmarkungsmaterial beschaffen
S10 Gateway XOR: Flurneuordnungsbehörde: Vorarbeiten abgeschlossen
# --- Örtliche Arbeiten ---
S11 Task: Flurneuordnungsbehörde: Grenzen in der Ortslage verhandeln
S12 Gateway XOR: Flurneuordnungsbehörde: Vorausbau erfolgt?
Ja -> S13
Nein -> S40
# Varianten 1 und 2: Vorausbau erfolgt
S13 Gateway XOR: Flurneuordnungsbehörde: Wald eigene Gewanne?
Ja -> S14
Nein -> S15
S14 Task: Flurneuordnungsbehörde: Waldgrenzen verhandeln
S15 Gateway XOR: Flurneuordnungsbehörde: Waldfrage erledigt
S16 Task: Flurneuordnungsbehörde: Anlagengrenzen im Ortstermin festlegen und abpflocken
~> Bau- und Unterhaltungslastträger
-> S17
S17 Gateway XOR: Flurneuordnungsbehörde: Jetzt abmarken?
Ja -> S18
Nein -> S23
S18 Gateway XOR: Flurneuordnungsbehörde: Wer markt ab?
Beteiligte/Dienstleister -> S19
ÖbVI -> S21
# 1a
S19 Task: Beteiligte/Dienstleister: Grenzpunkte anhand der Pflöcke abmarken
S20 Task: Flurneuordnungsbehörde: Aufmessung veranlassen
-> S22
# 1b
S21 Task: ÖbVI: Abmarken und aufmessen
S22 Gateway XOR: Flurneuordnungsbehörde: Abmarkung erledigt
-> S27
S23 Gateway XOR: Flurneuordnungsbehörde: Wer misst auf?
ÖbVI -> S24
Flurneuordnungsbehörde -> S25
# 1c
S24 Task: ÖbVI: Aufmessen, Abmarkung bis zur vorläufigen Besitzeinweisung
-> S26
# 1d
S25 Task: Flurneuordnungsbehörde: Im Ortstermin aufmessen
S26 Gateway XOR: Flurneuordnungsbehörde: Aufmessung erledigt
S27 Gateway XOR: Flurneuordnungsbehörde: Vermessung erledigt
-> S50
# Variante 3: kein Vorausbau
S40 Task: Flurneuordnungsbehörde: Gewannen nach Planungsunterlagen projektieren
S41 Task: Flurneuordnungsbehörde: Gewannen vor Bautätigkeit abstecken
S42 Gateway XOR: Flurneuordnungsbehörde: Vor Baumaßnahme abmarken?
Nein (empfohlen) -> S44
Ja -> S43
S43 Task: Flurneuordnungsbehörde: Vor Baumaßnahme abmarken
S44 Gateway XOR: Flurneuordnungsbehörde: Absteckung erledigt
# --- Auswertung ---
S50 Gateway XOR: Flurneuordnungsbehörde: Örtliche Arbeiten abgeschlossen
S51 Task: Flurneuordnungsbehörde: Messdaten auswerten
S52 Task: Flurneuordnungsbehörde: Punktdaten einlesen, Punktattribute vergeben
S53 Task: Flurneuordnungsbehörde: Gewannen im NoBIS bilden und prüfen
S54 Ende: Flurneuordnungsbehörde: Gewannen festgelegt
H0 Hinweis: Test – Referenzentwurf für Konvertertests, fachlich nicht abgenommen
H3 Hinweis: Wald und Ortslage abwägen – Waldgrenzen zu verhandeln ist grundsätzlich zu empfehlen, eine eigene Waldgewanne aber nicht immer zweckmäßig (z. B. Hufenstruktur – ohne Gewannegrenze zwischen Acker und Wald lassen sich Flurstücke leichter verschmelzen). Eine Gesamtgewanne für die Ortslage erleichtert Änderungen im Ort, macht Änderungen der Ortslagenabgrenzung (z. B. Gartenerweiterung in die Feldlage) aber aufwendig. Die bevorzugte Variante kann je Verfahren abweichen.
H1 Hinweis: Variante 3: Bautätigkeit muss zwingend innerhalb der abgesteckten Grenzen erfolgen; bei Abmarkung vor der Baumaßnahme droht deren Verlust.
H2 Hinweis: Nummerierung systematisch (gemeinschaftliche Anlagen Nr. X4XX, Gemarkung, Orts-/Feldlage, öffentliche Anlagen) und über die Verfahrenslaufzeit stabil. Nur so viele Gewannen wie nötig.
+5
View File
@@ -39,6 +39,11 @@ Sie bleibt bewusst kurz: Details liegen in `docs/` und werden nur bei Bedarf gel
- **Jeder neue oder geänderte Test bekommt einen deutschen Docstring**, erste Zeile in der Form `"""Prüft, dass …"""`.
- Tests werden nicht gelöscht, nicht mit `skip` stillgelegt und nicht in ihrer Erwartung angepasst, um grün zu werden –
außer das Verhalten wurde bewusst geändert und der Pull Request begründet es.
- **Einzige Ausnahme:** ein bekannter, per Issue erfasster Konverterfehler an einem Referenzmodell
(`beispiele/referenz_*.md`) darf als `xfail(strict=True)` mit Issue-Nummer im Grund eingetragen werden
(`tests/test_referenzmodelle.py`). Nie für Fehler, die die eigene Änderung verursacht.
- **Referenzmodelle** unter `.agents/skills/sn-bpmn/beispiele/referenz_*.md` sind echte, größere Prozesse zum
Testen von Konverteränderungen. Ändert sich deren `.bpmn`, im Pull Request mit Vorschau begründen.
### Inhalte
+4
View File
@@ -30,6 +30,10 @@ Skills sind übernommen, alles QGIS- und Plugin-Spezifische ist entfernt. Kern i
## Erledigt
- 23.09.2026 **Erster echter Einlese-Durchgang** (`input/Gewannenvermessung.md` → `entwuerfe/gewannenfestlegung`)
und daraus das **Referenzmodell** `beispiele/referenz_gewannenfestlegung` für Konvertertests (#7), mit
Strukturtests. Dabei gefunden: Kante durch Gateway S13 (#8, als `xfail` erfasst).
- 23.09.2026 **Eingangsordner `input/` und Skill `sn-einlesen`** (#5): `.md`-Dateien werden geprüft (andere
Typen vorerst abgelehnt), mit dem Bestand verglichen, nach Entscheidung des Nutzers durch `sn-bpmn` geführt und
bei Erfolg mit Zeitstempel vermerkt. Einsteiger-Ablauf: `docs/leitfaden/07_prozesse_einlesen.md`.
+8
View File
@@ -5,6 +5,14 @@ Kurz, konkret, mit Datum und Quelle. Neue Einträge oben in der passenden Rubrik
## BPMN und PICTURE (Skill sn-bpmn, md_to_bpmn.py)
- **Kanten durch Gateways sind noch nicht ganz behoben.** Im Referenzmodell Gewannenfestlegung läuft die Kante
S12→S13 (Gateway → Gateway, Ziel oberhalb der Quelle, Ankunft am Nordpunkt) senkrecht durch die Raute von S13.
Der Fix vom 21.09.2026 deckt diese Lage nicht ab. Erfasst als Issue #8 und als `xfail` in
`tests/test_referenzmodelle.py`. (23.09.2026)
- **Zusammenführende Gateways brauchen eine Beschriftung mit Zuständigkeit**, sonst landen sie in der Lane
„Nicht zugeordnet“ (`split_lane()` braucht Text nach dem Doppelpunkt). In BPMN bleiben Zusammenführungen
üblicherweise unbeschriftet – ein Fall für eine spätere Konverteränderung. (23.09.2026, Referenzmodell)
- **Das bpmn.io-Wasserzeichen ist Lizenzauflage.** bpmn-js steht unter MIT, verlangt aber, dass das Wasserzeichen
unten rechts sichtbar bleibt und nicht überdeckt wird. In `werkzeuge/vorschau/vorschau.html` deshalb nichts in die
untere rechte Ecke der Zeichenfläche legen. (bpmn-js `LICENSE`, 23.09.2026)
+65
View File
@@ -0,0 +1,65 @@
"""Strukturtests für die Referenzmodelle (.agents/skills/sn-bpmn/beispiele/referenz_*.md) – reines Python/pytest.
Die Referenzmodelle sind echte, größere Prozesse. Der Byte-Vergleich in test_pruefe_prozesse.py meldet jede
Änderung an der Ausgabe von md_to_bpmn.py; diese Tests prüfen zusätzlich, ob das Ergebnis danach noch den
Modellierregeln und den Grenzen von PICTURE genügt – auch wenn die .bpmn bewusst neu erzeugt wurde.
"""
import sys
from pathlib import Path
import pytest
ROOT = Path(__file__).resolve().parents[1]
SKILL = ROOT / ".agents" / "skills" / "sn-bpmn"
sys.path.insert(0, str(SKILL))
import md_to_bpmn as m # noqa: E402
from test_md_to_bpmn import _kante_kreuzt_gateway # noqa: E402 (dieselbe Geometrieprüfung wie dort)
REFERENZEN = sorted((SKILL / "beispiele").glob("referenz_*.md"))
GATEWAYS = ("exclusiveGateway", "inclusiveGateway", "parallelGateway", "eventBasedGateway")
# Bekannte, noch nicht behobene Konverterfehler je Referenzmodell. strict=True: Sobald der Fehler behoben ist,
# schlägt der Test als XPASS fehl – dann den Eintrag hier entfernen. Nie verwenden, um neue Fehler zu verstecken.
BEKANNTE_KANTEN_DURCH_GATEWAY = {
"referenz_gewannenfestlegung": "Issue #8: Kante S12→S13 (Ja) läuft senkrecht durch die Raute von S13",
}
def mit_bekannten_fehlern(bekannt):
return [pytest.param(md, id=md.stem, marks=pytest.mark.xfail(reason=bekannt[md.stem], strict=True))
if md.stem in bekannt else pytest.param(md, id=md.stem) for md in REFERENZEN]
def baue(md):
meta, steps, order, externals = m.parse_markdown(md.read_text(encoding="utf-8"))
return m.build_bpmn(meta, steps, order, externals)
def test_es_gibt_mindestens_ein_referenzmodell():
"""Prüft, dass die Strukturtests tatsächlich an einem Referenzmodell laufen."""
assert REFERENZEN
@pytest.mark.parametrize("md", REFERENZEN, ids=lambda p: p.stem)
def test_jedes_element_hat_eine_zustaendigkeit(md):
"""Prüft, dass im Referenzmodell kein Element in der Lane 'Nicht zugeordnet' landet."""
lanes = [lane.get("name") for lane in baue(md).iter(f"{{{m.NS['bpmn']}}}lane")]
assert lanes, "Referenzmodell ohne Lanes"
assert m.UNASSIGNED_LANE not in lanes
@pytest.mark.parametrize("md", REFERENZEN, ids=lambda p: p.stem)
def test_kein_gateway_hat_mehr_als_vier_kanten(md):
"""Prüft Modellierregel 4: kein Gateway im Referenzmodell braucht mehr als die vier Anschlusspunkte von PICTURE."""
defs = baue(md)
for tag in GATEWAYS:
for gateway in defs.iter(f"{{{m.NS['bpmn']}}}{tag}"):
kanten = gateway.findall(f"{{{m.NS['bpmn']}}}incoming") + gateway.findall(f"{{{m.NS['bpmn']}}}outgoing")
assert len(kanten) <= 4, f"{gateway.get('id')} hat {len(kanten)} Kanten"
@pytest.mark.parametrize("md", mit_bekannten_fehlern(BEKANNTE_KANTEN_DURCH_GATEWAY))
def test_keine_kante_fuehrt_durchs_innere_eines_gateways(md):
"""Prüft, dass im Referenzmodell keine Kante quer durch eine Raute läuft (Fallstrick Gateway-Kantenführung)."""
assert _kante_kreuzt_gateway(baue(md), m.NS) is None