Teil 1 – Grundlegende Zeiterfassung über ein einfaches Formular inkl. manueller Nachbearbeitung

Nach dem Urteil des Bundesarbeitsgerichts vom 13. September 2022 ist es laut § 3 des Arbeitsschutzgesetzes ab sofort für alle Unternehmen Pflicht, die Arbeitszeiten der Mitarbeiter ausnahmslos aufzuzeichnen. Für Sie als Unternehmer bedeutet dies Handlungsbedarf, falls Sie noch kein System zur Zeiterfassung im Einsatz haben. Haben Sie Microsoft 365 im Einsatz? Dann bauen Sie sich doch Ihr eigenes einfaches Zeiterfassungssystem mit Komponenten der Power Plattform. Wir zeigen Ihnen wie. Der Artikelserie teilt sich in sechs Teile auf:

  1. Grundlegende Zeiterfassung über ein einfaches Formular inkl. manueller Nachbearbeitung
  2. Erfassung von Pausen durch Mitarbeiter
  3. Auswertung der Arbeitszeiten und Warnsystem
  4. Zeiterfassung über RFID-Token
  5. Zeiterfassung im ERP-System integriert
  6. Ausblick

Sie sind an einer Lösung zur Zeiterfassung interessiert, haben aber nicht die Zeit oder Ressourcen dies in Ihrem Unternehmen umzusetzen? Kein Problem. Wir unterstützen Sie. Kontaktieren Sie uns über unser Kontaktformular. Der erste Teil dieser dreiteiligen Serie soll die Entwicklung eines einfachen Zeiterfassungssystems mit Microsoft 365 zeigen. Hierfür werden Im Kern drei Apps Verwendung finden: Microsoft Forms, Power Automate und Sharepoint.

Die Komponenten der Zeiterfassung im Überblick

Im Kern der Lösung werden drei Komponenten bzw. Microsoft 365 Apps verwendet:

  • Ein Formular, das mittels Microsoft Forms bereitgestellt wird.
  • Eine Sharepoint-Liste, welche die Daten der Zeiterfassung hält.
  • Ein Power Automate Flow, der die Daten des Formulars verarbeitet.

Das Formular zur Zeiterfassung

Das Formular für das Zeiterfassung besteht aus einer einfachen Frage: „Kommen oder gehen?“ im Sinne von wird die Arbeit begonnen oder beendet. Starten Sie hierfür Microsoft Forms und legen Sie eine entsprechende Frage als Auswahlfrage an. Die einzigen zwei Optionen sind „kommen“ und „gehen“. Alternativ können Sie die Bezeichnung nach eigenen Bedürfnissen anpassen. Markieren Sie die Frage als Erforderlich und Konfigurieren Sie das Formular so, dass Namen erfasst werden:  

Formular zur Zeiterfassung
Microsoft Forms: Formular zur Zeiterfassung

Die Sharepoint-Liste

Die Daten der Zeiterfassung werden in einer Sharepoint-Liste gespeichert. Im Folgenden werden die Spalten der Liste kurz erläutert:

  • „Titel“: Die Standardspalte „Titel“ wird verwendet um eine eindeutige Referenz zu einem Mitarbeiter und einem Arbeitstag herzustellen. Z.B. vorname.nachname@domain.com20240202 als Hinweis auf Arbeitszeitdaten eines Mitarbeiters (Vorname, Nachname) am 02.02.2024
  • „kommen“: Typ: Datum und Uhrzeit. Zeit einschließen: ja. In der Spalte „kommen“ wird der Zeitpunkt des Arbeitsbeginns festgehalten.
  • „gehen“: Typ: Datum und Uhrzeit. Zeit einschließen: ja. In der Spalte „gehen“ wird der Zeitpunkt des Arbeitszeitendes fesgehalten.
  • „Dauer“: Typ Text. In der Spalte „Dauer“ wird die Dauer der Arbeitszeit (als String) im Format hh:mm:ss festgehalten.
