Urlaubstage automatisch berechnen mit Nintex Workflow 2013 – Teil 1

Wenn bei gemeinsamen Projekten mit unseren Kunden das Thema Urlaubsantragsverwaltung in SharePoint fällt, dann bekommen wir immer folgende Anforderung:

Urlaubstage eines bestimmten Zeitraums müssen automatisch berechnet werden. Und das inklusive bundeslandspezifischer Feiertage. Bei der Suche nach einer Lösung fällt hier zuerst die Nintex-Funktion „Feiertage verwalten“ ins Auge. Hier gibt es die Möglichkeit, Feiertage einzutragen, die dann in bestimmten Aktionen im Workflow beachtet werden.  Es gibt jedoch gewisse Einschränkungen:

  • Es können keine bundeslandspezifischen Feiertage angegeben werden
  • Nur bestimmte Aktionen können diese Funktion nutzen
  • Es muss eine Liste mit Feiertagen gepflegt werden

Die Feiertage von Nintex kommen demnach nicht in Frage. Als Lösung haben wir einen Workflow angefertigt, der die Berechnung der Urlaubstage nur mit einem Start- und Enddatum berechnet. In diesem Blogpost möchte ich euch eben diesen Workflow vorstellen. Um den Rahmen dabei nicht zu sprengen, werde ich das Thema in zwei Teilen bearbeiten.

Feiertage in Nintex Workflow 2013 mit dem Feiertage Webservice von Jarmedia

In einem ersten Schritt müssen wir alle Feiertage, geschlüsselt nach Bundesland, erhalten. Um Verwaltungsaufwand einer Konfigurationsliste (die dann unendlich lang wäre) zu sparen, nutzen wir hier den Webservice von Jarmedia. Dieser bietet uns die Möglichkeit, auf JSON-Basis alle Feiertage pro Bundesland zu erhalten. Der Aufruf setzt sich aus der URL des Webservice sowie den Aufrufparametern zusammen. In Nintex sieht das ganze wie folgt aus:

Anfrage an den Webservice, um alle Feiertage zu erhalten

Folgend die konfigurierte Aktion Webanforderung:

nintex-webservice-aufruf

Zugehörige Action in Nintex

Wie ihr seht, müssen wir in Nintex unterscheiden, in welchem Jahr der Urlaub genommen wird, da der Webservice ein bestimmtes Jahr als Parameter benötigt. Als Unterscheidung nehmen wir das Start- und Enddatum des Urlaubs. Der vollständige Aufruf sieht dann so aus:

http://feiertage.jarmedia.de/api/?jahr=numJahrUrlaubsbeginn&nur_land=txtBundeslandkürzel

Wie Ihr seht, wird neben dem Jahr auch das Kürzel des Bundeslandes benötigt. Hier kommen wir um eine Konfigurationsliste (pro Mitarbeiter ein Eintrag) nicht herum. Die Kürzel pro Bundesland findet ihr ebenfalls hier. Als Antwort bekommen wir dann folgenden Text im JSON-Format zurück (Hier am Beispiel Nordrhein-Westfalen):

{„Neujahrstag“:{„datum“:“2016-01-01″,“hinweis“:““},“Karfreitag“:{„datum“:“2016-03-25″,“hinweis“:““},“Ostermontag“:{„datum“:“2016-03-28″,“hinweis“:““},“Tag der Arbeit“:{„datum“:“2016-05-01″,“hinweis“:““},“Christi Himmelfahrt“:{„datum“:“2016-05-05″,“hinweis“:““},“Pfingstmontag“:{„datum“:“2016-05-16″,“hinweis“:““},“Fronleichnam“:{„datum“:“2016-05-26″,“hinweis“:““},“Tag der Deutschen Einheit“:{„datum“:“2016-10-03″,“hinweis“:““},“Allerheiligen“:{„datum“:“2016-11-01″,“hinweis“:““},“1. Weihnachtstag“:{„datum“:“2016-12-25″,“hinweis“:““},“2. Weihnachtstag“:{„datum“:“2016-12-26″,“hinweis“:““}}

Mit Hilfe der Aktion „Regulärer Ausdruck“ bekommen wir schließlich alle Feiertage:

regulaerer-ausdruck-feiertage

Datum aus allen Feiertagen auslesen

 


Wie aus den Feiertagen die Anzahl der Urlaubstage pro Urlaub berechnet wird, werde ich in Teil 2 vorstellen. Den Link zum Blogpost findet ihr hier, wenn er fertig ist.

Leave a Comment

Your email address will not be published. Required fields are marked *