Springe zum Inhalt

Berechnung der Differenz zweier Datumswerte mit Nintex Workflow

Möchte man mit Nintex Workflow die Differenz zwischen zwei Datumswerten, zum Beispiel in Tagen, berechnen, so könnte man zunächst auf die Idee kommen, dies mit der Aktion für mathematische Berechnungen zu machen, was jedoch so nicht funktionieren wird, da diese Funktion mit dem Datumsformat nicht zurecht kommt.

Daher möchte ich in diesem Artikel eine einfache Lösung für diese häufig auftretende Anforderung aufzeigen, die sich die Inlinefunktionen von Nintex zu nutze macht. Dabei werde ich zunächst kurz die Nintex Inlinefunktion vorstellen um dann alle Schritte der Anwendung anhand von Screenshots visualisieren um dem Leser das Nachvollziehen meiner Lösung etwas einfacher zu machen.

Nintex Inlinefunktionen

Inline-Funktionen stehen generell in allen Feldern zur Eingabe von Text zur Verfügung, sofern diese das Referenzieren erlauben. Ich werde in diesem Beispiel hierfür die Aktion „Zeichenkette erstellen“ verwenden die diese Voraussetzungen erfüllt. Nintex bringt eine ganze Reihe von Funktionen mit, erlaubt jedoch auch die Erweiterung über das Tool NWAdmin.

Erwähnenswert ist hierbei auch, dass eine Inlinefunktion auch eine Funktion als Argument (Übergabeparameter) haben kann. Die Reihenfolge der Auswertung erfolgt immer von innen nach aussen.

Die Inlinefunktion ‚fn-DifferenzTage‘ im Detail

Mit dieser Inline-Funktion kann, wie bereits erwähnt, die Differenz zweier Datumswerte in Tagen berechnet werden. Die Rückgabe ist eines Dezimalzahl. Je nach Datentyp können auch Bruchteile von Tagen über Nachkommastellen berücksichtigt werden.

Der komplette Funktionskopf: fn-DifferenzTage({Startdatum},{Enddatum})

Übergabeparameter: Startdatum und Enddatum jeweils von Datentyp ‚Datum und Uhrzeit‘

Analog können die anderen Inlinefunktionen für Zeitbezogene Differenzen betrachtet werden, wie z.B. ‚fn-DifferenzStunden‘.

Verwendung der Inlinefunktion in einem Nintex Workflow

Zunächst wähle ich die Aktion ‚Zeichenkette erstellen‘ aus und ziehe sie in meinem Workflow.

Differenz-Datumswerte_1

 

Dann rufe ich den Dialog für die Konfiguration auf und Füge eine Referenz ein. Dazu einfach den Button ‚Referenz einfügen‘ betätigen.

 

Differenz-Datumswerte_2

 

Nun wähle ich den Reiter ‚Inlinefunktionen‘ aus und suche mir meine gewünschte Funktion heraus. In meinem Fall die für die Differenz in Tagen. Hier einmal Doppelklicken und der Funktionskopf wird im Textfeld unten erscheinen. Anschliessend mit OK bestätigen.

 

Differenz-Datumswerte_5

Nun fügen wir in die Klammer nach dem Funktionsnamen zwei weitere, von einem Komma sparierte, Referenzen ein. In meinem Fall Referenziere ich auf die gerade gezeigte Weise noch einmal zwei Felder des aktuellen Listenelements, nämlich das Start- und Enddatum. Beide Parameter der Funktion müssen vom Datentyp ‚Datum und Uhrzeit‘ sein, während der Rückgabetyp eine dezimalzahl ist die hier in einen String, also einer Zeichenkette, gespeichert wird und nicht in einem Datentyp für Zahlen wie z.B. Double. Dementsprechend habe ich mir vorher eine Workflowvariable vom Datentyp String angelegt in der ich meinen Wert zwischenspeichere um ihn später wieder in einen Zahlentyp zu verwandeln (Parsing).

 

Differenz-Datumswerte_3

Im nächsten Schritt weise ich den Wert einem Feld im aktuellen Listenelemnt zu welches vom Datentyp ‚Zahl‘ ist. Rechts neben der Zuweisung befindet sich ein kleiner Button mit drei Punkten. Hier lässt sich der Rückgabetyp auswählen. Hier kann ich also festlegen welchen Datentyp der Wert meiner Workflowvariable ‚durchlaufzeit_string‘ annehmen soll, bevor er an das Feld ‚Duchlaufzeit (Tage)‘ zugewiesen wird.

 

Differenz-Datumswerte_6

 

In diesem Fall steht lediglich der Rückgabetyp Double zur Verfügung, es wird also eine Zahl an das Zahlenfeld zurückgegeben. Damit passiert hier ein implizites Parsing, was bedeutet dass eine Zahl aus der Zeichenkette gewonnen wird.

 

Differenz-Datumswerte_7

 

Veröffentlicht inMS SharePointNintexTechnik und Technologie

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar