Skip to content

API Endpunkte

Für Entwicklerinformationen siehe EntwicklerInformationen Für Fehlerbehandlung siehe Fehlerbehandlung Für Testinformationen siehe Testing Für Konfigurationsdetails siehe Konfiguration

Export API

1. Personen (/export/personen)

Beschreibung

Stellt Informationen über alle Personen im System bereit.

Request

Endpoint: GET /export/plz

Parameter
  • valid: Datumsbereich im Format DD.MM.YYYY-DD.MM.YYYY

Beispiel: 01.01.2025-31.12.2025

Response

[
  {
    "svid": "4e8cbe720ff5455597a03e49e536bdca",
    "anredeCd": null,
    "sexCd": "Male",
    "typCd": "Custodian",
    "sgid": 7,
    "name": "Tester",
    "vorname": "Damian",
    "adresse": "REDACTED",
    "plzFk": 4218868136,
    "gebDat": "REDACTED",
    "ahv": "REDACTED",
    "eMailGeschaeft": "REDACTED",
    "eMailPrivat": null,
    "telPrivat": "REDACTED",
    "telGeschaeft": null,
    "gueltigVon": null,
    "gueltigBis": null,
    "gv1Fk": "0",
    "gv2Fk": "0",
    "nestid": 9999,
    "voiceEnabled": false
  },
  // weitere
]
Struktur
[
  {
    "nestid": "<integer>",
    "sexCd": "Male",
    "svid": "<string>",
    "typCd": "Staff",
    "anredeCd": 111,
    "sgid": "<integer>",
    "name": "<string>",
    "vorname": "<string>",
    "adresse": "<string>",
    "plzFk": "<long>",
    "gebDat": "<dateTime>",
    "ahv": "<string>",
    "eMailGeschaeft": "<string>",
    "eMailPrivat": "<string>",
    "telPrivat": "<string>",
    "telGeschaeft": "<string>",
    "gueltigVon": "<dateTime>",
    "gueltigBis": "<dateTime>",
    "gv1Fk": "<string>",
    "gv2Fk": "<string>",
    "voiceEnabled": "<boolean>"
  },
  {
    "nestid": "<integer>",
    "sexCd": "Male",
    "svid": "<string>",
    "typCd": "Teacher",
    "anredeCd": 112,
    "sgid": "<integer>",
    "name": "<string>",
    "vorname": "<string>",
    "adresse": "<string>",
    "plzFk": "<long>",
    "gebDat": "<dateTime>",
    "ahv": "<string>",
    "eMailGeschaeft": "<string>",
    "eMailPrivat": "<string>",
    "telPrivat": "<string>",
    "telGeschaeft": "<string>",
    "gueltigVon": "<dateTime>",
    "gueltigBis": "<dateTime>",
    "gv1Fk": "<string>",
    "gv2Fk": "<string>",
    "voiceEnabled": "<boolean>"
  }
]

Personentypen

  • Student (Lernende)
  • Repräsentiert aktive Schüler im System
  • Benötigt mindestens eine aktive Klassenzuordnung
  • Kann mehreren Klassen gleichzeitig zugeordnet sein (z.B. Regelklasse und Förderklasse)

  • Teacher (Lehrpersonen)

  • Repräsentiert aktives Lehrpersonal
  • Benötigt mindestens eine aktive Anstellung oder Klassenzuordnung
  • Kann mehrere Anstellungen parallel haben, wird aber nur einmal auf dem Personen Endpunkt als Teacher angezeigt
  • Kann auch mehreren Klassen als Lehrperson zugeordnet sein

  • Staff (Personal)

  • Repräsentiert Verwaltungsmitarbeiter und Supportpersonal der Schulen
  • Benötigt mindestens eine aktive Personalanstellung

  • Custodian (Bezugspersonen)

  • Repräsentiert Erziehungsberechtigte und andere Bezugspersonen
  • Muss mindestens einem aktiven Lernenden zugeordnet sein
  • Beziehungstyp definiert die Art der Berechtigung (z.B. "Erziehungsberechtigt", "Notfallkontakt")
  • System verhindert Mehrfachzuordnungen der gleichen Bezugsperson

