Skip to content

Datenbankformat

Matthias Schabhüttl edited this page Jun 12, 2026 · 2 revisions

🗄️ Datenbankformat (DBF)

Technische Dokumentation zum Datenbankformat von OpenSchichtplaner5.

📖 Der gesamte Datenbankzugriff ist in der eigenständigen Library libopenschichtplaner5 implementiert. Die ausführliche Format-Referenz (alle Tabellen und Felder) sowie das Kommandozeilenwerkzeug sind dort dokumentiert: Datenbankformat · CLI


Warum DBF?

OpenSchichtplaner5 verwendet das dBase/FoxPro-DBF-Format aus einem einfachen Grund: Kompatibilität mit dem originalen Schichtplaner5 der Firma RPS Planungssysteme GmbH.

Das Windows-Programm Schichtplaner5 speichert alle Daten in DBF-Dateien. OpenSchichtplaner5 liest und schreibt exakt dieselben Dateien — ohne Konvertierung, ohne Migration, ohne Datenverlust.

Vorteile:

  • ✅ Bestehende SP5-Daten sofort nutzbar
  • ✅ Parallelbetrieb möglich (beide Programme teilen dieselbe DB)
  • ✅ Datei-basiert → einfache Backups (ZIP-Archiv reicht)
  • ✅ Kein Datenbankserver nötig

Hinweis zu CDX-Indexdateien: Jede .DBF-Datei hat eine zugehörige .CDX-Indexdatei. Diese darf niemals manuell verändert werden — der Index wird automatisch aktualisiert.


Alle Datenbank-Tabellen

👤 5EMPL — Mitarbeiter

Speichert alle Mitarbeiter-Stammdaten.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
LASTNAME Text(30) Nachname
FIRSTNAME Text(20) Vorname
SHORTNAME Text(4) Kürzel
PERSNR Text(15) Personalnummer
GROUPID Numerisch FK → 5GROUP
HOURDAY Dezimal Stunden/Tag
HOURWEEK Dezimal Stunden/Woche
WORKDAYS Numerisch Arbeitstage/Woche
VACDAYS Numerisch Urlaubsanspruch/Jahr
COLOR1 Text(9) Label-Farbe (Hex)
COLOR2 Text(9) Hintergrundfarbe (Hex)
ENTRYDATE Datum Eintrittsdatum
EXITDATE Datum Austrittsdatum
ACTIVE Logisch Aktiv-Flag

🏢 5GROUP — Gruppen

Hierarchische Gruppenstruktur.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(40) Gruppenname
PARENTID Numerisch Übergruppe (FK → 5GROUP)
SORTORDER Numerisch Sortierreihenfolge

🕐 5SHIFT — Schichtarten

Definition aller Schichttypen.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(30) Schichtname
SHORTNAME Text(3) Kürzel
COLORBACK Text(9) Hintergrundfarbe
COLORTEXT Text(9) Textfarbe
TIMEFROM_* Zeit Startzeit pro Wochentag (MO–SO+FT)
TIMETO_* Zeit Endzeit pro Wochentag
PAUSE_* Numerisch Pausenminuten pro Wochentag

📋 5MASHI — Dienstplan (Manual Shifts)

Alle manuell eingetragenen Schichten im Dienstplan.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
EMPID Numerisch FK → 5EMPL
SHIFTID Numerisch FK → 5SHIFT
DATE Datum Datum des Eintrags
TIMEFROM Zeit Tatsächliche Startzeit
TIMETO Zeit Tatsächliche Endzeit
WPLACEID Numerisch FK → 5WOPL (Arbeitsplatz)
NOTE Text(80) Notiz

🚫 5ABSEN — Abwesenheiten

Alle eingetragenen Abwesenheiten.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
EMPID Numerisch FK → 5EMPL
LTYPEID Numerisch FK → 5LEAVT
DATE Datum Datum
NOTE Text(80) Begründung

🏖️ 5LEAVT — Abwesenheitsarten

