Schnittstellen Definition des "Open-Transport"-Protokoll für THS (Version 1.00) Technische Regeln: - Die Übermittlung findet prinzipiell als Text-File im CSV-Format (ANSI Kodierung) mit wählbarem Trennzeichen statt. - Abgeschlossen wird eine Zeile mit CRLF. - Der Name des Files gibt sinnvollerweise Aufschluss über den Namen des Turniers. - Das File beinhaltet drei Blöcke: Block 1 ist die erste Zeile des Files (Header, Zeile 0), bestehend aus organisatorischen Daten in acht Feldern (0...7), jeweils abgeschlossen durch ein Semikolon. Block 2 besteht 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 3 ist die letzte Zeile des Files und besteht aus dem festen Text "[EOF]". 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. - Nicht jede der Angaben ist in jeder Sportart erforderlich BLOCK 1, HEADER: jedes Feld ist abzuschließen mit ";", auch das letzte Feld Zeile 0: Feld 0: DogSportOpenTxData ' Fester Text 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" Das verwendete Trennzeichen für den folgenden Teamdatenblock, Feld 3 per Ascii-Nummer einstellbar. Der Sender muss sicherstellen, dass innerhalb von freien Texten, Namen usw, das Trennzeichen nicht vorkommt. Die Anzahl der 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) Die Anzahl der Zeichen kann im Feld 7 (Checksum) angegeben werden. Soll keine Prüfung vorgenommen werden, ist "0" zu verwenden - Beispiel Zeile 0: DogSportOpenTxData;THS;1.00;59;;;105;0; (Protokoll für THS in der Version 1.00 / Trennzeichen = ";" / 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. BLOCK 2, TEAMDATEN: jedes Feld ist abzuschließen mit dem Ascii-Zeichen, welches in Zeile 0, Feld 3 angegeben wurde, auch das Letzte. - Jede Team-Daten-Zeile beinhaltet EIN Team, bestehend aus HF und HD, mit ALLEN Meldedaten, bestehend aus einem Turniertag. 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-Leistungsbuch-Nummer ' Feld 06: HD-Chipnummer ' keine Buchstaben, keine Leerzeichen, nur die 15-stellige Transpondernummer des Chips Feld 07: HD-Verband ' entsprechend der anliegenden Verbandsliste Feld 08: HD-Größe ' in ganzen cm 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ßbuchstaben: Gregor Feld 21: HF-Nachname ' Lediglich der Anfangsbuchstabe in Großbuchstaben: van de Graf / Titelangaben wie Dr./Prof./Ing. sind zu vermeiden Feld 22: HF-Geburtsdatum ' tt.mm.jjjj Feld 23: HF-Mailadresse ' Feld 24: HF-Telefonnummer ' Feld 25: HF-Mitgliedsnummer ' 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 ' "0"=kein Parateam / "1"=Para-R / "2"=ParaRE / "3"=ParaB / "4"=ParaS Feld 42..49 ' TE-Aux Feld 50: Meldestring ' THS: ' Der Meldestring eines Teams besteht beim THS aus 20 Zeichen "0" / "1" / "2" / "3". ' Jedes der 20 Zeichen steht für einen 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-Blöcke von links nach rechts ' Zeichen Position 1: Parcours VK1 ' Zeichen Position 2: Parcours VK2 ' Zeichen Position 3: Parcours VK3 ' Zeichen Position 4: Parcours DK ' Zeichen Position 5: Parcours HL ' Zeichen Position 6: Parcours SVK ' Zeichen Position 7: Parcours CSC-Einzel ' Zeichen Position 8: Parcours CSC-Mannschaft ' Zeichen Position 9: Parcours SHY ' Zeichen Position 10: Parcours CC-1 ' Zeichen Position 11: Parcours CC-2 ' Zeichen Position 12: Parcours CC-3 ' Zeichen Position 13: Parcours CC-4 ' Zeichen Position 14: Parcours CC-5 ' Zeichen Position 15: Parcours CC-6 ' Zeichen Position 16: Parcours CC-7 ' Zeichen Position 17: Parcours CC-8 ' Zeichen Position 18, 19 und 20 sind zwangsläufig "0" ' Beispiel: ' 01230000020000000000 ' Meldung in VK2, bestätigte Meldung in VK3, Meldung in DK auf Warteliste, bestätigte Meldung in CC-1 ' Das Protokoll beurteilt nicht die Sinnhaftigkeit von Meldungen. Wie mit den Daten umzugehen ist, entscheidet der Empfänger. Feld 51: Meldestatus ' Dieses Feld ist nur erforderlich, wenn der Status nicht im Meldestring enthalten ist. ' Dies ist abhängig von der Möglichkeit, die einzelnen Meldungen separat bestätigen zu können. ' Ist dies der Fall, muss der Meldestatus aus 20 Zeichen, jeweils mit dem Inhalt "0", "1", "2", "3", bestehen. ' Ist dies nicht der Fall und ein Team kann insgesamt bestätigt werden, besteht der Meldestatus aus einem Zeichen "0", "1", "2", "3" Feld 52..53 'Im THS nicht vergeben Feld 54: Helfer-Information ' Die Helfer-Information besteht aus einem Zeichen "0", "1", "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 einem Zeichen "0", "1", "2", "3", "4", "5" ' Die 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 ' Die Startgeld Status-Information besteht aus EINEM Zeichen "0", "1", "2" ' 0=Startgeld Status nicht eingepflegt Alternative Verwendung: Team hat Preisgeldgruppe 1 ' 1=Startgeld insgesamt unvollständig Alternative Verwendung: Team hat Preisgeldgruppe 2 ' 2=Startgeld insgesamt vollständig Alternative Verwendung: Team hat Preisgeldgruppe 3 ' In Abhängigkeit der Möglichkeiten vom Sender und Empfänger 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 65: 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 70: Staffelposition ' CSC-M Feld 71: Staffelposition ' SHY Feld 72: Staffelposition ' CC-01 Feld 73: Staffelposition ' CC-02 Feld 74: Staffelposition ' CC-03 Feld 75: Staffelposition ' CC-04 Feld 76: Staffelposition ' CC-05 Feld 77: Staffelposition ' CC-06 Feld 78: Staffelposition ' CC-07 Feld 79: Staffelposition ' CC-08 Beispiel EINER Teamdatenzeile mit Semikolon als Trennzeichen (Feld 0...19) : Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05.12.2048;LB4711;123456789012345;DVG;33;M;0;;;;;;;;; (Feld 20...49) : Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;;;;;;;;;; (Feld 50...59) : 01230000020000000000;;;;0;0;2500;2;;; (Feld 60...69) : MaNa-CSC;MaNa-SHY;Mana-CC-1;;;;;;;Mana-CC-8; (Feld 70...79) : 1;2;3;;;;;;;2; BLOCK 3, FOOTER: "[EOF]" 'Fester Text BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ASC59 UND OHNE ABSENDERKENNUNG: DogSportOpenTxData;THX;1.00;59;;;1;289; 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] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In Win-THS V6 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. Zeile 1...999 Feld 00: HD-Rufname ' Pflichtfeld: Inhalt: 2 bis 15 Zeichen Feld 02: HD-Rasse ' Kannfeld: Inhalt: 0 bis 20 Zeichen Feld 06: HD-Chipnummer ' Pflichtfeld: Inhalt 15 Ziffern. Beim Import werden Buchstaben und Leerzeichen entfernt. 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-Telefonnummer ' Kannfeld: Inhalt: 0 bis 20 Zeichen Feld 25: HF-Mitgliedsnummer ' Pflichtfeld: Inhalt: 2 bis 18 Zeichen. Beim Import werden Leerzeichen entfernt. 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-Team ' Pflichtfeld: Inhalt: "0" / "1" / "2" / "3" / "4" Feld 50: Meldestring ' Pflichteld: Inhalt: 20 Zeichen "0" / "1" / "2" / "3" ' Im Win-THS V6 werden sechs CC-Läufe unterstützt. Entsprechend werden nur die ersten 15 Positionen ausgewertet. Feld 56: Bezahltes Startgeld ' Pflichtfeld wenn Startgeld-Status angegeben ist. Inhalt "" oder max 5 Ziffern. Feld 57: Startgeld Status ' In Win-THS V6 wird die Alternative mit Startgeldgruppen verwendet. ' Pflichtfeld, wenn Startgeld nicht leer ist. ' Die Vollständigkeit des Startgeld wird im Programm errechnet. Feld 60..67 Mannschaftsnamen ' Im Win-THS V6 werden neben CSC-M und SHY nur sechs der acht möglichen CC-Läufe unterstützt. ' 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. Der Mannschaftsname wird ignoriert, wenn keine Meldung für diesen CC angegeben ist ' oder der betreffende CC im Programm nicht als Mannschaftslauf angelegt wurde. CSC-M und SHY sind per se Mannschaftläufe. Feld 70..77 Staffelposition ' Im Win-THS V6 werden neben CSC-M und SHY nur sechs der acht möglöchen CC-Läufe unterstützt. ' Mannschafts-CC's können nur aus 3 oder 4 oder 5 Staffelpositionen bestehen ' 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. Die Staffelposition wird ignoriert, wenn keine Meldung für diesen CC angegeben ist ' oder der betreffende CC im Programm nicht als Mannschaftslauf angelegt wurde. CSC-M und SHY sind per se Mannschaftlä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. Fehlende oder widersprüchliche Meldeangaben führen ebenfalls zum Ablehnen eines Teams: - z.B. SHY-Meldung mit fehlendem Mannschaftnamen oder leerem Staffelposition-Feld - unplausible Staffelpositionen: z.B. Position 3 bei einer SHY-Meldung Letzte Zeile: Feld 0: Footer 'Pflichtfeld. Inhalt "[EOF]" Abweichende Angaben verursachen das Ablehnen des kompletten Files. BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ASCII 59 UND OHNE ABSENDERKENNUNG: DogSportOpenTxData;THX;1.00;59;;;2;287; Hasso;;;;;;123456789012345;;;;;;;;;;;;;;Max;Mustermann;09.02.2000;;;MGL007;BVB;DFB;X;;;;;;;;;;;;;;;;;;;;;;01230000210000000000;;;;;;2500;2;;;MaNa-CSC;;MaNa-CC-1;;;;;;;;1;2;5;;;;;;;; [EOF] Das File würde komplett abgelehnt, da keine Absenderkennung angegeben ist. Das File würde komplett abgelehnt, da die Anzahl der Teamzeilen unzutreffend ist. Das File würde komplett abgelehnt, da eine Checksumme angegeben ist, diese aber nicht stimmt. Die Teamzeile würde abgelehnt, da das HF-Geschlecht nicht korrekt angegeben ist. Die Teamzeile würde abgelehnt, da eine Meldung im SHY vorliegt, aber kein Mannschaftsname angegeben ist. Die Teamzeile würde abgelehnt, da eine Meldung im CC-1 vorliegt, aber eine nicht vorkommende Staffelposition "5" angegeben ist. Dabei ist der Meldetatus nicht von Belang. (Vorausgesetzt, das Turnier ist mit einem CC-1 im Staffelmodus < 5 angelegt. Ist CC-1 als Einzelwettkampf angelegt, tritt kein Fehler auf.) ANHANG VERBANDSLISTE: ADRK BCD BK BLV CfBrH DBC dhv DKBS DMC DSV DV DVG HSVRM IBC KFT PSK RSV RZV SGSV SV SWHV VDP Ausland