Schnittstellen Definition des "Dogsport-Open-Transport"-Protokoll (Rally Obedience Version 1.00)

 Inhalt:
 
 Technische Regeln
 Inhaltliche Regeln
 Details Block 1
 Details Block 2
 Details Block 3
 Beispiel-File
 Import RO-Control II
 Beispiel RO-Control II
 Anhang Rassenliste
 
 Downloads:
 
 Open-Transport-Protokoll.pdf
 Open-Transport-Protokoll.txt  (beste Darstellung mit Notepad++)
 HD-Rassenliste.txt
 Open-Transport-Import-Test.csv
 
 



Technische Regeln:
 
-Die Übermittlung findet prinzipiell als Text-File im CSV-Format (ANSI Kodierung) mit wählbarem Trennzeichen statt.
-Der Name des Files gibt sinnvollerweise Aufschluss über den Namen der Veranstaltung.
-Abgeschlossen wird eine Zeile mit CRLF.
-Das File beinhaltet drei Blöcke:
Block 1ist die erste Zeile des Files (Header, Zeile 0), bestehend aus organisatorischen Daten in acht Feldern (0...7),
jeweils abgeschlossen durch ein Semikolon.
Block 2besteht aus mindestens einer und maximal 999 Zeilen und beinhalten die Teamdaten, die ihrerseits aus 80 Feldern (0..79) bestehen.
Jede Teamzeile entspricht dabei einem Team mit allen(!) Meldungen für alle(!) Tage.
Block 3ist die letzte Zeile des Files und besteht aus dem festen Text "[EOF]"
 
Seitenanfang


Inhaltliche Regeln:
 
-Alle numerischen Werte sind im Dezimal-Format notiert.
-!!! Nicht alle Felder müssen gesendet werden und nicht alle Felder müssen ausgewertet werden !!!
-Welche Folgen ein leeres Feld, oder ein Feld mit ungültigen Angaben hat, obliegt dem Empfänger.
-Die Kontrolle, inwieweit persönliche Daten der HF und ggf. HE versendet werden dürfen, obliegt dem Sender (DSGVO)
-Aus allgemeinen Datenschutzgründen, werden Wohnortangaben grundsätzlich nicht übermittelt.
-Dem Sender obliegt es, widersprüchliche Angaben z.B. bei den Meldungen zu vermeiden.
-Dem Empfänger obliegt es, bei fehlerhaften oder widersprüchlichen Angaben, die betreffende Teamzeile oder das komplette File zu verwerfen.
-Empfängerseitig wäre sinnvoll, dem Benutzer mitzuteilen, warum eine Teamzeile oder das gesamte File abgelehnt wurde.
 
Seitenanfang


DETAILS - BLOCK 1, HEADER: (jedes Feld ist abzuschließen mit ";" - auch das letzte Feld)
 
- Das verwendete Trennzeichen für den folgenden Teamdatenblock, ist in Feld 3 per Ascii-Nummer einstellbar.
- Der Sender muss sicherstellen, dass innerhalb von freien Texten, Namen usw, das Trennzeichen nicht vorkommt.
- Die Anzahl der folgenden Team-Daten-Zeilen wird in Feld 6 (Teamcount) angegeben.
- Die Checksumme ist die Anzahl aller Zeichen in allen Teamdaten-Feldern, inkl Trennzeichen (entsprechend Summe der Zeilenlängen bei Ansi-Notation ohne CRLF).
- Die Anzahl der Zeichen kann im Feld 7 (Checksumme) angegeben werden. Soll keine Prüfung vorgenommen werden, ist "0" zu verwenden
 
