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

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



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.
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;THS;1.00;59;;;105;0;' Protokoll für THS 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,
   Mithin kommt jedes Team nur einmal im File vor.
   
 
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
Feld 09:  HD-Geschlecht' "W"=weiblich   "M"=männlich
Feld 10:  HD-Einmessen' "0"=ist eingemessen   "1"=muss eingemessen werden
Feld 11...19:' AUX für HD
 
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:' AUX für HF
 
Feld 40:  VDH-TEAM-ID' sofern bekannt
Feld 41:  Para-Team' "0" = kein Parateam / "1"=Para-R / "2"= Para-RE / "3"=Para-B / "4"=Para-S
Feld 42...49:' AUX für Team
 
Feld 50:  Meldestring' Der Meldestring eines Teams besteht (beim THS) aus 20 Zeichen "0" od. "1" od. "2" od. "3" .
' Jedes der 20 Zeichen steht für einen möglichen Parcours.
' Eine "0" repräsentiert KEINE Meldung für einen Parcours.
' Eine "1" repräsentiert eine Meldung für einen Parcours.
' Eine "2" repräsentiert eine bestätigte Meldung für einen Parcours.
' Eine "3" repräsentiert eine Meldung auf Warteliste für einen Parcours.
' Leserichtung der 20-Zeichen von links nach rechts
' Zeichen-Position   1: Meldung in Parcours VK1
' Zeichen-Position   2: Meldung in Parcours VK2
' Zeichen-Position   3: Meldung in Parcours VK3
' Zeichen-Position   4: Meldung in Parcours DK
' Zeichen-Position   5: Meldung in Parcours HL
' Zeichen-Position   6: Meldung in Parcours SVK
' Zeichen-Position   7: Meldung in Parcours CSC-Einzel
' Zeichen-Position   8: Meldung in Parcours CSC-Mannsch.
' Zeichen-Position   9: Meldung in Parcours SHY
' Zeichen-Position 10: Meldung in Parcours CC-1
' Zeichen-Position 11: Meldung in Parcours CC-2
' Zeichen-Position 12: Meldung in Parcours CC-3
' Zeichen-Position 13: Meldung in Parcours CC-4
' Zeichen-Position 14: Meldung in Parcours CC-5
' Zeichen-Position 15: Meldung in Parcours CC-6
' Zeichen-Position 16: Meldung in Parcours CC-7
' Zeichen-Position 17: Meldung in Parcours CC-8
' Zeichen-Position 18: Meldung AUX
' Zeichen-Position 19: Meldung AUX
' Zeichen-Position 20: Meldung AUX
' Beispiel:
' 01230000020000000000
' Meldung in VK2
' bestätigte Meldung in VK3
' Meldung in DK auf Warteliste
' bestätigte Meldung im CC-1
' Das Protokoll beurteilt nicht die Regelkonformität von Meldungen. Wie mit unzulässigen Daten umzugehen ist,
' entscheidet der Empfänger.
 
Feld 51:  Meldestatus ' Dieses Feld ist nur erforderlich, wenn der Meldestatus nicht im Meldestring enthalten ist.
' Dies ist abhängig von der Möglichkeit, die einzelnen Meldungen separat bestätigen zu können.
 
Feld 52..53:   ' Die Mannschaftsnamen werden im THS an anderer Stelle verwaltet.
 
Feld 54:  Helfer-Information ' Die Helfer-Information besteht aus den Zeichen "0" od. "1" od."2".
' 0=steht NICHT als Helfer zur Verfügung / 1=steht als Helfer zur Verfügung / 2=ist als Helfer bestätigt
 
Feld 55:  Camping-Information' Die Camping-Information besteht aus den Zeichen "0" od. "1" od. "2" od. "3" od. "4" od. "5".
' 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
 
Feld 56:  Bezahltes Startgeld' Insgesamt bisher bezahltes Startgeld, Betrag in Cent, für das Team (NICHT den HF)
' Beispiel:
' 4560
' entspricht 45,60 Euro
 
Feld 57:  Startgeld-Status ' Der Startgeld-Status besteht aus einem Zeichen "0" od. "1" od. "2":
' 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:  Mannschaftsname ' CSC-M
Feld 61:  Mannschaftsname ' SHY
Feld 62:  Mannschaftsname ' CC-1
Feld 63:  Mannschaftsname ' CC-2
Feld 64:  Mannschaftsname ' CC-3
Feld 65:  Mannschaftsname ' CC-4
Feld 66:  Mannschaftsname ' CC-5
Feld 67:  Mannschaftsname ' CC-6
Feld 68:  Mannschaftsname ' CC-7
Feld 69:  Mannschaftsname ' CC-8
 
