Aller au contenu principal

Aktuelles Datum in Regeln

Commentaires

5 commentaires

  • Zendesk API User
    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. 
    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)

    <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>

    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,
    Holger

    0
  • Zendesk API User
    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
  • Stefan Buchali

    Hallo zusammen,

    ich bin auf der Suche nach exakt dieser Funktionalität für einen ähnlichen Anwendungsfall:

    Im Formular soll ein Warnhinweis ausgegeben werden, wenn das eingepflegte Datum weniger als 1 Monat in der Zukunft (oder schon in der Vergangenheit) liegt.

    Meine (bisher noch starre) Regel sieht so aus:

    <RULES>
        <RULE>
            <WITH>
                <LESS_THAN>
                    <PROPERTY name="VALUE" source="pt_expires_date"/>
                    <DATE>2001-01-01</DATE>
                </LESS_THAN>
            </WITH>
            <DO>
                <PROPERTY name="VISIBLE" source="#form.pt_expiring_date_warning"/>
            </DO>
        </RULE>
    </RULES>

     

    Wenn ich das richtig verstehe, muss ich nun statt meiner <DATE>2001-01-01</DATE>-Angabe <DATE>NOW</DATE> einsetzen, korrekt?

    Naja... fast. Wie bekomme ich die Berechnung "NOW plus 1 Monat"?

     

    Danke und viele Grüße,

    Stefan

    0
  • Holger Höbbel

    Hallo Stefan,

    Du musst einfach nur eine entsprechende Zeitspanne zu dem aktuellen Datum hinzurechnen.

    einfaches Beispiel:

    <RULE>
       <WITH>
          <LESS_THAN>
             <ADD value="1 month">
                <DATE>NOW</DATE>
             </ADD>
             <PROPERTY name="value" source="pt_expires_date"/>
          </LESS_THAN>
       </WITH>
       <DO>
          <VALIDATION scope="INFO">
             <PROPERTY name="valid" source="pt_expires_date"/>
             <MESSAGE lang="*" text="Datum sollte schon mindestens einen Monat in der Zukunft liegen!"/>
          </VALIDATION>
       </DO>
    </RULE>

    Die Regel berücksichtigt beispielsweise nicht, ob die Eingabekomponente leer ist (dazu müsste ein <PROPERTY name="EMPTY" source="pt_expires_date"/> in ein <OR> mit aufgenommen werden). 

    Aber um das Grundprinzip zu zeigen, ist das Beispiel hoffentlich ausreichend :)

    Viele Grüße
    Holger

    0
  • Stefan Buchali

    Top, danke!

    0

Vous devez vous connecter pour laisser un commentaire.