In diesem Blogbeitrag bespreche ich einen Ansatz, den Sie bei der Verwendung von Datums-/Zeitfunktionen verwenden können. Wenn Sie Mikroflüsse verwenden, um Zeitunterschiede zu berechnen, kann es schnell verwirrend werden, ob die von Ihnen verwendeten Funktionen die richtige Zeitausgabe erzeugen.
Ein weiteres häufiges Problem, insbesondere wenn Sie einen Zeitunterschied in Minuten berechnen, besteht darin, dass Sie einige zusätzliche Berechnungen durchführen müssen, um die Sekunden korrekt zusammen mit den Minuten anzuzeigen.
Beispiel
In diesem Beispiel werde ich einen Mikrofluss erstellen, der die durchschnittliche Zeit berechnet, die ein Benutzer zum Erledigen einer Aufgabe benötigt (angenommen, der Benutzer verwendet eine Aufgabenverwaltungs-App). Diese Zeit muss im Format angezeigt werden Xmin Ysec, wobei X eine Variable ist, die die durchschnittliche Zeit in Minuten anzeigt, und Y die durchschnittliche Zeit in Sekunden, wie unten zu sehen:

Konfiguration
Auf den ersten Blick könnte dies eine gewaltige Aufgabe sein, da Sie die Durchschnittszeit in zwei Variablen aufteilen und gleichzeitig sicherstellen müssen, dass die Zeit sowohl für Minuten als auch für Sekunden korrekt angezeigt wird. Das folgende Bild zeigt den Mikrofluss, der dies handhabt:

Dies sieht zwar nicht wie ein sehr komplizierter Mikrofluss aus, aber die letzte Aktionsschaltfläche erfordert ein wenig Komplexität und kann dem Entwickler bei falscher Konfiguration auch große Kopfschmerzen bereiten. Um die beiden oben genannten Zeitvariablen zu berechnen, müssen Sie zwei Funktionen erstellen, die Folgendes berechnen:
- Berechnen Sie die durchschnittliche Zeit zum Abschließen einer Aufgabe und runden Sie diese Zahl anschließend ab, sodass das Endergebnis der durchschnittliche Zeitminutenwert ist.
- Berechnen Sie die durchschnittliche Zeit zum Abschließen einer Aufgabe und ziehen Sie dann den oben berechneten durchschnittlichen Minutenwert ab, sodass das Endergebnis der durchschnittliche Zeitsekundenwert ist.
Um dies zu erreichen, verwenden wir die beiden folgenden Mikroflussfunktionen:
- Runden – Runden einer Gleitkommazahl, optional auf eine angegebene Genauigkeit
- Floor – Eine Gleitkommazahl abrunden
Unten sehen Sie einen Screenshot der korrekten Attributberechnungen für die Microflow-Aktion, der als Referenz verwendet werden kann:

Debugging-Tipps
Beim Debuggen der obigen Attributberechnungen ist es am besten, jeden Abschnitt jeder IF-Anweisung aufzuschlüsseln, indem Sie im Mikrofluss eine Variable erstellen, die nur diesen bestimmten Abschnitt der Berechnung enthält. Mit dieser Methode können Sie im Modellierer genaue Debugger-Haltepunkte festlegen, an denen Sie leicht feststellen können, welcher Abschnitt Ihrer Gleichungen falsch ist. Nachfolgend finden Sie ein Beispiel zum Debuggen der obigen Attribute:

Jede hervorgehobene Auswahl muss in einer eigenen Variable repliziert werden, sodass der Benutzer über den Debugger erkennen kann, ob eine dieser Funktionen einen falschen Wert berechnet.

Wie Sie oben sehen können, wurden fünf spezifische Variablen erstellt, um jede Funktion der berechneten Attribute zu erfassen. Anschließend fügen Sie dem ersten Abschnitt einen Debugger-Haltepunkt hinzu und sehen, was der berechnete Wert ist. Wenn es ein akzeptabler Wert ist, können Sie mit der zweiten Variable fortfahren. Wenn die Variable kein akzeptierter Wert ist, können Sie an diesem Abschnitt des Codes arbeiten. Mit diesem Prozess können Sie genau herausfinden, wo Ihr Fehler liegt, und Sie werden weniger frustriert sein, wenn Sie normalerweise die komplizierten Attribute berechnen und dann nicht wissen, wo Sie anfangen sollen, wenn ihr Wert falsch ist.
Fazit
Mithilfe der Datums-/Uhrzeitfunktionen in der Mendix Modeler kann eine leistungsstarke Möglichkeit sein, Benutzermetriken bei der Erledigung von Aufgaben visuell anzuzeigen, vorausgesetzt, Sie gehen bei der Fehlerbehebung Ihres Codes methodisch vor.