Gemeinsame Felder

  • ID (GUID): Eindeutige, unveränderliche Identifikation der Person
  • Typ: Definiert die Rolle und verfügbaren Funktionen im System
  • Name, Vorname: Werden für Anzeige und Sortierung verwendet
  • Geburtsdatum: Wird für Altersberechnungen und Validierungen benötigt
  • AHV-Nummer: Schweizer Sozialversicherungsnummer, muss Format 756.XXXX.XXXX.XX entsprechen
  • CustomVoiceEnabled: Steuert Zugriff auf Voice-Funktionen in angrenzenden Systemen von BKO
  • SGID: Schulgemeinde-Id, steuert die Abrechnung in angrenzenden Systemen von BKO
  • Kontaktdaten: E-Mail und Telefon können jeweils geschäftlich und privat hinterlegt werden

Validierungsregeln

  • AHV-Nummern
  • Format muss exakt 756.XXXX.XXXX.XX entsprechen
  • Erste drei Stellen sind immer "756" (Schweizer Landeskennzeichen)
  • Prüfziffer wird nach Modulo-11 Verfahren validiert

  • Gebietszuordnung

  • Jede Person muss einer aktiven Schuleinheit zugeordnet sein
  • Gebietscode des Gebiets mit Gebietstyp "Schule" (Code 14) haben
  • Zeitliche Überlappungen von Gebietszuordnungen sind nicht erlaubt

  • Bezugspersonen

  • Maximal zwei aktive Hauptbezugspersonen pro Lernenden (gv1Fk, gv2Fk)
  • Bezugsperson kann nicht sich selbst als Bezugsperson haben
  • Keine zirkulären Bezugsperson-Beziehungen erlaubt

  • Systemvalidierungen

  • SGID muss auf existierende Schuleinheit verweisen
  • PLZ muss im PLZ-Verzeichnis existieren
  • Alle Datumswerte müssen im Format YYYY-MM-DDT00:00:00 vorliegen

Besonderheiten

Basierend auf der Code-Analyse beschreibe ich die wichtigsten Eigenschaften und speziellen Verhaltensweisen des /export/personen Endpunkts:

Typen-Behandlung (TypCode)

  • Eine Person hat immer genau eine Rolle. Auch wenn sie im Quellsystem mehrere haben kann.
  • Prioritätsreihenfolge bei mehreren Rollen:
  • Nicht-Bezugsperson-Rollen haben Vorrang vor Bezugsperson
  • Wenn eine Person sowohl Personal als auch Lehrperson ist, wird sie als Lehrperson ausgewiesen.
  • Die Bezugsperson-Rolle wird nur beibehalten, wenn keine andere Rolle existiert

Datums-Behandlung

  1. Gültigkeitszeiträume

  2. Unterschiedliche Quellen für Start-/Enddaten je nach Personentyp:

csharp - Student: Verwendet Lernendedossier-Daten - Teacher: Verwendet Personaldossier-Daten - Staff: Verwendet Personaldossier-Daten - Custodian: Verwendet Beziehungs-Daten

  • Falls keine spezifischen Daten gefunden werden, wird das Erstellungsdatum der Person verwendet

Bezugspersonen-Behandlung

  • Jede Person kann bis zu zwei Bezugspersonen haben (gv1Fk, gv2Fk)
  • Wenn keine Bezugspersonen existieren, werden beide Werte auf "0" gesetzt

Adress-Behandlung

  • Gibt nur die "Hauptadresse" zurück, wenn verfügbar
  • Adressformat: strasse + ", " + plz + " " + ort
  • Wenn keine Hauptadresse existiert, wird ein leerer String zurückgegeben

Geschlecht-Mapping

- Male: Für GeschlechtCode.MALE
- Female: Für GeschlechtCode.FEMALE
- Legal: Für GeschlechtCode.JURIDICAL_PERSON
- Undefined: Für alle anderen Fälle