Zeile 0:Feld 0:  DogSportOpenTxData' Fester Text: "DogSportOpenTxData"
Feld 1:  Sportart' "AGI" oder "ROB" oder "HOP" oder "THS"
Feld 2:  Version' Versionsnummer: 1.00
Feld 3:  Separator' AsciiNummer des verwendeten Trennzeichens im Teamdatenblock
Feld 4:  USER (Absenderkennung)' Freier Text
Feld 5:  PASS (Absenderkennung)' Freier Text
Feld 6:  Teamcount' Anzahl der übermittelten Teams 1...999
Feld 7:  Checksumme' Anzahl aller Zeichen aller Teamdaten (inkl. Trennzeichen, ohne CRLF), alternativ "0"
 
Beispiel:DogSportOpenTxData;ROB;1.00;59;;;105;0;' Protokoll für Rally-Obedience in der Version 1.00
' Trennzeichen = ";" (ASC=59)
' Absenderkennung nicht angewendet
' 105 Teamdaten-Zeilen folgen
' eine Checksummen-Prüfung wird nicht gewünscht
' Es obliegt dem Empfänger diese Daten anzunehmen oder abzulehnen.
 
Seitenanfang


DETAILS - BLOCK 2, TEAMDATEN (jedes Feld ist abzuschließen mit dem Ascii-Zeichen, welches in Zeile 0, Feld 3 angegeben wurde, auch das letzte Feld)
 
- Jede Team-Daten-Zeile beinhaltet EIN Team, bestehend aus HF und HD, mit ALLEN Meldedaten zu EINER Veranstaltung,
   bestehend aus einem oder mehreren Turniertagen. Mithin kommt jedes Team nur einmal im File vor. Zu beachten ist aber,
   dass EIN Hund mit EINEM HF an zwei (Turnier-)Tagen für zwei Verbände starten kann. Mithin ist EIN Team die Zusammen-
   setzung aus Mitgliedsnummer + Chipnummer + HD-Verband. Die gleiche Mitgliedsnummer mit der gleichen Chipnummer
   aber einem anderen HD-Verband, ist ein weiteres Team.
 
Zeile 1 bis 999:Feld 00:  HD-Rufname' Hier ist der tatsächliche Rufname gemeint, keine Kombination mit dem Zwingernamen oder Angaben in Klammern o.ä.
Feld 01:  HD-Zwingername' Vollständiger Zwingername
Feld 02:  HD-Rasse' Zur Vereinheitlichung empfielt sich die anliegende Rassenliste nach FCI/VDH Definition
Feld 03:  HD-Wurftag' tt.mm.jjjj
Feld 04:  HD-Impfschutz gültig bis' tt.mm.jjjj
Feld 05:  HD-LB-Nummer'
Feld 06:  HD-Chipnummer' Keine Buchstaben, keine Leerzeichen, nur die 15-stellige Transpondernummer des Chips
Feld 07:  HD-Verband' Ein Element aus der anliegenden Verbandsliste
Feld 08:  HD-Größe' In ganzen Zentimetern oder "S", "M", "I", "L"
Feld 09:  HD-Geschlecht' "W"=weiblich   "M"=männlich
Feld 10:  HD-Einmessen' "0"=ist eingemessen   "1"=muss eingemessen werden
Feld 11...19:' HD-AUX
 
Feld 20:  HF-Vorname' Lediglich der Anfangsbuchstabe in Großschreibung
Feld 21:  HF-Nachname' Lediglich der Anfangsbuchstabe in Großschreibung. Titelangaben wie "Dr."/"Prof."/"Ing." sind zu vermeiden
Feld 22:  HF-Geburtsdatum' tt.mm.jjjj
Feld 23:  HF-Mailadresse'
Feld 24:  HF-Telefon-Nr.'
Feld 25:  HF-Mitgliedsnr.'
Feld 26:  HF-Verein'
Feld 27:  HF-Verband'
Feld 28:  HF-Geschlecht' "W"=weiblich   "M"=männlich
Feld 29...39:' HF-AUX
 
Feld 40:  VDH-TEAM-ID' sofern bekannt
 
