Aktuelles Datum in Regeln
Author: StefanS
Publication Date: 7/19/2024 10:47
Hallo Zusammen,
vermutlich weiß ich die Antwort schon, aber manchmal gibt es ja auch elegantere Lösungen, als die in meinem Kopf.
Unser Kunde möchte ein Datumsfeld vorbelegen. Das Datum soll vom Anlagezeitpunkt aus zwei Jahre in der Zukunft liegen. Mittlerweile gibt es in den Regeln eine ADD-Arithmetik, mit der sich das zukünftige Datum einfach berechnen lassen würde. Allerdings gibt es in den Regeln keine Möglichkeit, an das aktuelle Datum zu kommen. Oder habe ich da etwas übersehen? Die Eigenschaft "DATE" kann leider nur statische Datumsangaben. Wäre aber eigentlich der perfekte Ort.
Mein Weg: Eine versteckte Eingabekomponente vom Typ Datum mit preset="created". Und eine Regel, die über ADD dann zwei Jahre dazurechnet.
Abgesehen von der zusätzlichen Komponente, ist hier unschön, dass es sich um einen Datensatz handelt. Da ich das zusätzliche Feld nicht auf eine Spalte abbilden will (ist ja kein wirklicher Wert des Datensatzes), ist mein Mapping natürlich mit Warnung versehen.
Was wäre eine Alternative? Ein ValueService, der das Datum berechnet? Aus meiner SIcht ein ziemlicher Aufwand für ein Datum.
Schönere Lösungen herzlich willkommen.
Dank und Gruß
Stefan
-
Author: hoebbel - 7/19/2024 12:01
Hallo Stefan,
den Weg mit der versteckten Eingabekomponente hätte ich auch vorgeschlagen. Eine bessere Lösung habe ich auch nicht gefunden.
<RULE when="ONLOCK"> <IF> <AND> <EQUAL> <PROPERTY name="LANG" source="#global"/> <PROPERTY name="MASTER" source="#global"/> </EQUAL> <PROPERTY name="EMPTY" source="Pflichtfeld"/> </AND> </IF> <WITH> <ADD value="2 year"> <PROPERTY name="VALUE" source="creationDate"/> </ADD> </WITH> <DO> <PROPERTY name="VALUE" source="creationDate"/> </DO> </RULE>
Getestet habe ich, ob es klappt, wenn man eine Regel definiert, die ONLOCK die DATE Eingabekomponente, die mit preset="created" konfiguriert wurde, einfach hochzählt und die nur feuert, wenn ein Pflichtfeld nicht gefüllt ist (also nur beim ersten Bearbeiten des Absatzes)
Zwar kann man auf die Art das Datum entsprechend verändern - aber die Regel scheint mehrfach ausgeführt zu werden. Auch die Einschränkung, dass die Regel nur in der Mastersprache feuern soll, hat keine Besserung gebracht. Hier die entsprechende Regel (die nicht wie gewünscht funktioniert)Ich fürchte, dass ich somit keine bessere Lösung (als deine beiden Ideen) anbieten kann
Der Anwendungsfall, dass man gegen das aktuelle Datum prüfen will, ist in meinen Augen valide. Insofern empfehle ich Dir hier, einen entsprechenden Änderungswunsch einzustellen, dass man in den Regeln gegen das aktuelle Datum prüfen kann. damit könnte man dann auch prüfen, ob ein Datum in der Zukunft/Vergangenheit liegt, um entsprechend reagieren zu können.Tut mir leid, dass ich keine Lösung habe,
Holger0 -
Author: hoebbel - 11/28/2024 7:38
Kurzer Hinweis: Die gewünschte Funktionalität wird ab der FirstSpirit Version 2024.13 verfügbar sein.
Syntax:
<DATE>NOW</DATE>
0
Please sign in to leave a comment.
Comments
2 comments