meldestelle/backend/services/masterdata/docs/ZNS_SCHNITTSTELLE.md
Stefan Mogeritsch c576bbd6af feat(docs): add ZNS interface documentation and session log for OEPS compliance
- Created detailed session log for ZNS interface documentation (`2026-03-30_Session_Log_ZNS_Documentation.md`), outlining analysis, technical specifications, and next steps.
- Added comprehensive ZNS Schnittstelle documentation (`ZNS_SCHNITTSTELLE.md`) to the `masterdata` service.
- Linked new documentation in `masterdata/README.md` to ensure alignment with ÖTO standards.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 12:13:28 +02:00

88 lines
4.6 KiB
Markdown

# 📜 ZNS-Datentransfer & Schnittstellen-Spezifikation (OEPS)
Diese Dokumentation beschreibt die Struktur der Datenaustausch-Dateien zwischen dem **OEPS (Österreichischer
Pferdesportverband)** und den **Meldestellen**, basierend auf dem Pflichtenheft v2.4 (2021).
## 📂 Die ZNS.zip (Stammdaten)
Die Datei `zns.zip` enthält die zentralen Referenzdaten für den Turnierbetrieb. Alle Dateien sind im **ASCII-Format (
Codepage 850)** kodiert.
### 1. Richter & Parcoursbauer (`RICHT01.dat`)
Enthält alle offiziellen Funktionäre mit ihren Qualifikationen.
| Feld | Position | Länge | Format / Werte |
|:--------------------|:---------|:------|:---------------------------------------|
| **Satz-ID** | 1 | 1 | `X` (Richter) oder `Y` (Parcoursbauer) |
| **Satznummer** | 2 | 6 | Eindeutige OEPS-ID (`000000`) |
| **Name** | 8 | 75 | Familienname, Vorname |
| **Qualifikationen** | 83 | 30 | Kommagetrennt (z.B. `D,S,CSN-B`) |
### 2. Lizenzen & Reiter (`LIZENZ01.dat`)
Zentrale Liste aller Reiter mit aktiven Lizenzen und Startkarten.
| Feld | Position | Länge | Format / Werte |
|:-------------------|:---------|:--------|:--------------------------------------------------------|
| **Satznummer** | 1 | 6 | Eindeutige Reiter-ID |
| **Name/Vorname** | 7 / 57 | 50 / 25 | - |
| **Bundesland** | 82 | 2 | 01=W, 02=NÖ, 03=B, 04=ST, 05=K, 06=OÖ, 07=S, 08=T, 09=V |
| **Vereinsname** | 84 | 50 | Stammverein |
| **Nationalität** | 134 | 3 | ISO-Code (z.B. `AUT`) |
| **Reiterlizenz** | 137 | 4 | z.B. `R1`, `RD2`, `R3` |
| **Altersklasse** | 144 | 2 | `JG`=Jugend, `JR`=Junior, `25`=U25 |
| **Junger Reiter** | 146 | 1 | `Y` = Junger Reiter |
| **Sperrliste** | 200 | 1 | `S` = Gesperrt (Info prüfen) |
| **Lizenz-Details** | 201 | 10 | Bezahlte Lizenzen (z.B. `RD1,F1`) |
### 3. Pferde (`PFERDE01.dat`)
Referenzdaten für alle registrierten Pferde (max. 3 Jahre nach letzter Zahlung).
| Feld | Position | Länge | Format / Werte |
|:-----------------|:---------|:------|:--------------------------|
| **Kopfnummer** | 1 | 4 | Registrierte Kopfnummer |
| **Pferdename** | 5 | 30 | - |
| **Lebensnummer** | 35 | 9 | OEPS-Lebensnummer |
| **Geschlecht** | 44 | 1 | `W`, `H`, `S` |
| **Geburtsjahr** | 45 | 4 | JJJJ |
| **Besitzer** | 87 | 75 | Verantwortliche Person |
| **Satznummer** | 202 | 10 | Eindeutige OEPS-Pferde-ID |
### 4. Vereine (`VEREIN01.dat`)
| Feld | Position | Länge | Format / Werte |
|:------------------|:---------|:------|:---------------------------|
| **Vereinsnummer** | 1 | 4 | Eindeutige OEPS-Vereins-ID |
| **Vereinsname** | 5 | 50 | - |
---
## 📩 Nennungsdaten (`n2-<Turniernr>.dat`)
Diese Datei enthält alle für ein spezifisches Turnier eingegangenen Nennungen. Sie folgt im Wesentlichen dem Aufbau der
`LIZENZ01` und `PFERDE01`, ergänzt um:
* **A-Satz:** Turnierstammdaten (Name, Ort, Datum, Kategorie).
* **B-Satz:** Liste der ausgeschriebenen Bewerbe inkl. 3-stelliger Bewerbnummer (Pos. 60).
* **K-Satz (Kartei):** Verknüpfung Pferd ↔ Reiter ↔ Genannte Bewerbe.
---
## 🏆 Ergebnisdaten (`<Turniernr>.erg`)
Die Rückmeldung der Ergebnisse an den OEPS nach Abschluss des Turniers.
* **B-Satz:** Bewerbs-Informationen (Starteranzahl, ausgezahltes Geldpreis-Summe).
* **C-Satz:** Eingesetzte Richter für diesen Bewerb (Satznummern).
* **D-Satz (Ergebniszeile):**
* **Platz:** 1-996, `997`=Ausschluss, `999`=Disqualifikation.
* **Punkte/Wertnote:** Pos. 121 (Format 999999, 4 Vorkomma, 2 Nachkomma).
* **Zeit/Prozent:** Pos. 127 (3 Vorkomma, 2 Nachkomma; bei Dressur 2 Vorkomma, 3 Nachkomma).
* **Status:** `A`=Ausschluss, `D`=Disqualifikation, `T`=Teilnahmeverzicht (nur Stechen).
---
> 📜 **Rulebook Expert Hinweis:** Diese Spezifikationen sind die Grundlage für den `zns-import` Service. Die Längen und
> Positionen sind strikt einzuhalten, da der OEPS-Parser keine Abweichungen toleriert.