aVogt
Returning Creator

Regel: Abfrage einer Toogle-Eingabekomponente

Jump to solution

Hallo,

ich möchte folgende Regel erstellen:

Im einem DOM-Feld muss etwas eingegeben werden, wenn bei einer Toogle-Eingabekomponente Ja (True) ausgewählt wird.

Ich habe folgendes probiert, aber ohne Erfolg:

<ON_SAVE>

<WITH>

  <AND>        

   <NOT><PROPERTY source='cs_aenderung' name='EMPTY'/></NOT>

   <EQUAL>

    <PROPERTY source='cs_mail' name="VALUE" />

    <TRUE/>

   </EQUAL>

  </AND>

</WITH>

<DO>

  <VALIDATION>

   <PROPERTY source="cs_aenderung" name="VALID"/>

   <MESSAGE lang="*" text="The text must not be empty!"/>

       </VALIDATION>

</DO>

</ON_SAVE>

Es scheint an der Überprüfung der Toogle zu liegen.

Kann mir jemand helfen?

Grüße

Andreas

0 Kudos
1 Solution

Accepted Solutions

Es bedarf keiner zweiten Regel. Wichtig ist, dass sich das IF auf die Regelausführung bezieht und nicht auf den resultierenden Wert.

In der originalen Regel ist das AND nicht zielführend. Folgende Wertermittlung sollte funktionieren:

<OR>

  <NOT><PROPERTY source='cs_aenderung' name='EMPTY'/></NOT>

  <EQUAL>

    <PROPERTY source='cs_mail' name="VALUE" />

    <FALSE/>

  </EQUAL>

</OR>

Prosaaussage: Das Zielfeld ist valide, wenn (cs_aenderung nicht leer) oder (cs_mail nicht aktiv) ist.

Gruß

Stefan

View solution in original post

0 Kudos
4 Replies
thmarx
I'm new here

Hallo Andreas,

ich glaube, so in etwa sollte es funktionieren:

          <ON_SAVE>

        <IF>

                              <EQUAL>

                                  <PROPERTY source='test5' name="VALUE" />

                                  <TRUE/>

                                 </EQUAL>               

        </IF>

        <WITH>

                              <NOT><PROPERTY source="test4" name="EMPTY"/></NOT>

        </WITH>

        <DO>

            <VALIDATION>

                <PROPERTY source="test4" name="VALID"/>

                <MESSAGE lang="*" text="The editor must not be empty!"/>

            </VALIDATION>

        </DO>

    </ON_SAVE>

test5 = Toggle-Komponente

test4 = Dom-Komponente

Viele Grüße

Thorsten

aVogt
Returning Creator

Hallo Torsten,

vilen Dank, funktioniert wie gewünscht.

Damit bei der Toogle-Auswahl "nein", das DOM-Feld nicht angegeben werden muss, benötige ich eine zweite Regel, oder? Zumindest bleibt bei "nein" das DOM-Feld noch Pflichtangabe.

<ON_SAVE>

    <IF>

        <EQUAL>

            <PROPERTY source='cs_mail' name="VALUE" />

            <FALSE/>

        </EQUAL>

    </IF>

    <WITH>

        <OR>

            <NOT><PROPERTY source='cs_aenderung' name='EMPTY'/></NOT>

            <PROPERTY source='cs_aenderung' name='EMPTY'/>

        </OR>

    </WITH>

    <DO>

        <VALIDATION>

            <PROPERTY source="cs_aenderung" name="VALID"/>

            <MESSAGE lang="*" text="The text must not be empty!"/>

        </VALIDATION>

    </DO>

</ON_SAVE>

Gibt es eine einfachere Möglichkeit (ggf. ohne zweite Regel)?

Grüße

Andreas

0 Kudos

Ich glaube, der Status sollte automatisch. Also bei nein, sollte das DOM-Feld als nicht Pflichtfeld angesehen werden.

Ich bin mir auch nicht sicher, ob hier eine zweite Regel hilft, da du keine Möglichkeit hast, anzugeben, das ein Feld valide ist. Das sollte eigentlich immer valide sein, wenn keine Regel etwas anderes behauptet.

0 Kudos

Es bedarf keiner zweiten Regel. Wichtig ist, dass sich das IF auf die Regelausführung bezieht und nicht auf den resultierenden Wert.

In der originalen Regel ist das AND nicht zielführend. Folgende Wertermittlung sollte funktionieren:

<OR>

  <NOT><PROPERTY source='cs_aenderung' name='EMPTY'/></NOT>

  <EQUAL>

    <PROPERTY source='cs_mail' name="VALUE" />

    <FALSE/>

  </EQUAL>

</OR>

Prosaaussage: Das Zielfeld ist valide, wenn (cs_aenderung nicht leer) oder (cs_mail nicht aktiv) ist.

Gruß

Stefan

0 Kudos