Liste zur Zeiterfassung
Microsoft Sharepoint: Liste zur Zeiterfassung

 

Der Flow

Der Microsoft Power Automate Flow zur Verarbeitung der Arbeitszeiten hat folgende Aufgaben:

  • Abrufen der Formulardaten zur Zeiterfassung
  • Anlegen einer neuen Zeile zur Zeiterfassung
  • Abschluss und Berechnung der Zeiterfassung
  • Information des Mitarbeiters und Bereitstellung des Zeiterfassungselements zur eventuellen manuellen Bearbeitung.

Im Folgenden werden die Bestandteile des Flows kurz beschrieben:

Flow zur Zeiterfassung
Microsoft Power Automate: Flow zur Zeiterfassung
      1. „Bei Übermitteln einer neuen Antwort“: Der Trigger wird ausgelöst, wenn das Formular zur Zeiterfassung übermittelt wird. Entsprechend ist die Formular-ID in den Parametern auszuwählen
      2. „Antwortdetails abrufen“. Um alle Details der Formularübermittlung (kommen oder gehen) zu beziehen ist diese Aktion notwendig. Als Ergebnis wird ein JSON-Objekt mit allen relevanten Informationen (responder, submitDate, Fragen…) übermittelt
      3. Bedingung kommen oder gehen: Als Bedingung wird das Ergebnis der Fragestellung aus dem Formular mit dem String „kommen“ verglichen. D.h. für dieses Beispiel „Kommen oder gehen?“ (kann als dynamischer Inhalt gewählt werden) is equal to kommen, wobei is equal to als Dropdown wählbar ist.
      4. „Element erstellen“: Falls die Bedingung aus 3. erfüllt wurde (D.h. im Formular wurde „kommen“ übermittelt wird diese Aktion ausgeführt. Konfigurieren Sie folgende Parameter
        1. Websiteadresse: Die Sharepoint-Site, welche die Liste zur Zeiterfassung hält.
        2. Name der Liste: hier: Zeiterfassung
        3. Titel: ‚responders E-Mail‘ (Dynamischer Inhalt), Formel: formatDateTime(utcNow(),'yyyyMMdd'). Hierdurch wird im Titel die E-Mail-Adresse des Formularnutzers mit dem aktuellen Tagesdatum verknüpft. Beim „gehen“ wird diese Zeichenfolge verwendet um das angelegte Element wiederzufinden und um abschließend die Dauer der Arbeitszeit zu ermitteln.
        4. Kommen: Formel: utcNow().
      5. Zugriff auf ein Element gewähren: Diese Aktion gewährt dem Übermittler des Formulars Schreibrechte auf das Erstellte Element zur Zeiterfassung. So können im Bedarfsfall durch Anwender selbstständig Änderungen an der Zeiterfassung vorgenommen werden. Konfigurieren Sie hierfür folgende Parameter
        1. Websiteadresse: Die Sharepoint-Site, welche die Liste zur Zeiterfassung hält.
        2. Name der Liste: hier: Zeiterfassung
        3. ID: ID des Listenelements, dass durch die Vorgänger-Aktion „Element erstellen“ erstellt wurde.
        4. Rollen: „Can edit“, um auch Schreibrechte auf das Element zu gewähren.
        5. Empfängerbenachrichtigung. Yes. So wird der Empfänger entsprechend über die Freigabe (per E-Mail) benachrichtigt.
      6. Elemente abrufen: Diese und alle folgenden Aktionen werden aufgerufen, wenn im Formular „gehen“ gewählt wurde (Vgl. auch Nr. 3). Die aktuelle Aufgabe soll das zuvor Erstellte Element (im „kommen“-Fall) wiederfinden. Konfigurieren Sie hierfür folgende Parameter:
        1. Websiteadresse: Die Sharepoint-Site, welche die Liste zur Zeiterfassung hält.
        2. Name der Liste: hier: Zeiterfassung
        3. Abfrage Filtern: Title eq ‚responders E-Mail (Dynamischer Inhalt) Funktion: formatDateTime(utcNow(),'yyyyMMdd') (Vgl. Nr. 4/c). Durch diesen OData-Filter wird die Zeile des Anwenders gesucht, die mit dem aktuellen Datum verknüpft ist (der „kommen“-Eintrag).
      7. Bedingung Eintrag kommen vorhanden: Diese Bedingung prüft, ob durch die Vorgänger-Aktion ein Element gefunden wurde. Geben Sie hierfür folgenden Parameter ein: [Formel] is less than 1, wobei [Formel] folgender Formel entspricht: outputs('Elemente_abrufen')?['body/value']).
      8. Element erstellen: Wird aufgerufen, wenn die Bedingung der letzten Aktion erfüllt wird. D.h. wenn ein Element (der „kommen“-Eintrag ) gefunden wurde. Diese Aktion erstellt analog zu Nr. 4 ein Listenelement zur Zeiterfassung, nur, dass der Zeitstempel (utcNow()) für das Feld „Gehen“ eingetragen wird. Der Anwender wird im Anschluss darüber informiert, dass das Kommen-Feld manuell nachzutragen ist.
      9. Zugriff auf ein Element gewähren: Analog zu Nr. 5 wird der Zugriff auf das zuletzt erstellte Element gewährt. Abweichend zu Nr. 5 sollte hier über die Nachricht der Anwender darüber informiert werden, dass der „kommen“-Teil (Zeitpunkt) manuell nachgepflegt werden sollte.
      10. Element aktualisieren: Falls das „kommen“-Element gefunden wurde (Vgl. Nr. 7) wird dieses mit der „gehen“-Zeit ergänzt. Die Dauer der Zeiterfassung wird berechnet und mit im Sharepoint Listenelement gepeichert. Konfigurieren Sie hierfür folgende Parameter:
        1. Websiteadresse: Die Sharepoint-Site, welche die Liste zur Zeiterfassung hält.
        2. Name der Liste: hier: Zeiterfassung
        3. Gehen: Formel: utcNow()
        4. Dauer: Formel: dateDifference(outputs('Elemente_abrufen')?['body/value'][0]['kommen'],utcNow()).

