REST-API

Die clockodo-API ermöglicht die Anbindung von clockodo an andere Systeme. Rechnungs- und Projektmanagement-Anwendungen oder eigene Shell-Skripte sind Beispiele für nützliche Mash-Ups mit clockodo.

api/userreports: Mitarbeiterberichte auslesen

Über diese Ressource können Sie alle Informationen auslesen, die Sie aus den Mitarbeiterberichten von clockodo kennen.

Dies sind alle Details der Mitarbeiter-Stundenkonten bishin zu den Soll- und Ist-Stunden zu jedem einzelnen Tag, aber auch der Status der Urlaubskonten.


Objekttyp „userreport“

Bitte beachten Sie, dass der Objekttyp "userreport" in seiner Eigenschaft "month_details" ein Array von weiteren Objekten des Typs "userreport_month" enthalten kann, sodass sich eine verschachtelte Array-Struktur ergibt.

Vergleichen Sie dazu auch dieses Beispiel einer Rückgabe.

Parameter Typ Beschreibung
users_id integer Die ID des zugehörigen Mitarbeiters
users_name string Name des zugehörigen Mitarbeiters
sum_target integer Soll-Arbeitszeit für das Jahr (in Sekunden)
sum_hours integer Geleistete Arbeitszeit im Jahr (in Sekunden)
sum_reduction_used integer Summe wirklich abgefeierter Überstunden; zu unterscheiden von angemeldetem Überstundenabbau (in Sekunden)
sum_reduction_planned integer Summe an geplantem Überstundenabbau (in Sekunden)
overtime_carryover integer Überstundenübertrag der für das Jahr gilt (in Sekunden)
overtime_reduced integer Für das Jahr gestrichende Überstunden (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
holidays_quota float Urlaubskontingent
holidays_carry float Urlaubsübertrag der für das Jahr gilt
sum_absence[regular_holidays] float Anzahl genutzter Urlaubstage aus dem Kontingent
sum_absence[sick_self] int Anzahl Krankheitstage
sum_absence[sick_child] int Anzahl Krankheitstage eines Kindes
sum_absence[special_leaves] float Anzahl Tage Sonderurlaub
sum_absence[school] float Anzahl Tage Schule
sum_absence[maternity_protection] float Anzahl Tage Mutterschutz
sum_absence[home_office] float Anzahl Tage Home Office
sum_absence[out_of_office] float Anzahl Tage Arbeit außer Haus
holidays_used float Anzahl genutzter Urlaubstage aus dem Kontingent DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
special_holidays float Anzahl Tage Sonderurlaub DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
sickdays float Anzahl Krankheitstage DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
month_details Array von Objekten des Typen "userreport_month" Nur wenn Monatsdetails angefragt werden

Objekttyp „userreport_month“

Dieser Objekttyp wird innerhalb der Eigenschaft "month_details" im Hauptobjekt vom Typ "userreport" verwendet.

Parameter Typ Beschreibung
nr integer Monatsnummer (1 bis 12)
sum_target integer Soll-Arbeitszeit (in Sekunden)
sum_hours integer Geleistete Arbeitszeit (in Sekunden)
sum_hours_without_ compensation integer Geleistete Arbeitszeit bei Ignorierung monatsweiser automatischer Kompensierung (in Sekunden)
sum_reduction_used integer Summe wirklich abgefeierter Überstunden; zu unterscheiden von angemeldetem Überstundenabbau (in Sekunden)
sum_overtime_reduced integer Summe ausbezahlter / gestrichener Überstunden (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
sum_reduction null Liefert aus Gründen von Rückwärtskompatibilität immer null DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
week_details Array von Objekten des Typen "userreport_week" Nur wenn Wochendetails angefragt werden

Objekttyp „userreport_week“

Dieser Objekttyp wird innerhalb der Eigenschaft "week_details" im Objekt vom Typ "userreport_month" verwendet.

Parameter Typ Beschreibung
nr integer Wochennummer nach ISO 8601
sum_target integer Soll-Arbeitszeit (in Sekunden)
sum_hours integer Geleistete Arbeitszeit (in Sekunden)
sum_reduction_used integer Summe wirklich abgefeierter Überstunden; zu unterscheiden von angemeldetem Überstundenabbau (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
sum_reduction null Liefert aus Gründen von Rückwärtskompatibilität immer null DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
day_details Array von Objekten des Typen "userreport_day" Nur wenn Tagesdetails angefragt werden

Objekttyp „userreport_day“

Dieser Objekttyp wird innerhalb der Eigenschaft "day_details" im Objekt vom Typ "userreport_week" verwendet.

Parameter Typ Beschreibung
date string Datum
weekday integer Nummer, welchen den Wochentag identifiziert
nonbusiness boolean Ist der Tag ein Feiertag?
target integer Soll-Arbeitszeit (in Sekunden)
target_raw integer Soll-Arbeitszeit die sich ergeben hätte, wenn diese nicht durch einen Feiertag oder eine Abwesenheit (Urlaub, Überstundenabbau, ...) reduziert worden wäre (in Sekunden)
hours integer Geleistete Arbeitszeit (in Sekunden) Wird nicht für Tage in der Zukunft ausgegeben
hours_without_ compensation integer Geleistete Arbeitszeit bei Ignorierung tageweiser automatischer Kompensierung (in Sekunden) Wird nicht für Tage in der Zukunft ausgegeben
diff integer Errechnete Differenz des Stundenkontos (in Sekunden) Wird nicht für Tage in der Zukunft ausgegeben
work_start string Beginn der Arbeitszeit im Format "YYYY-MM-DD HH:MM:SS" Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben
work_end string Ende der Arbeitszeit im Format "YYYY-MM-DD HH:MM:SS" Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben
breaks array Durchgeführte Pausen (Unter-Array-Schlüssel: [string] since, [string] until, [integer] length) Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben
count_absence[regular_holidays] float Genutzter regulärer Urlaub für diesen Tag (0, 0.5 oder 1)
count_absence[sick_self] int Abwesenheit wegen Krankheit an diesem Tag (0 oder 1)
count_absence[sick_child] int Abwesenheit wegen Krankheit eines Kindes an diesem Tag (0,oder 1)
count_absence[special_leaves] float Abwesenheit wegen Sonderurlaub an diesem Tag (0, 0.5 oder 1)
count_absence[school] float Abwesenheit wegen Schule / Weiterbildung an diesem Tag (0, 0.5 oder 1)
count_absence[maternity_protection] float Abwesenheit wegen Mutterschutz an diesem Tag (0, 0.5 oder 1)
count_absence[home_office] float Home-Office an diesem Tag (0, 0.5 oder 1)
count_absence[out_of_office] float Arbeit außer Haus an diesem Tag (0, 0.5 oder 1)
count_reduction_used integer Abgefeierte Überstunden; zu unterscheiden von angemeldetem Überstundenabbau (in Sekunden)
count_holidays float Genutzter regulärer Urlaub (aus dem Kontingent) oder Sonderurlaub an diesem Tag (0, 0.5 oder 1) DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
count_regular_holidays float Genutzter regulärer Urlaub (aus dem Kontingent) für diesen Tag (0, 0.5 oder 1) DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
count_special_leaves float Genutzter Sonderurlaub an diesem Tag (0, 0.5 oder 1) DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
count_sick float Abwesenheit wegen Krankheit an diesem Tag (0, 0.5 oder 1) DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.
count_ot_reduction null Liefert aus Gründen von Rückwärtskompatibilität immer null DEPRECATED. Diese Spalte wird ab 01.01.2020 nicht mehr ausgeliefert werden.

Berichte zu allen Mitarbeitern abrufen

Anfrage
GET /api/userreports
Notwendige Parameter year (integer)
Optionale Parameter type 0: Es werden nur Kennzahlen zum Jahr ausgegeben (default)
1: Es werden auch Kennzahlen zu Monaten ausgeben
2: Es werden auch Monats-und Wochen-Kennzahlen ausgeben
3: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben
4: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben, sowie tageweise die Beginn- und Endzeit der Arbeit und Pausen
Antwort
{
  "userreports": 
  [
    [object of type userreport],
    [object of type userreport], 
    ...
  ]
}
Beispielhafte verschachtelte Antwort bei Nutzung der vollen Details (Anfragetyp 3):
{
  "userreports": 
  [
    {
      'id' : 123,
      'name': 'Max Mustermann',
      'sum_target': 1419,
      ...
      'month_details' : 
      [
      	{
          'nr': 1,
          'sum_target': 142,
          ...,
          'week_details': 
          [
            {
              'nr': 1,
              'sum_target': 40,
              ...
              'day_details': 
              [
                {
                  'date': '2016-01-01',
                  'weekday': 5,
                  ...
                },
                {
                  'date': '2016-01-01',
                  'weekday': 6,
                  ...
                },
                ...
                [WEITERE TAGE DER WOCHE]
              ]
            },
            {
              'nr': 2,
              'sum_target': 40,
              ...
              'day_details': 
              [
                {
                  'date': '2016-01-04',
                  'weekday': 1,
                  ...
                },
                {
                  'date': '2016-01-05',
                  'weekday': 2,
                  ...
                },
                ...
                [WEITERE TAGE DER WOCHE]
              ]
            },
            ... 
            [WEITERE WOCHEN]
          ]
      	},
      	...
      	[WEITERE MONATE]
      ]
    },
    ...
    [WEITERE BERICHTE ZU MITARBEITERN]
  ]
}

Mitarbeiterbericht zu einem einzelnen Mitarbeiter abrufen

Anfrage
GET /api/userreports/[Users-ID]
Notwendige Parameter year (integer)
Optionale Parameter type 0: Es werden nur Kennzahlen zum Jahr ausgegeben (default)
1: Es werden auch Kennzahlen zu Monaten ausgeben
2: Es werden auch Monats-und Wochen-Kennzahlen ausgeben
3: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben
4: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben, sowie tageweise die Beginn- und Endzeit der Arbeit und Pausen
Antwort
{
  "userreport": [object of type userreport]
}

Vergleichen Sie hierzu auch die weiteren Erklärungen im Bereich "Berichte zu allen Mitarbeitern abrufen".