Feld 41:  Para-Team' Jede Form der fünf möglichen Anpassung wird repräsentiert durch eine "1" an einer bestimmten Position:
' "00000" entspricht somit "keine Teamanpassung"
' "10000" repräsentiert die Anpassung "Gehbehinderung HF"
' "01000" repräsentiert die Anpassung "Kein Tempo"
' "00100" repräsentiert die Anpassung "Rollstuhl"
' "00010" repräsentiert die Anpassung "Sehbehinderung HF"
' "00001" repräsentiert die Anpassung "Sehbehinderung HD"
' Die Anpassungen untereinander haben Beziehungen. Entsprechend der PO schließt eine "Gehbehinderung HF" "kein Tempo" ein.
' "Kein Tempo" schließt aber eine "Gehbehinderung HF" nicht ein. Ob oder in welcher Form Kombinationen von Anpassungen,
' die nicht dem RO-Reglement entsprechen, verarbeitet werden, obliegt dem Empfänger.
 
Feld 42...49:' TE-AUX
 
Feld 50:  Meldestring' Der Meldestring eines Teams besteht (beim RO) aus 20 Zeichen "0" oder "1" pro Veranstaltungstag (mithin pro Turnier).
' Jedes der 20 Zeichen steht für einen Parcours. Die Aux-Positionen sind vorgesehen für zu erwartende, weitere Unterteilungen im ROIC.
' Eine "0" repräsentiert KEINE MELDUNG für einen Parcours / eine "1" repräsentiert eine Meldung für einen Parcours.
' Die ersten 20 Zeichen stehen für den ersten Tag der Veranstaltung, die zweiten zwanzig Zeichen für den zweiten Tag usw.
' Die Tage, also die 20-Zeichen-Blöcke, werden nicht getrennt, also fortlaufend geschrieben und interpretiert.
' Mithin muss die Anzahl der Zeichen im Feld 50 ohne Rest duch 20 Teilbar sein.
' Leserichtung der 20-Zeichen-Blöcke von links nach rechts
' Rally-Obedience:
' Zeichen-Position   1: Meldung in Parcours RO-B
' Zeichen-Position   2: Meldung in Parcours RO-1
' Zeichen-Position   3: Meldung in Parcours RO-2
' Zeichen-Position   4: Meldung in Parcours RO-3
' Zeichen-Position   5: Meldung in Parcours RO-S
' Zeichen-Position   6: Meldung in Parcours ROIC
' Zeichen-Position   7: AUX
' Zeichen-Position   8: AUX
' Zeichen-Position   9: AUX
' Zeichen-Position 10: AUX
' Zeichen-Position 11: AUX
' Zeichen-Position 12: AUX
' Zeichen-Position 13: AUX
' Zeichen-Position 14: AUX
' Zeichen-Position 15: AUX
' Zeichen-Position 16: AUX
' Zeichen-Position 17: AUX
' Zeichen-Position 18: AUX
' Zeichen-Position 19: AUX
' Zeichen-Position 20: AUX
' Beispiel:
' (offenbar eine 3-Tages-Veranstaltung, da 60 Zeichen)
' 001000000000000000000010000000000000000000010100000000000000
' Meldung am Tag 1 für: RO-2
' Meldung am Tag 2 für: RO-2
' Meldung am Tag 3 für: RO-3 und ROIC
' Das Protokoll beurteilt nicht die Regelkonformität von Meldungen. Wie mit unzulässigen Daten umzugehen ist,
' entscheidet der Empfänger.
 
Feld 51:  Meldestatus' Der Meldestatus besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=nicht gemeldet / 1= gemeldet / 2=bestätigt / 3=auf Warteliste
' 0123
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: nicht gemeldet ("0" = nicht gemeldet am Tag 1)
' Tag 2: gemeldet ("1" = möchte starten am Tag 2)
' Tag 3: bestätigt ("2" = startet am Tag 3)
' Tag 4: auf Warteliste ("3" = startet ggf. am Tag 4)
 
Feld 52:  Mannschaftsname' Sofern Mannschaften meldbar sind. Eine Unterscheidung nach Tagen für ein einzelnes Team ist nicht vorgesehen.
 
