1
0
Files
Rihards Gailums 66ce42ea37 Spec-conformance fix: correct stub levels and add BPMN-DI
Three corrections grounded in the UAPF SSOT specification (UAPFormat/
UAPF-specification, specification/01-concepts.md, 04-folder-structure.md,
05-level-composition.md, 10-conformance-checklist.md), which had not been
read in full before the initial workspace build.

1. Level relabel. The FG3 sub-process stubs fg3-2, fg3-3 and fg3-6 had
   been marked level: 4 by template inheritance from fg3-1 at Step 4 of
   the build, despite carrying no BPMN and no resources. Per the spec
   conformance checklist this fails the L4 requirement. The three are
   composition placeholders, which the spec models as L3 (composed
   subprocess / variant). Their uapf.yaml is now level: 3 with
   cornerstones.bpmn: false — conformant: L1-L3 packages MUST NOT
   duplicate L4 content. The three real executables fg3-1, fg3-4 and
   fg3-5 remain L4.

2. BPMN Diagram Interchange. All five .bpmn files in the workspace now
   carry a bpmndi:BPMNDiagram with BPMNShape and BPMNEdge elements
   produced by a swim-lane left-to-right auto-layout, so the diagrams
   preview in bpmn.io, Camunda Modeler and ProcessGit's web view. The
   spec doesn't require DI (its own examples have none) but practical
   reviewability does.

3. Transcoder. tools/register-transcoder gains bpmn_di.py — also runnable
   standalone for retrofitting existing BPMN files. transcode.py now
   imports it and emits DI by default for newly generated skeletons.
   sample-output/3.5.2.skeleton.bpmn and 3.5.3.skeleton.bpmn regenerated
   with DI; the logical-model content is byte-identical to the previous
   commit, only DI is added.

docs/methodology.md updated: adds an explicit Workspace-structure section
grounding L0-L4 in the SSOT spec, a Conformance-correction section
documenting the Step-4 mislabel and its fix, and drops the now-untrue
'no DI' line from limitations.

Validation after the change, full L1-L4 sweep: uapf-cli validate green on
all 10 packages (domains/gramatvediba, fg1-fg6, fg3, fg3-1..fg3-6);
xmllint clean on all 8 .bpmn/.dmn; every .bpmn has BPMNDiagram present.
2026-05-20 06:44:14 +00:00