Konfiguration der Abwesenheits-Typen.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(30) Name (z. B. „Urlaub")
SHORTNAME Text(3) Kürzel
COLOR Text(9) Farbe
VACATION Logisch Urlaubsanspruch abziehen?

📊 5LEAEN — Urlaubsansprüche

Urlaubsansprüche pro Mitarbeiter und Jahr.

Feld Typ Beschreibung
EMPID Numerisch FK → 5EMPL
YEAR Numerisch Jahr
DAYS Dezimal Anspruch in Tagen
CARRYOVER Dezimal Übertrag aus Vorjahr

⏱️ 5BOOK — Zeitkonto-Buchungen

Manuelle Zeitkonto-Buchungen.

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
EMPID Numerisch FK → 5EMPL
DATE Datum Buchungsdatum
HOURS Dezimal Stunden (+/−)
TEXT Text(60) Buchungstext

🎉 5HOLID — Feiertage

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(40) Name des Feiertags
DATE Datum Datum
YEARLY Logisch Jährlich wiederkehrend?

🔒 5HOBAN — Urlaubssperren

Gesperrte Zeiträume (Perioden).

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(40) Bezeichnung
DATEFROM Datum Beginn
DATETO Datum Ende
GROUPID Numerisch Betroffene Gruppe (0 = alle)

🔄 5CYCLE / 5CYENT / 5CYASS / 5CYEXC — Schichtmodelle

5CYCLE — Zyklus-Definition (Name, Länge in Tagen)
5CYENT — Zyklus-Einträge (Tag-Nummer → Schichtart)
5CYASS — Zyklus-Zuweisung (Mitarbeiter → Zyklus + Startdatum)
5CYEXC — Zyklus-Ausnahmen (manuelle Abweichungen vom Zyklus)


⛔ 5RESTR — Schichteinschränkungen

Feld Typ Beschreibung
EMPID Numerisch FK → 5EMPL
SHIFTID Numerisch FK → 5SHIFT
STATUS Text(1) A=Erlaubt, R=Anfrage, N=Verboten

🏭 5WOPL — Arbeitsplätze

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(40) Bezeichnung
DESC Text(80) Beschreibung

💰 5XCHAR — Zeitzuschläge

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
NAME Text(40) Name des Zuschlags
TIMEFROM Zeit Beginn
TIMETO Zeit Ende
PERCENT Dezimal Zuschlagsprozent
DAYS Text(7) Gilt an welchen Wochentagen (Bitfeld)
HOLIDAYS Logisch Gilt auch an Feiertagen

👨‍💼 5USER — Benutzer

Feld Typ Beschreibung
ID Numerisch Primärschlüssel
USERNAME Text(30) Login-Name
PASSHASH Text(64) Passwort-Hash (bcrypt)
FULLNAME Text(60) Anzeigename
ROLE Text(10) admin oder user
ACTIVE Logisch Aktiv-Flag

⚙️ 5USETT — Benutzereinstellungen

Key-Value-Tabelle für benutzerspezifische Einstellungen (z. B. letzter gewählter Monat, Ansichts-Präferenzen).


SQLite-Modus (Demo / Cloud)

Für Umgebungen ohne SP5-DBF-Daten steht ein SQLite-Modus zur Verfügung:

export SP5_MODE=sqlite

Im SQLite-Modus wird eine leere sp5_demo.sqlite-Datei angelegt. Alle Tabellen haben dieselbe Struktur wie die DBF-Entsprechungen.

Geeignet für:

  • Demo-Installationen
  • Cloud-Deployments ohne Zugriff auf originale DBF-Dateien
  • Entwicklung und Tests

Einschränkung: SQLite-Daten sind nicht kompatibel mit dem Original-Schichtplaner5 Windows-Programm.


CDX-Indexdateien

Datei Beschreibt den Index für
5EMPL.CDX Mitarbeiter (nach ID, Name)
5MASHI.CDX Dienstplan (nach Datum, MA)
5ABSEN.CDX Abwesenheiten (nach Datum)

⚠️ CDX-Dateien werden automatisch aktualisiert. Nicht manuell bearbeiten, umbenennen oder löschen!


Siehe auch


Zurück: Home — Wiki-Startseite

🧸 OpenSchichtplaner5 v1.2.0

Home — Startseite


🚀 Einstieg


📊 Dashboard

  • Dashboard — Charts, Widgets & Performance

📅 Planung


📄 Berichte & Daten


🗃️ Stammdaten


🔗 Integrationen


⚙️ Administration


📱 Features


🔗 Links


📚 Verwandte Wikis

Clone this wiki locally