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:

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:

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.