Anrede-Mapping

- HERR: Für "herr" (Groß-/Kleinschreibung egal)
- FRAU: Für "frau" (Groß-/Kleinschreibung egal)
- FIRMA: Für "firma" (Groß-/Kleinschreibung egal)
- null: Für alle anderen Fälle

Schulgemeinde-ID

  • Versucht die ID aus Gebiete.Code zu parsen
  • Gibt 0 zurück, wenn das Parsen fehlschlägt oder kein Code existiert

NEST-ID-Behandlung

  • Parst aus Fremdkey-String
  • Gibt 0 zurück, wenn das Parsen fehlschlägt oder kein Fremdkey existiert

Personen-Filterung

  • Verwaltet eindeutige Personen mit GUID als Schlüssel
  • Verhindert Duplikate in der Antwort
  • Behandelt Beziehungs-Mapping für Lernende und deren Bezugspersonen

2. Personen-Klassen-Semester (/export/pks)

Beschreibung

Verwaltet die zeitliche Zuordnung von Personen zu Klassen.

Request

Endpoint: GET /export/plz

Response

[
  {
    "svid": "b696f7b709914c63b97b97f31cb6adcc",
    "von": "2024-08-01T00:00:00",
    "bis": "2025-07-31T00:00:00",
    "schuleinheitId": "c534edee397c47ea8719097594d93e10",
    "schuljahrId": "25023823504e449a8fbf8794bb29e893",
    "semesterId": "119103a739944da1b5f17baec8b80c5b",
    "klasseId": "6a99381efcd94351a1dc96c1986e4179",
    "klassenplanId": "3552cbf5cd654c2d961fd96ad208c5df",
    "teilklasseId": "fa41094e90d8484ab7d1df4e4888bd18",
    "teilklassenplanId": "7459f4a8055d428397589183ca17ef68"
  },
  {
    "svid": "be5dca900e274341bdfcf9645bbcb315",
    "von": "2024-08-01T00:00:00",
    "bis": "2025-07-31T00:00:00",
    "schuleinheitId": "c534edee397c47ea8719097594d93e10",
    "schuljahrId": "25023823504e449a8fbf8794bb29e893",
    "semesterId": "119103a739944da1b5f17baec8b80c5b",
    "klasseId": "6a99381efcd94351a1dc96c1986e4179",
    "klassenplanId": "3552cbf5cd654c2d961fd96ad208c5df",
    "teilklasseId": "fa41094e90d8484ab7d1df4e4888bd18",
    "teilklassenplanId": "7459f4a8055d428397589183ca17ef68"
  }, 
  // weitere
]
Struktur
[
  {
    "klasseId": "<string>",
    "schuleinheitId": "<string>",
    "schuljahrId": "<string>",
    "semesterId": "<string>",
    "svid": "<string>",
    "teilklasseId": "<string>",
    "von": "<dateTime>",
    "bis": "<dateTime>",
    "klassenplanId": "<string>",
    "teilklassenplanId": "<string>"
  },
  {
    "klasseId": "<string>",
    "schuleinheitId": "<string>",
    "schuljahrId": "<string>",
    "semesterId": "<string>",
    "svid": "<string>",
    "teilklasseId": "<string>",
    "von": "<dateTime>",
    "bis": "<dateTime>",
    "klassenplanId": "<string>",
    "teilklassenplanId": "<string>"
  }
]