Demo

Folgendes Video zeigt ein kurzes Demo der bisher erstellten Funktionalität:

Fazit

Haben Sie Microsoft 365 im Einsatz ist es ein Leichtes schnell ein einfaches System zur Zeiterfassung zu erstellen. Durch die modulare Architektur ist es möglich schnell und einfach Zusätzliche Komponenten in das Zeiterfassungssystem einzubinden. Denken Sie an die Auswertung von erfassten Zeiten mit managementgerechten Visuals mit Microsoft Power BI, die Erfassung von Zeiten per Power App oder gar Per Chat Bot (Power Virtual Agents). Erweitern Sie Ihr System um einfache Regeln um Warnungen bei Arbeitszeitüberschreitungen oder Unterschreitungen von gesetzlichen Pausenzeiten zu ermöglichen oder integrieren Sie Ihr Zeiterfassungssystem in Ihr bestehendes ERP-System.
Sie brauchen Unterstützung bei der Erstellung oder Weiterentwicklung Ihres Zeiterfassungssystems? Kein Problem, kontaktieren Sie uns einfach über unser Kontaktformular.

Sie möchten ein System zur Zeiterfassung operativ nutzen und benötigen Unterstützung im Rahmen der Umsetzung oder Integration? Wir unterstützen Sie gerne. Nutzen Sie unser Kontaktformular.

Dies ist eine Serie an Beiträgen. Bleiben Sie auf dem Laufenden und abonnieren Sie unseren Newsletter

Mit besten Grüßen,

Jonas Kufner

Projektmanager GSD mbH