Feld 53:  Mannschafts-Meldung' Die Mannschaftsmeldung besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=nicht gemeldet / 1=gemeldet
' Beispiel:
' 1010
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: Startet in der Mannschaft
' Tag 2: Startet NICHT in der Mannschaft
' Tag 3: Startet in der Mannschaft
' Tag 4: Startet NICHT in der Mannschaft
 
Feld 54:  Helfer-Information' Die Helfer-Information besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=steht NICHT als Helfer zur Verfügung / 1=steht als Helfer zur Verfügung / 2=ist als Helfer bestätigt
' Beispiel:
' 0012
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: Steht NICHT als Helfer zur Verfügung
' Tag 2: Steht NICHT als Helfer zur Verfügung
' Tag 3: Steht als Helfer zur Verfügung
' Tag 4: Ist als Helfer bestätigt
 
Feld 55:  Camping-Information' Die Camping-Information besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' Jede Ziffer repräsentiert die Art des angemeldeten Campings.
' 0=keine Camping / 1=Zelt klein / 2=Zelt gross / 3=PKW mit Hänger / 4=Wohnmobil klein / 5=Wohnmobil groß / usw...
' Eine konkrete Definition was "klein" oder "groß" beinhaltet, ist (bisher) nicht definiert
' Beispiel:
' 0145
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: kein Camping
' Tag 2: Camping, kleines Zelt
' Tag 3: Camping, Wohnmobil klein
' Tag 4: Camping, Wohnmobil groß
 
Feld 56:  Bezahltes Startgeld' Insgesamt bisher bezahltes Startgeld, Betrag in Cent, für das Team (NICHT den HF), alle Tage
' Beispiel:
' 4560
' entspricht 45,60 Euro
 
Feld 57:  Startgeld-Status' Der Startgeld-Status besteht aus EINEM Zeichen für alle Tage:
' 0=Startgeld Status nicht eingepflegt
' 1=Startgeld insgesamt unvollständig
' 2=Startgeld insgesamt vollständig
' Beispiel:
' 1
' Startgeld insgesamt unvollständig
 
Feld 58...59' AUX für Meldungen
 
Feld 60...79' AUX für weitere Imformationen
 
 
Beispiel einer(Feld   0...19): Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;0;;;;;;;;;;
Teamzeile: (Feld 20...39): Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;
(Feld 40...49): ;0;;;;;;;;;
(Feld 50...59): 00100000000000000000001000000000000000000001010000000000000000001000000000000000;1223;Lustige Truppe;1010;0012;0145;4560;1;;;
(Feld 60...79): ;;;;;;;;;;;;;;;;;;;;
 
Seitenanfang


DETAILS - BLOCK 3, FOOTER
 
Letzte Zeile:[EOF]' Fester Text: "[EOF]"
 
Seitenanfang


BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ";" UND OHNE ABSENDERKENNUNG:
 
DogSportOpenTxData;ROB;1.00;59;;;1;341;
Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;;;;;;;;;;; Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;0;;;;;;;;;00000000000000000000001000000000000000000001010000000000000000001000000000000000; 0123;;1010;0012;0145;4560;1;;;;;;;;;;;;;;;;;;;;;;;
[EOF]
 
Seitenanfang



Im RO-Control II werden folgende Felder ausgewertet:

Zeile 0:Feld 0: DogSportOpenTxData ' Pflichtfeld: Inhalt: "DogSportOpenTxData"
Feld 1: Sportart ' Pflichtfeld: Inhalt: "ROB"
Feld 2: Version ' Pflichtfeld: Inhalt: "1.00"
Feld 3: Separator ' Pflichtfeld: Inhalt: frei wählbar / 1 bis 255
Feld 4: USER (Absenderkennung)' Pflichtfeld: Inhalt: zwischen 5 und 10 Zeichen
Feld 6: Teamcount ' Pflichtfeld: Inhalt: zwischen 1 und 999, muß mit der Anzahl der Teamdaten-Zeilen übereinstimmen
Feld 7: Checksumme ' Pflichtfeld: Inhalt: "0" oder übereinstimmende Anzahl der Zeichen aller Teamdaten (inkl. Trennzeichen, ohne CRLF, ANSI-Notation)
Abweichende Angaben verursachen das Ablehnen des kompletten Files mit Fehlerangabe.
 