Besonderheiten

  • Schuljahrperioden → Semester → Schulklassen → Teilklassen → Personenzuteilungen
  • Jede Zuteilung hat einen definierten Gültigkeitszeitraum:
  • von: Startdatum der Zuteilung (Pflichtfeld)
  • bis: Enddatum der Zuteilung (optional)
    • Falls kein Startdatum vorhanden ist, wird DateTime.MinValue verwendet
  • Unterscheidet zwischen Klassenplan und Teilklassenplan:
  • klassenplanId: Identifiziert das Klassengefäss
  • teilklassenplanId: Identifiziert das Teilklassengefäss
  • Die Plan-IDs bleiben pro Stufe und Schulträger konstant
  • Unterstützt Mehrfachzuteilungen (eine Lehrperson kann mehreren Klassen zugeordnet sein)
  • Berücksichtigt Schuljahres- und Semesterwechsel
  • Ermöglicht die Abbildung von Klassenstrukturen mit mehreren Teilklassen
  • Validiert die Konsistenz zwischen Klassen- und Teilklassenplänen
Datenstruktur
  • Klassenzuordnung
  • Person-ID (GUID)
  • Klassen-ID (GUID)
  • Teilklassen-ID (GUID, optional)
  • Gültigkeitszeitraum (Von-Bis)

  • Semesterzuordnung

  • Schuljahr-ID
  • Semester-ID
  • Gültigkeitszeitraum
Validierungsregeln
  • Teilklassenplan ist Pflichtfeld
  • Gültige Zeiträume (keine Überlappungen)
  • Korrekte Schuljahres-/Semesterwechsel

3. Schulklassen (/export/schulklassen)

Beschreibung

Verwaltet die Schulklassenstruktur und deren Zuordnungen.

Request

Endpoint: GET /export/schulklassen

Parameter
  • valid: Gültigkeitsdatum (Format: dd.MM.yyyy(-dd.MM.yyyy))

Beispiel: 01.01.2025-31.12.2025

Response

[
  {
    "schuleinheitId": "70890e3310bd4ed5bc8e5a937a984ff5",
    "schuleinheit": "Brülisau",
    "stufe": "Primary5",
    "klasseId": "330bce56c2f246c180d21aafc5aa41fa",
    "klasse": "Primarschule PS5, 2024/25, Brülisau",
    "klassenplanId": "f1abbc4ff75f4be98ebed99e6e04a7b4",
    "klassenplan": "Primarschule PS5, , Brülisau",
    "teilklasseId": "17736aee99874245aa6b99540280f3e1",
    "teilklasse": "PS5",
    "teilklassenplanId": "cdcf9844a3444c13a7dffe5d7636111b",
    "teilklassenplan": "PS5"
  },
  {
    "schuleinheitId": "70890e3310bd4ed5bc8e5a937a984ff5",
    "schuleinheit": "Brülisau",
    "stufe": "Kindergarten1",
    "klasseId": "44e7dc9f425f4394ab2fe0c5a45fe5df",
    "klasse": "Kindergarten KG1, 2024/25, Brülisau",
    "klassenplanId": null,
    "klassenplan": null,
    "teilklasseId": "924ae87734cb43e998dd00812873c900",
    "teilklasse": "KG1",
    "teilklassenplanId": null,
    "teilklassenplan": null
  }
]
Struktur
[
  {
    "klasse": "<string>",
    "klasseId": "<string>",
    "schuleinheit": "<string>",
    "schuleinheitId": "<string>",
    "stufe": "SmallClass3",
    "teilklasse": "<string>",
    "teilklasseId": "<string>",
    "klassenplanId": "<string>",
    "klassenplan": "<string>",
    "teilklassenplanId": "<string>",
    "teilklassenplan": "<string>"
  },
  {
    "klasse": "<string>",
    "klasseId": "<string>",
    "schuleinheit": "<string>",
    "schuleinheitId": "<string>",
    "stufe": "Gymnasium1",
    "teilklasse": "<string>",
    "teilklasseId": "<string>",
    "klassenplanId": "<string>",
    "klassenplan": "<string>",
    "teilklassenplanId": "<string>",
    "teilklassenplan": "<string>"
  }
]

Besonderheiten

  • Die Abfrage filtert auf das aktuelle Schuljahr wenn kein valid parameter angegeben wird
  • SchulklassenplanId identifiziert das Klassengefäss pro Stufe und bleibt pro Schulträger und Stufe immer dieselbe.
  • TeilklassenplanId identifiziert das Teilklassengefäss pro Klasse und bleibt pro Schulträger und Klasse immer dieselbe.
  • Schulklassen können mehrere Teilklassen haben
  • Jede Teilklasse hat einen eigenen Lehrplan mit Stufenzuordnung

