# Jobs

**The menu item *Jobs* allows you to manage the actions (cron jobs) that JaniWeb automatically executes in the background at certain intervals.**

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

## Tab *Definition*

The list contains all the jobs that have already been created. Double-click on an entry to change the definition of the job.

### Button *New Job*

Press *New Job* to create a new job. Enter the function to be called in the field *Class*. Enter when the task is to be executed in the field *Timing*. For details, see the section [*Time format*](https://manual.drakos.de/link/259#bkmrk-zeitsteuerung-richti) below.

### Button *Start Scheduler*

After you have changed an existing job or created a new one, you must restart the scheduler. To do this, press *Start Scheduler*.

## Tab *Protocol*

Here you can display a list of the jobs that have been executed.

1. Enter a start time.
2. (Optional) Enter an end time (*To*).
3. (Optional) Select a status to narrow the list.
4. Press *Show executed jobs*.

## Overview of the jobs

<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;">**Description**</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 master data</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;">Send automated 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;">Check license usage</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;">Check inactive personnel records</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;">Consolidate personnel master data import</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;">Master data calculation for basic supply</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 for pay-per-use license   
</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 master data distribution</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;">Check Pegasys authorizations</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 booking data</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;">Check session</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 deleted bookings</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;">Reminder of absences in 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;">Cleanup 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;">Check permissions based on qualifications</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;">Backup database</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;">Archive booking data</td></tr><tr><td>de.drakos.dbimport.scheduler.NEDAPBookingsJob</td><td>NEDAP bookings</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;">Data protection audit</td></tr><tr><td>de.drakos.dbimport.scheduler.AbsenceRejectedByLeadingSystemJob</td><td>Sends E-Mails to inform about absences which were rejected by leading system.</td></tr><tr><td>de.drakos.dbimport.scheduler.InvalidQuizJob</td><td>Sends E-Mails to inform about quiz, which will get inactive soon.</td></tr><tr><td>de.drakos.dbimport.scheduler.AutomaticVisitStatusJob</td><td>Sets status for visits according bookings done by visitors at devices.</td></tr><tr><td>de.drakos.dbimport.scheduler.AbsenceAutomaticApprovalJob</td><td>Automatically approves absences after a certain period.</td></tr></tbody></table>

## Time format

JaniWeb uses the Quartz Cron syntax to define complex job timings. This extended version of the classic Cron syntax consists of six or seven fields:

#### Quartz Cron syntax structure

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

1. **Second (S)**: `0-59`
2. **Minute (M)**: `0-59`
3. **Hour (H)**: `0-23`
4. **Day of month (DoM)**: `1-31`
5. **Month of year (MoY)**: `1-12` or abbreviations like `JAN, FEB`
6. **Day of week (DoW)**: `1-7` (or `SUN, MON, ...`)
7. **Year (Y)** (optional): `1970-2099`

#### Special characters

- **`*`: Any value**
- ****`,`: List of values (e.g. `MON,WED,FRI`)****
- ******`-`: Area (e.g. `1-5`)******
- ********`/`: Increment (e.g. `0/5` for all 5 units)********
- **********`?`: Any value, which is ignored in fields of conflict (only for `DoM` and `DoW`).********


#### Examples

1. **Every day at midnight**: ```plaintext
    0 0 0 * * ?
    ```
2. **Every Monday at 9:00 a.m**: ```plaintext
    0 0 9 ? * MON
    ```
3. **Every 5 minutes**: ```plaintext
    0 0/5 * * * ?
    ```
4. **On the first day of each month at 12:30 p.m.**: ```plaintext
    0 30 12 1 * ?
    ```
5. **Every 15 seconds**: ```plaintext
    0/15 * * * * ?
    ```

#### Important differences to the classic Cron format

- The field **second** is additionally available.
- **`?`** replaces **`*`** in fields with conflicts between `DoM` and `DoW`.
- Supports more detailed timings by combining steps and lists.