245 lines
13 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
id="Defs_FG3_1_RekinaSanemsana"
targetNamespace="https://uapf.dev/vk-gramatvediba/fg3-1">
<bpmn:process id="Process_RekinaSanemsana"
name="Rēķina/kredītrēķina saņemšana par precēm/pakalpojumiem"
isExecutable="true">
<bpmn:laneSet id="LaneSet_FG3_1">
<bpmn:lane id="Lane_Nodarbinatais" name="Nodarbinātais">
<bpmn:flowNodeRef>Start_RekinsSanemts</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_VPC" name="VPC (Vienotais pakalpojumu centrs)">
<bpmn:flowNodeRef>Task_RegistreDVS</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_FormalaParbaude</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_SasaisteArLigumu</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_NoteiktMarsrutu</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_Marsruts</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_ManualaParbaude</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_AtgrieztPiegadatajam</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_Gramatosana</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_NodotApmaksai</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_Iegramatots</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_Atgriezts</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_Iestade" name="Iestāde (atbildīgā amatpersona)">
<bpmn:flowNodeRef>Task_SaturiskaApstiprinasana</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="Start_RekinsSanemts" name="Rēķins/kredītrēķins saņemts">
<bpmn:documentation>Rēķins saņemts elektroniski (e-rēķins EN 16931 caur e-adresi) vai papīra formā. Sistēma: e-adrese, DVS.</bpmn:documentation>
<bpmn:outgoing>F1</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Task_RegistreDVS" name="Reģistrēt rēķinu DVS">
<bpmn:documentation>Rēķinu reģistrē dokumentu vadības sistēmā, piešķir reģistrācijas numuru un fiksē saņemšanas datumu. Sistēma: DVS. SLA: 1 darba diena no saņemšanas.</bpmn:documentation>
<bpmn:incoming>F1</bpmn:incoming>
<bpmn:outgoing>F2</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_FormalaParbaude" name="Veikt formālo pārbaudi">
<bpmn:documentation>Pārbauda obligātos rekvizītus (EN 16931), piegādātāja identificējamību un to, vai rēķins nav dublēts. Rezultāts: mainīgais formalaParbaude = "atbilst" | "neatbilst". Sistēma: DVS, grāmatvedības informācijas sistēma.</bpmn:documentation>
<bpmn:incoming>F2</bpmn:incoming>
<bpmn:outgoing>F3</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_SasaisteArLigumu" name="Sasaistīt ar iepirkuma līgumu/pasūtījumu">
<bpmn:documentation>Rēķinu sasaista ar iepirkuma līgumu vai pasūtījumu un veic trīspusējo salīdzināšanu (līgums – pasūtījums – rēķins). Rezultāts: mainīgais ligumaSasaiste = "pilna" | "dalena" | "nav".</bpmn:documentation>
<bpmn:incoming>F3</bpmn:incoming>
<bpmn:outgoing>F4</bpmn:outgoing>
</bpmn:userTask>
<bpmn:businessRuleTask id="Task_NoteiktMarsrutu" name="Noteikt rēķina maršrutu">
<bpmn:documentation>Automatizēti izvērtē rēķina apstrādes maršrutu, izpildot lēmumu Decision_RekinaMarsrutesana (dmn/rekina-parbaude.dmn). Ievaddati: formalaParbaude, ligumaSasaiste, dokumentaTips. Rezultāts: mainīgais marsruts.</bpmn:documentation>
<bpmn:incoming>F4</bpmn:incoming>
<bpmn:outgoing>F5</bpmn:outgoing>
</bpmn:businessRuleTask>
<bpmn:exclusiveGateway id="Gateway_Marsruts" name="Maršruts?" default="F6">
<bpmn:incoming>F5</bpmn:incoming>
<bpmn:outgoing>F6</bpmn:outgoing>
<bpmn:outgoing>F7</bpmn:outgoing>
<bpmn:outgoing>F8</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:userTask id="Task_ManualaParbaude" name="Veikt manuālu izvērtēšanu">
<bpmn:documentation>Vecākais grāmatvedis izvērtē rēķinu, kuram trūkst pilnas līguma sasaistes vai kurš ir kredītrēķins, un sagatavo to saturiskajai apstiprināšanai.</bpmn:documentation>
<bpmn:incoming>F7</bpmn:incoming>
<bpmn:outgoing>F9</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_AtgrieztPiegadatajam" name="Atgriezt rēķinu piegādātājam precizēšanai">
<bpmn:documentation>Rēķins, kas neiztur formālo pārbaudi, tiek atgriezts piegādātājam ar norādi par konstatētajām neatbilstībām. Sistēma: e-adrese, DVS.</bpmn:documentation>
<bpmn:incoming>F8</bpmn:incoming>
<bpmn:outgoing>F10</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_SaturiskaApstiprinasana" name="Saturiski apstiprināt rēķinu">
<bpmn:documentation>Iestādes atbildīgā amatpersona apliecina, ka preces/pakalpojumi ir saņemti atbilstoši līgumam, un apstiprina rēķinu apmaksai. SLA: 5 darba dienas.</bpmn:documentation>
<bpmn:incoming>F6</bpmn:incoming>
<bpmn:incoming>F9</bpmn:incoming>
<bpmn:outgoing>F11</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_Gramatosana" name="Iegrāmatot rēķinu">
<bpmn:documentation>Apstiprināto rēķinu iegrāmato grāmatvedības informācijas sistēmā atbilstoši kontu plānam un izdevumu klasifikācijai. Sistēma: grāmatvedības informācijas sistēma.</bpmn:documentation>
<bpmn:incoming>F11</bpmn:incoming>
<bpmn:outgoing>F12</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_NodotApmaksai" name="Sagatavot maksājuma uzdevuma priekšlikumu">
<bpmn:documentation>Iegrāmatoto rēķinu nodod apmaksas plānošanai, sagatavojot maksājuma uzdevuma priekšlikumu atbilstoši samaksas termiņam.</bpmn:documentation>
<bpmn:incoming>F12</bpmn:incoming>
<bpmn:outgoing>F13</bpmn:outgoing>
</bpmn:userTask>
<bpmn:endEvent id="End_Iegramatots" name="Rēķins iegrāmatots un nodots apmaksai">
<bpmn:incoming>F13</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="End_Atgriezts" name="Rēķins atgriezts piegādātājam">
<bpmn:incoming>F10</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="F1" sourceRef="Start_RekinsSanemts" targetRef="Task_RegistreDVS"/>
<bpmn:sequenceFlow id="F2" sourceRef="Task_RegistreDVS" targetRef="Task_FormalaParbaude"/>
<bpmn:sequenceFlow id="F3" sourceRef="Task_FormalaParbaude" targetRef="Task_SasaisteArLigumu"/>
<bpmn:sequenceFlow id="F4" sourceRef="Task_SasaisteArLigumu" targetRef="Task_NoteiktMarsrutu"/>
<bpmn:sequenceFlow id="F5" sourceRef="Task_NoteiktMarsrutu" targetRef="Gateway_Marsruts"/>
<bpmn:sequenceFlow id="F6" name="process" sourceRef="Gateway_Marsruts" targetRef="Task_SaturiskaApstiprinasana"/>
<bpmn:sequenceFlow id="F7" name="manual-review" sourceRef="Gateway_Marsruts" targetRef="Task_ManualaParbaude">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">marsruts = "manual-review"</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="F8" name="return" sourceRef="Gateway_Marsruts" targetRef="Task_AtgrieztPiegadatajam">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">marsruts = "return"</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="F9" sourceRef="Task_ManualaParbaude" targetRef="Task_SaturiskaApstiprinasana"/>
<bpmn:sequenceFlow id="F10" sourceRef="Task_AtgrieztPiegadatajam" targetRef="End_Atgriezts"/>
<bpmn:sequenceFlow id="F11" sourceRef="Task_SaturiskaApstiprinasana" targetRef="Task_Gramatosana"/>
<bpmn:sequenceFlow id="F12" sourceRef="Task_Gramatosana" targetRef="Task_NodotApmaksai"/>
<bpmn:sequenceFlow id="F13" sourceRef="Task_NodotApmaksai" targetRef="End_Iegramatots"/>
</bpmn:process>
<bpmndi:BPMNDiagram 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="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_RekinaSanemsana">
<bpmndi:BPMNShape id="Shape_Lane_Nodarbinatais" bpmnElement="Lane_Nodarbinatais" isHorizontal="true">
<dc:Bounds x="30" y="40" width="1970" height="180"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Lane_VPC" bpmnElement="Lane_VPC" isHorizontal="true">
<dc:Bounds x="30" y="220" width="1970" height="180"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Lane_Iestade" bpmnElement="Lane_Iestade" isHorizontal="true">
<dc:Bounds x="30" y="400" width="1970" height="180"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Start_RekinsSanemts" bpmnElement="Start_RekinsSanemts">
<dc:Bounds x="122" y="112" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_End_Iegramatots" bpmnElement="End_Iegramatots">
<dc:Bounds x="1822" y="292" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_End_Atgriezts" bpmnElement="End_Atgriezts">
<dc:Bounds x="1312" y="292" width="36" height="36"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Gateway_Marsruts" bpmnElement="Gateway_Marsruts">
<dc:Bounds x="965" y="285" width="50" height="50"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_RegistreDVS" bpmnElement="Task_RegistreDVS">
<dc:Bounds x="260" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_FormalaParbaude" bpmnElement="Task_FormalaParbaude">
<dc:Bounds x="430" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_SasaisteArLigumu" bpmnElement="Task_SasaisteArLigumu">
<dc:Bounds x="600" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_ManualaParbaude" bpmnElement="Task_ManualaParbaude">
<dc:Bounds x="1110" y="235" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_AtgrieztPiegadatajam" bpmnElement="Task_AtgrieztPiegadatajam">
<dc:Bounds x="1110" y="305" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_SaturiskaApstiprinasana" bpmnElement="Task_SaturiskaApstiprinasana">
<dc:Bounds x="1280" y="450" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_Gramatosana" bpmnElement="Task_Gramatosana">
<dc:Bounds x="1450" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_NodotApmaksai" bpmnElement="Task_NodotApmaksai">
<dc:Bounds x="1620" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Shape_Task_NoteiktMarsrutu" bpmnElement="Task_NoteiktMarsrutu">
<dc:Bounds x="770" y="270" width="100" height="80"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Edge_F1" bpmnElement="F1">
<di:waypoint x="158" y="130"/>
<di:waypoint x="209" y="130"/>
<di:waypoint x="209" y="310"/>
<di:waypoint x="260" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F2" bpmnElement="F2">
<di:waypoint x="360" y="310"/>
<di:waypoint x="430" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F3" bpmnElement="F3">
<di:waypoint x="530" y="310"/>
<di:waypoint x="600" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F4" bpmnElement="F4">
<di:waypoint x="700" y="310"/>
<di:waypoint x="770" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F5" bpmnElement="F5">
<di:waypoint x="870" y="310"/>
<di:waypoint x="965" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F6" bpmnElement="F6">
<di:waypoint x="1015" y="310"/>
<di:waypoint x="1147" y="310"/>
<di:waypoint x="1147" y="490"/>
<di:waypoint x="1280" y="490"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F7" bpmnElement="F7">
<di:waypoint x="1015" y="310"/>
<di:waypoint x="1062" y="310"/>
<di:waypoint x="1062" y="275"/>
<di:waypoint x="1110" y="275"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F8" bpmnElement="F8">
<di:waypoint x="1015" y="310"/>
<di:waypoint x="1062" y="310"/>
<di:waypoint x="1062" y="345"/>
<di:waypoint x="1110" y="345"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F9" bpmnElement="F9">
<di:waypoint x="1210" y="275"/>
<di:waypoint x="1245" y="275"/>
<di:waypoint x="1245" y="490"/>
<di:waypoint x="1280" y="490"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F10" bpmnElement="F10">
<di:waypoint x="1210" y="345"/>
<di:waypoint x="1261" y="345"/>
<di:waypoint x="1261" y="310"/>
<di:waypoint x="1312" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F11" bpmnElement="F11">
<di:waypoint x="1380" y="490"/>
<di:waypoint x="1415" y="490"/>
<di:waypoint x="1415" y="310"/>
<di:waypoint x="1450" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F12" bpmnElement="F12">
<di:waypoint x="1550" y="310"/>
<di:waypoint x="1620" y="310"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Edge_F13" bpmnElement="F13">
<di:waypoint x="1720" y="310"/>
<di:waypoint x="1822" y="310"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>