Zeile 1..999:Feld 00: HD-Name ' Pflichtfeld: Inhalt: 2 bis 15 Zeichen
Feld 06: HD-Chipnummer ' Pflichtfeld: Inhalt: 15 Ziffern
Feld 08: HD-Größe ' Pflichtfeld. Inhalt: zwischen 10 und 150 in ganzen cm
 
Feld 20: HF-Vorname ' Pflichtfeld: Inhalt: 2 bis 20 Zeichen
Feld 21: HF-Nachname ' Pflichtfeld: Inhalt: 2 bis 25 Zeichen
Feld 22: HF-Geburtsdatum ' Pflichtfeld: Muss ein existierendes Datum sein. Das resultierende Alter (am Veranstaltungstag) muss zwischen 5 und 100 Jahren sein.
Feld 23: HF-Mailadresse ' Kannfeld: Inhalt: 0 bis 50 Zeichen
Feld 24: HF-Telefonnr. ' Kannfeld: Inhalt: 0 bis 20 Zeichen
Feld 25: HF-Mitgliedsnr. ' Kannfeld: Inhalt: 0 bis 18 Zeichen
Feld 26: HF-Verein ' Kannfeld: Inhalt: 0 bis 30 Zeichen
Feld 27: HF-Verband ' Kannfeld: Inhalt: 0 bis 10 Zeichen
 
Feld 41: PARA-Team
' Pflichtfeld: Inhalt:"00000" / "00010" / "00100" / "00110" / "01000" / "11000"
"00001" / "00011" / "00101" / "00111" / "01001" / "11001"
Feld 50: Meldestring ' Pflichtfeld: Technische Prüfung: min 20, max 160 Zeichen / Feldlänge mod 20 = 0 / erlaubte Zeichen = "0" oder = "1"
Feld 51: Melde-Status ' Pflichtfeld: min 1, max 8 Zeichen / erlaubte Zeichen = "0", "1", "2", "3"
Feld 56: bezahltes Startgeld ' Pflichtfeld wenn Startgeld-Status ungleich 0 / max 5 Ziffern
Feld 57: Startgeld-Status ' Pflichtfeld wenn Startgeld ungleich 0 / erlaubte Zeichen "0", "1", "2"
 
Abweichende Angaben verursachen das Ablehnen des Teams mit Fehlerangabe.
Zusätzliche Angaben werden nicht ausgewertet.
Widersprüchliche Meldeangaben führen ebenfalls zum Ablehnen eines Teams:
- z.B. Parcoursmeldung mit Status "0" am selben Tag
- z.B. Keine Parcoursmeldungen aber Status <> "0" am selben Tag
 
Letzte Zeile:Footer ' Pflichtfeld: Inhalt: "[EOF]"
Abweichende Angaben verursachen das Ablehnen des kompletten Files.
 
Seitenanfang


BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ";" UND OHNE ABSENDERKENNUNG:
 
DogSportOpenTxData;ROB;1.00;59;;;1;320;
Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;;;;;;;;;;;Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;0;;;;;;;;;00100000000000000000001000000000000000000001010000000000000000001000000000000000;0223;;;0012;0145;4560;1;;;;;;;;;;;;;;;;;;;;;;;
[EOF]
 
Das File würde komplett abgelehnt, da keine Absenderkennung angegeben ist.
Die Teamzeile würde abgelehnt, da am Tag 1 eine Meldung RO-2 vorliegt, aber der Status am Tag 1 "0" (keine Meldung) ist.
 
Seitenanfang