Klassentypen

  • Regelklassen
  • Primarschule (PS1-PS6)
  • Sekundarschule (Sek1-Sek3)
  • Realschule (Real1-Real3)
  • Gymnasium (Gym1-Gym6)

  • Spezialklassen

  • ADL (Altersdurchmischtes Lernen)
  • Basisstufe (KG-2.Primar)
  • Kleinklassen (KK3-6)

  • Kindergarten

  • KG1
  • KG2

Validierungsregeln

  • Pflichtfeld Teilklassenplan
  • Korrekte Stufenzuordnung
  • Gültige Klassenstruktur

4. Schuljahre (/export/schuljahre)

Beschreibung

Verwaltet die zeitliche Struktur des Schulbetriebs.

Request

Endpoint: GET /export/schuljahre

Parameter
  • valid: Datumsbereich im Format DD.MM.YYYY-DD.MM.YYYY

Beispiel: 01.01.2025-31.12.2025

Response

[
  {
    "schuljahr": {
      "id": "25023823504e449a8fbf8794bb29e893",
      "bezeichnung": "2024/25",
      "von": "2024-08-01T00:00:00",
      "bis": "2025-07-31T00:00:00"
    },
    "semester": {
      "id": "8c666d8b8192461da620171e582a0060",
      "bezeichnung": "2. Semester",
      "von": "2025-02-01T00:00:00",
      "bis": "2025-07-31T00:00:00"
    }
  }
]
Struktur
[
  {
    "schuljahr": {
      "bezeichnung": "<string>",
      "bis": "<dateTime>",
      "id": "<string>",
      "von": "<dateTime>"
    },
    "semester": {
      "bezeichnung": "<string>",
      "bis": "<dateTime>",
      "id": "<string>",
      "von": "<dateTime>"
    }
  },
  {
    "schuljahr": {
      "bezeichnung": "<string>",
      "bis": "<dateTime>",
      "id": "<string>",
      "von": "<dateTime>"
    },
    "semester": {
      "bezeichnung": "<string>",
      "bis": "<dateTime>",
      "id": "<string>",
      "von": "<dateTime>"
    }
  }
]

Besonderheiten

  • Es werden immer alle Semester eines Schuljahres geliefert.
  • Semester: August bis Januar
  • Semester: Februar bis Juli

  • Die Bezeichnungen folgen dem Format:

  • Schuljahr: "2024/25"
  • Semester: "1. Semester", "2. Semester"

Datenstruktur

  • Schuljahr
  • ID
  • Bezeichnung
  • Gültigkeitszeitraum

  • Semester

  • ID
  • Bezeichnung
  • Gültigkeitszeitraum

  • Perioden

  • ID
  • Typ
  • Gültigkeitszeitraum

Validierungsregeln

  • Korrekte Schuljahreswechsel (31.07/01.08)
  • Korrekte Semesterwechsel (31.01/01.02)
  • Gültige Zeiträume

5. PLZ (/export/plz)

Beschreibung

Stellt das Ortschaftsverzeichnis für Adressdaten bereit.

Request

Endpoint: GET /export/plz

Parameter
  • valid: Datumsbereich im Format DD.MM.YYYY-DD.MM.YYYY

Beispiel: 01.01.2025-31.12.2025

Response

[
  {
    "plzId": 1702358695,
    "plz": "(leer)",
    "ort": "(leer)",
    "kanton": "?",
    "land": "(leer)",
    "zusatzziffer": "(leer)"
  },
  {
    "plzId": 9749811271,
    "plz": "9108",
    "ort": "Gontenbad",
    "kanton": "AI",
    "land": "CH",
    "zusatzziffer": "02"
  },
  // weitere 
]
Struktur
[
  {
    "plz": "<string>",
    "plzId": "<long>",
    "ort": "<string>",
    "kanton": "<string>",
    "land": "<string>",
    "zusatzziffer": "<string>"
  },
  {
    "plz": "<string>",
    "plzId": "<long>",
    "ort": "<string>",
    "kanton": "<string>",
    "land": "<string>",
    "zusatzziffer": "<string>"
  }
]