Feld 60:  Staffelposition ' CSC-M
Feld 61:  Staffelposition ' SHY
Feld 62:  Staffelposition ' CC-1
Feld 63:  Staffelposition ' CC-2
Feld 64:  Staffelposition ' CC-3
Feld 65:  Staffelposition ' CC-4
Feld 66:  Staffelposition ' CC-5
Feld 67:  Staffelposition ' CC-6
Feld 68:  Staffelposition ' CC-7
Feld 69:  Staffelposition ' CC-8
 
Beispiel einer (Feld   0...19): Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05.12.2048;LB4711;123456789012345;DVG;33;M;0;;;;;;;;;;
Teamzeile: (Feld 20...49): Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;;;;;;;;;;
(Feld 50...79): 01230000020000000000;;;;0;0;2500;2;;;;;MaNa-CC1;;;;;;;;;;1;;;;;;;;
 
Seitenanfang


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


BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ";" UND OHNE ABSENDERKENNUNG:
 
DogSportOpenTxData;THS;1.00;59;;;1;341;
Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05.12.2048;LB4711;123456789012345;DVG;33;M;0;;;;;;;;;;Max;Mustermann;09.02.2000;abc@abc.de;017105150815; MGL007;BVB;DFB;W;;;;;;;;;;;;;;;;;;;;;;01230000020000000000;;;;0;0;2500;2;;;MaNa-CSC;MaNa-SHY;Mana-CC-1;;;;;;;Mana-CC-8;1;2;3;;;;;;;2;
[EOF]
 
Seitenanfang



Im Im Win-THS werden folgende Felder ausgewertet:

Zeile 0:Feld 0: DogSportOpenTxData ' Pflichtfeld: Inhalt: "DogSportOpenTxData"
Feld 1: Sportart ' Pflichtfeld: Inhalt: "THS"
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 02: HD-Rasse ' Kannfeld: Inhalt: 0 bis 20 Zeichen
Feld 06: HD-Chipnummer ' Pflichtfeld: Inhalt: 15 Ziffern
 
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 3 und 110 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. ' Pflichtfeld: Inhalt: 2 bis 18 Zeichen
Feld 26: HF-Verein ' Pflichtfeld: Inhalt: 2 bis 30 Zeichen
Feld 27: HF-Verband ' Pflichtfeld: Inhalt: 2 bis 10 Zeichen
Feld 28: HF-Geschlecht ' Pflichtfeld: Inhalt: "W" / "M"
Feld 31: Para-Teams ' Pflichtfeld: Inhalt: "0" / "1" / "2" / "3" / "4"
 
Feld 50: Meldestring ' Pflichtfeld: Technische Prüfung: 20 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"
 
Feld 60...67 ' In Win-THS V6 werden neben CSC-M und SHY nur sechs der 8 möglichen CC-Läufe unterstützt.
Mannschaftsnamen ' Inhalt: 3 bis 20 Zeichen
' Ist im Programm ein CC als Mannschaftslauf angelegt und eine entsprechende Meldung in diesem CC gesetzt,
' ist das jeweilige Feld ein Pflichtfeld. In jedem anderen Fall wird ein Mannschaftsname ignoriert.
 
Feld 70...77 ' In Win-THS V6 werden neben CSC-M und SHY nur sechs der 8 möglichen CC-Läufe unterstützt.
Staffelpositionen ' Ferner werden in den CC-Laufen nur 3 oder 4 oder 5 Staffelpositionen unterstützt.
' Inhalt: "0" / "1" / "2" / "3" / "4" / "5"
' Ist im Programm ein CC als Mannschaftslauf angelegt und eine entsprechende Meldung in diesem CC gesetzt,
' ist das jeweilige Feld ein Pflichtfeld. In jedem anderen Fall die Staffelpositions-Angabe ignoriert.
' CSC-M und SHY sind per se Mannschaftsläufe. Ist die Staffelposition nicht bekannt oder handelt es sich um ein
' Ersatzteam, kann als Position eine "0" angegeben werden. Zu beachten ist aber, dass bei mehreren "0"-Positionen in einer
' Mannschaft, in der Meldestelle zusätzliche Arbeit entsteht.
 
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. SHY-Meldung mit fehlendem Mannschaftsnamen oder leerem Staffelpositionsfeld.
- z.B. unplausible Staffelpositionen: z.B. Position 3 in einer SHY-Meldung
 
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;THS;1.00;59;;;1;320;
Hasso;;;;;;123456789012345;;;;;;;;;;;;;;Max;Mustermann;09.02.2000;;;MGL007;BVB;DFB;X;;;;;;;;;;;;;;;;;;;;;;01230000210000000000;;;;;;2500;2;;;MaNa-CSC;;MaNa-CC-1;;;;;;;;1;3;5;;;;;;;;
[EOF]
 
Das File würde komplett abgelehnt:
- keine Absenderkennung angegeben
- Checksumme erwünscht, aber nicht korrekt
Die Teamzeile würde abgelehnt:
- HF-Geschlecht nicht korrekt angegeben
- Parastatus nicht angegeben
- SHY-Meldung ohne Mannschaftsname
- SHY-Meldung mit unplausibler Staffelposition
 
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