ANHANG RASSENLISTE:  
Affenpinscher Afghanischer Windhund Airedale Terrier Akita
Alaskan Malamute Alpenländische Dachsbracke American Cocker Spaniel American Staffordshire Terrier
Appenzeller Sennenhund Ariégeois Australian Cattle Dog Australian Kelpie
Australian Shepherd Australian Silky Terrier Australian Terrier Barbet
Basset Hound Bayerischer Gebirgsschweißhund Beagle Bearded Collie
Beauceron Bedlington Terrier Belgischer Griffon Belgischer Schäferhund
Bergamasker Hirtenhund Berger de Picardie Berger des Pyrénées Berner Sennenhund
Bernhardiner Bichon à poil frisé Bobtail Bolonka Zwetna
Bordeauxdogge Border Collie Border Terrier Boston Terrier
Bouvier des Ardennes Bouvier des Flandres Brandlbracke Brasilianischer Terrier
Briard Broholmer Bull Terrier Bulldog
Bullmastiff Cairn Terrier Cane Corso Italiano Cao da Serra de Aires
Cao de Agua portugues Carpatin Cavalier King Charles Spaniel Chesapeake Bay Retriever
Chihuahua Chodsky Pes Collie Coton de Tuléar
Curly Coated Retriever Dackel Dalmatiner Danish-Swedish Farmdog
Deutsch Drahthaar Deutsch Kurzhaar Deutsch Langhaar Deutsche Dogge
Deutscher Boxer Deutscher Jagdterrier Deutscher Pinscher Deutscher Schäferhund
Deutscher Spitz Deutscher Wachtelhund Dobermann English Cocker Spaniel
English Pointer English Setter English Springer Spaniel English Toy Terrier
Entlebucher Sennenhund Epagneul Breton Eurasier Finnischer Lapphund
Flat Coated Retriever Fox Terrier Golden Retriever Gonczy Polski
Gordon Setter Gos d'Atura Catalá Grand Basset Griffon Vendéen Großer Schweizer Sennenhund
Hannoverscher Schweißhund Havaneser Holländischer Schäferhund Hovawart
Hrvatski Ovcar Irish Setter Irish Soft Coated Wheaten Terrier Irish Terrier
Irish Wolfhound Islandhund Italienisches Windspiel Jack Russell Terrier
Japan Spitz Karelischer Bärenhund Kerry Blue Terrier King Charles Spaniel
Kritikos Lagonikos Kromfohrländer Labrador Retriever Laekenois
Lagotto Romagnolo Lakeland Terrier Lancashire Heeler Landseer
Leonberger Lhasa Apso Löwchen Magyar Vizsla
Malteser Manchester Terrier Miniature American Shepherd Miniature Bull Terrier
Mix Mops Mudi Münsterländer
Nederlandse Kooikerhondje Neufundländer Norfolk Terrier Norwegischer Elchhund
Norwegischer Lundehund Norwich Terrier Nova Scotia Duck Tolling Retriever Österreichischer Pinscher
Papillon Parson Russell Terrier Perro de Agua Español Phalene
Pharaoh Hound Podenco Andaluz Podenco Canario Podengo Portugues
Polski Owczarek Nizinny Prager Rattler Presa Canario Pudel
Pudelpointer Puli Pumi Pyrenäen-Berghund
Rhodesian Ridgeback Rottweiler Russischer Schwarzer Terrier Samojede
Schapendoes Schipperke Schnauzer Segugio Maremmano
Shetland Sheepdog Shiba Shih Tzu Siberian Husky
Silken Windsprite Spinone Italiano Staffordshire Bull Terrier Steirische Rauhhaarbracke
Tibet Spaniel Tibet Terrier Tschechoslowakischer Wolfhund Västgötaspets
Weimaraner Weißer Schweizer Schäferhund Welsh Corgi Cardigan Welsh Corgi Pembroke
Welsh Springer Spaniel West Highland White Terrier Welsh Terrier Westfalenterrier
Whippet Xoloitzcuintle Yorkshire Terrier Zwergpinscher
Seitenanfang