Besonderheiten

  • Wenn keine Daten vorhanden sind, werden Standardwerte zurückgegeben:
  • Kanton: "?"
  • Ort: "(leer)"
  • Land: "(leer)"
  • PLZ: "(leer)"
  • Zusatzziffer: "(leer)"

  • Die plzId wird automatisch aus den Komponenten Ort, PLZ und Zusatzziffer generiert

  • Ländercodes werden im ISO 3166 ALPHA-2 Format zurückgegeben (z.B. "CH" für Schweiz)
  • Kantonskürzel sind zweistellig (z.B. "AI" für Appenzell Innerrhoden)

Datenstruktur

  • PLZ (4-stellig)
  • Ortsbezeichnung
  • Kantonskürzel (2-stellig)
  • Länderkennzeichen (2-stellig)

Validierungsregeln

  • Gültige PLZ-Formate
  • Korrekte Ländercodes
  • Eindeutige PLZ-IDs

AiAddress API

1. Personen (/aiaddress/persons)

  • Grundlegende Personendaten
  • CustomVoice-Konfiguration
  • Beziehungsinformationen

2. Adressen (/aiaddress/addresses)

  • Adressdaten (In-/Ausland)
  • PLZ-Validierung
  • Gültigkeitszeiträume

3. Kontakte (/aiaddress/contacts)

  • Kontakttypen
  • Kontaktdaten
  • Validierungsregeln

Integration API

1. Personen (/integration/persons)

  • Systemübergreifende Personendaten
  • Erweiterte Attribute
  • Beziehungsinformationen

2. Lernendedossiers (/integration/lernendedossiers)

  • Dokumentenverwaltung
  • Lernendendaten
  • Klassenzuordnungen

3. Schulklassendossiers (/integration/schulklassendossiers)

  • Klassendokumentation
  • Teilnehmerverwaltung
  • Periodenzuordnungen

Mapping der Felder

Person

Feld Datenquelle Typ Beschreibung
svid Person.Guid string Eindeutige UUID der Person
nestid NestId integer Interne Referenz-ID
sgid Person.Gebiete.Code integer ID der zugehörigen Schuleinheit
typCd PersonMappingProfileFilter enum siehe TypCode
sexCd GeschlechtCode enum siehe SexCode
anredeCd Anrede enum siehe AnredeCode
name Nachname string Nachname der Person
vorname Vorname string Vorname der Person
gebDat Geburtsdatum datetime Format: YYYY-MM-DDT00:00:00
ahv AHV-Nummer string Format: 756.XXXX.XXXX.XX
adresse Adressdaten string Kombinierte Adressfelder: Strasse, Hausnummer, PLZ, Ort
plzFk PLZ long Fremdschlüssel auf PLZ-Datensatz
eMailGeschaeft GeschaeftlicheEmail string Geschäftliche E-Mail-Adresse
eMailPrivat PrivateEmail string Private E-Mail-Adresse
telGeschaeft GeschaeftlicheTelefon string Geschäftliche Telefonnummer
telPrivat PrivateTelefon string Private Telefonnummer
gueltigVon GueltigVon datetime Startdatum der Gültigkeit
gueltigBis GueltigBis datetime Enddatum der Gültigkeit
gv1Fk Erziehungsberechtigter1 string ID der ersten Bezugsperson (0 wenn keine)
gv2Fk Erziehungsberechtigter2 string ID der zweiten Bezugsperson (0 wenn keine)
voiceEnabled VoiceEnabled boolean Flag für Voice-Aktivierung

PKS

