# Jobs

**Über den Menüpunkt *Jobs* können Sie Aktionen (Cron-Jobs) verwalten, die JaniWeb in bestimmten Intervallen automatisch im Hintergrund ausführt.**

[![image.png](https://manual.drakos.de/uploads/images/gallery/2025-10/scaled-1680-/lB4image.png)](https://manual.drakos.de/uploads/images/gallery/2025-10/lB4image.png)

## Registerkarte *Definition*

Die Liste enthält alle bereits erstellten Jobs. Doppelklicken Sie auf einen Eintrag, um die Definition des Jobs zu ändern.

### Schaltfläche *Neuer Job*

Drücken Sie auf *Job anlegen*, um eine neuen Job zu erstellen. Geben Sie im Feld *Klasse* ein, welche Funktion aufgerufen werden soll. Geben Sie im Feld *Zeitsteuerung* an, wann die Aufgabe ausgeführt werden soll. Einzelheiten dazu finden Sie weiter unten im Abschnitt [*Format der Zeitsteuerung*](https://manual.drakos.de/link/193#bkmrk-zeitsteuerung-richti).

### Schaltfläche *Scheduler starten*

Nachdem Sie einen bestehenden Job geändert oder einen neuen Job erstellt haben, muss der Scheduler neugestartet werden. Drücken Sie dazu auf *Scheduler starten*.

## Registerkarte *Protokoll*

Hier können Sie eine Liste der ausgeführten Jobs anzeigen.

1. Geben Sie einen Startzeitpunkt ein.
2. (Optional) Geben Sie einen Endzeitpunkt (*Bis*) ein.
3. (Optional) Wählen Sie einen Status aus, um die Liste einzuschränken.
4. Drücken Sie auf *Anzeigen*.

## Jobs im Überblick

<table border="0" cellpadding="0" cellspacing="0" id="bkmrk-job-beschreibung-de." style="border-collapse: collapse; width: 838px; height: 566.141px;" width="87"><colgroup><col style="width: 458px;" width="87"></col><col style="width: 389px;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="width: 32.5pt; height: 29.7969px;">**Job**</td><td style="width: 32.5pt; height: 29.7969px;">**Beschreibung**</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px; width: 32.5pt;" width="87">de.drakos.dbimport.scheduler.SAPRefreshJob</td><td style="width: 32.5pt; height: 29.7969px;">Import Stammdaten</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.AutomaticReportJob</td><td style="height: 29.7969px;">Versenden automatischer Reports</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.LicenseUsageCheckerJob</td><td style="height: 29.7969px;">Prüfung Lizenznutzung</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.InactivePersonFinderJob</td><td style="height: 29.7969px;">Prüfung inaktive Personalstammsätze</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.PersonConsolidationJob</td><td style="height: 29.7969px;">Konsolidierung Personalstammimport</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.BaseSupplyJob</td><td style="height: 29.7969px;">Stammdatenberechnung Grundversorgung</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.LicenseHeartbeatJob</td><td style="height: 29.7969px;">Heartbeat für Pay-Per-Use-Lizenz   
</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.FTPMasterRecordJob</td><td style="height: 29.7969px;">Dormakaba-Stammdatenversand</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.PegasysAccessRightsCheckerJob</td><td style="height: 29.7969px;">Prüfung Pegasys-Berechtigungen</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.BookingFileJob</td><td style="height: 29.7969px;">Export Buchungsdaten</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.SessionInactivityCheckJob</td><td style="height: 29.7969px;">Session-Prüfung</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.DeletedBookingsFileJob</td><td style="height: 29.7969px;">Export gelöschte Buchungen</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.AbsenceMailReminderJob</td><td style="height: 29.7969px;">Erinnerung Abwesenheiten Workflow</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.DeleteOldCEEJobRecordsJob</td><td style="height: 29.7969px;">Bereinigung CCEEJobExecutionProtocol</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.QualificationJob</td><td style="height: 29.7969px;">Prüfung Berechtigung anhand Qualifikationen</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.DBBackupJob</td><td style="height: 29.7969px;">Datenbanksicherung</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.ChronBookingJob</td><td style="height: 29.7969px;">Archivierung Buchungsdaten</td></tr><tr><td>de.drakos.dbimport.scheduler.NEDAPBookingsJob</td><td>NEDAP Buchungen</td></tr><tr style="height: 29.7969px;"><td height="21" style="height: 29.7969px;">de.drakos.dbimport.scheduler.DataProtectionLogicJob</td><td style="height: 29.7969px;">Prüfung Datenschutz</td></tr><tr><td>de.drakos.dbimport.scheduler.AbsenceRejectedByLeadingSystemJob</td><td>Versendet E-Mails, um über Abwesenheiten zu informieren, die vom führenden System abgelehnt wurden.</td></tr><tr><td>de.drakos.dbimport.scheduler.InvalidQuizJob</td><td>Versendet E-Mails, um über ein Quiz zu informieren, das bald inaktiv wird.</td></tr><tr><td>de.drakos.dbimport.scheduler.AutomaticVisitStatusJob</td><td>Legt den Status für Besuche gemäß den von Besuchern an Geräten vorgenommenen Buchungen fest.</td></tr><tr><td>de.drakos.dbimport.scheduler.AbsenceAutomaticApprovalJob</td><td>Genehmigt Abwesenheiten nach einer Frist automatisch.</td></tr></tbody></table>

## Format der Zeitsteuerung

JaniWeb nutzt die Quartz-Cron-Syntax, um komplexe Zeitpläne für Jobs zu definieren. Diese erweiterte Version der klassischen Cron-Syntax umfasst sechs oder sieben Felder:

#### Aufbau der Quartz-Cron-Syntax

```plaintext
S M H DoM MoY DoW [Y]
```

1. **Sekunde (S)**: `0-59`
2. **Minute (M)**: `0-59`
3. **Stunde (H)**: `0-23`
4. **Tag des Monats (DoM)**: `1-31`
5. **Monat (MoY)**: `1-12` oder Abkürzungen wie `JAN, FEB`
6. **Tag der Woche (DoW)**: `1-7` (oder `SUN, MON, ...`)
7. **Jahr (Y)** (optional): `1970-2099`

#### Sonderzeichen

- **`*`**: Beliebiger Wert
- **`,`**: Liste von Werten (z. B. `MON,WED,FRI`)
- **`-`**: Bereich (z. B. `1-5`)
- **`/`**: Schrittweite (z. B. `0/5` für alle 5 Einheiten)
- **`?`**: Beliebiger Wert, der in Konfliktfeldern ignoriert wird (nur für `DoM` und `DoW`).

#### Beispiele

1. **Täglich um Mitternacht**: ```plaintext
    0 0 0 * * ?
    ```
2. **Montags um 9:00 Uhr**: ```plaintext
    0 0 9 ? * MON
    ```
3. **Alle 5 Minuten**: ```plaintext
    0 0/5 * * * ?
    ```
4. **Am ersten Tag jedes Monats um 12:30 Uhr**: ```plaintext
    0 30 12 1 * ?
    ```
5. **Alle 15 Sekunden**: ```plaintext
    0/15 * * * * ?
    ```

#### Wichtige Unterschiede zum klassischen Cron-Format

- Das Feld **Sekunde** ist zusätzlich vorhanden.
- **`?`** ersetzt **`*`** in Feldern mit Konflikten zwischen `DoM` und `DoW`.
- Unterstützt detailliertere Zeitpläne durch die Möglichkeit, Schritte und Listen zu kombinieren.