Feld Datenquelle Typ Beschreibung
svid Person.Guid string Eindeutige UUID der Person
schuleinheitId Schuleinheit.Guid string ID der Schuleinheit
schuljahrId Schuljahr.Guid string ID des Schuljahres
semesterId Semester.Guid string ID des Semesters
klasseId Schulklassendossier.Guid string ID der Hauptklasse
klassenplanId KlassenPlan.Guid string ID des Klassenplans (kann null sein)
teilklasseId Teilklasse.Guid string ID der Teilklasse
teilklassenplanId TeilklassenPlan.Guid string ID des Teilklassenplans (kann null sein)
von Zuteilung.GueltigVon datetime Startdatum der Klassenzuteilung (Format: YYYY-MM-DDT00:00:00)
bis Zuteilung.GueltigBis datetime Enddatum der Klassenzuteilung (Format: YYYY-MM-DDT00:00:00)

Schulklassen

Feld Datenquelle Typ Beschreibung
svid Person.Guid string Eindeutige UUID der Person
schuleinheitId Schuleinheit.Guid string ID der Schuleinheit
stufe Teilklasse.Klassenlehrplan enum siehe LevelCode Schuleinheit
schuljahrId Schuljahr.Guid string ID des Schuljahres
semesterId Semester.Guid string ID des Semesters
klasseId Klasse.Guid string ID der Hauptklasse
klassenplanId KlassenPlan.Guid string ID des Klassenplans (kann null sein)
teilklasseId Teilklasse.Guid string ID der Teilklasse
teilklassenplanId TeilklassenPlan.Guid string ID des Teilklassenplans (kann null sein)
von Zuteilung.GueltigVon datetime Startdatum der Klassenzuteilung (Format: YYYY-MM-DDT00:00:00)
bis Zuteilung.GueltigBis datetime Enddatum der Klassenzuteilung (Format: YYYY-MM-DDT00:00:00)

TypCode

Mapping in PersonMappingProfileFilter:

  • Student: Wird für Lernende gesetzt
  • Teacher: Wird für Lehrpersonen gesetzt
  • Staff: Wird für Personalanstellungen gesetzt
  • Custodian: Wird für aktive Bezugspersonen gesetzt (nicht in der Vergangenheit liegende Beziehungen)

SexCode

Mapping in PersonResponseMapper:

  • Male: Wenn GeschlechtCode.MALE
  • Female: Wenn GeschlechtCode.FEMALE
  • Legal: Wenn GeschlechtCode.JURIDICAL_PERSON
  • Undefined: In allen anderen Fällen

AnredeCode

Mapping in PersonResponseMapper basierend auf String-Vergleich (case-insensitive):

  • Herr: Wenn Anrede "herr"
  • Frau: Wenn Anrede "frau"
  • Firma: Wenn Anrede "firma"
  • null: In allen anderen Fällen

LevelCode

Mapping in LevelCodeConverter basierend auf Schulart und Klassenstufe:

  • Primar (PS, Primar, Primarschule):
  • Stufen 1-6 -> Primary1 bis Primary6
  • Sekundar (Sek, Int OS, etc.):
  • Stufen 1-3,7-9 -> Secondary1 bis Secondary3
  • Gymnasium (Gym, G):
  • Stufen 1-6 -> Gymnasium1 bis Gymnasium6
  • Real (Real, R):
  • Stufen 1-3,7-9 -> Real1 bis Real3
  • Vorschule (VSK, KG etc.):
  • Stufen 1-2 -> Kindergarten1/2
  • Kleinklasse:
  • Stufen 1-9 -> SmallClass1 bis SmallClass9
    1. Schuljahr:
  • Stufe 250 -> Voluntary10
  • Privatschule:
  • Stufen 850,99,998 -> SpecialClass1
  • Fallback: Other

Performance-Anforderungen

Antwortzeiten

  • Personen API: < 5000ms
  • PKS API: < 5000ms
  • PLZ API: < 3000ms
  • Schuljahre API: < 100ms
  • Schulklassen API: < 200ms

Weitere Details