Questions & Answers

SOLVED
chriwi
Occasional Observer

Rule mit FormDataValueService

Jump to solution

Folgende Regel funktioniert nur zur Hรคlfte.

Ich hole mir aus der Seitenvorlage den Wert eines Feldes und schreibe den in die Absatzvorlage. Das funktioniert.

st_pageType ist entweder befรผllt oder nicht.

Wenn ich dann mit einer weiteren Regel den Value auf einen bestimmmten Text prรผfe der nicht da sein soll und das Feld st_pageTYpe leer ist soll ein weiters Formularfgeld eingeblendet werden.

Umgekehrt bedeutet es, wenn st_pageType den Wert "pt_resp_nutrition_calculator" hat und somit nicht empty ist, soll "st_seo_background" ausgeblendet werden. Und das funlktioniert nicht. Wo ist der Fehler.

st_seo_background  ist immer sichtbar.


<RULE>
<SCHEDULE delay="0" id="TundR" service="FormDataValueService">
<PARAM name="UID">
<PROPERTY name="PAGE_UID" source="#global"/>
</PARAM>
<PARAM name="UIDTYPE">
<TEXT>PAGESTORE</TEXT>
</PARAM>
<PARAM name="FIELD">
<TEXT>pt_template</TEXT>
</PARAM>
<PARAM name="LANGUAGE">
<PROPERTY name="LANG" source="#global"/>
</PARAM>
</SCHEDULE>
<DO>
<PROPERTY name="VALUE" source="st_pageType"/>
</DO>
</RULE>


<RULE when="ONLOCK">
<IF>
<NOT>
<EQUAL>
<PROPERTY name="VALUE" source="st_pageType"/>
<TEXT>pt_resp_nutrition_calculator</TEXT>
</EQUAL>
</NOT>
</IF>
<WITH>
<PROPERTY name="EMPTY" source="st_pageType"/>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="st_seo_background"/>
</DO>
</RULE>

 

VG Christiane.

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Christiane,

wenn ich es richtig sehe, spielen hier zwei Probleme rein.

1) Du benutzt ONLOCK - die Regel wird also beim Bearbeiten des Formulars einmalig ausgefรผhrt. Zu dem Zeitpunkt ist das Ergebnis des Value Service aber noch nicht da, also wird das Feld nicht sichtbar. Wenn der Value Service dann den Wert geholt und รผber die andere Regel gesetzt hat, ist es zu spรคt.
Hinweis: Wenn diese Annahme stimmt, sollte es klappen, wenn Du speicherst, das Bearbeiten beendest und dann das Bearbeiten neu startest (dann ist der Wert ja schon da, ร„nderungen auf der Seite wirken dann aber erst wieder beim erneuten Bearbeiten.
Lรถsung hierfรผr: Das ONLOCK entfernen (dann sollte das Feld nach einigen Millisekunden sichtbar werden)

2) Du benutzt IF (im ersten Post). Das fรผhrt dazu, dass die Regel nur ausgefรผhrt wird, wenn das IF Statement zutrifft. Trifft es nicht zu, wird die Regel nicht erneut ausgefรผhrt, die Eingabekomponente wird also gegebenenfalls nicht wieder ausgeblendet, wenn auf der Seite etwas geรคndert wird. (Spielt im Moment noch keine Rolle wegen 1)
Lรถsung: Die beiden Bedingungen im WHEN Abschnitt der Regel verknรผpfen

Viele GrรผรŸe
Holger

View solution in original post

0 Kudos
3 Replies
chriwi
Occasional Observer

Umgekehrt hat es auch keine Wirkung

<RULE when="ONLOCK">
<WITH>
<EQUAL>
<PROPERTY name="VALUE" source="st_pageType"/>
<TEXT>pt_resp_nutrition_calculator</TEXT>
</EQUAL>
</WITH>
<DO>
<NOT>
<PROPERTY name="VISIBLE" source="st_seo_background"/>
</NOT>
</DO>
</RULE>

0 Kudos
hoebbel
Crownpeak employee

Hallo Christiane,

wenn ich es richtig sehe, spielen hier zwei Probleme rein.

1) Du benutzt ONLOCK - die Regel wird also beim Bearbeiten des Formulars einmalig ausgefรผhrt. Zu dem Zeitpunkt ist das Ergebnis des Value Service aber noch nicht da, also wird das Feld nicht sichtbar. Wenn der Value Service dann den Wert geholt und รผber die andere Regel gesetzt hat, ist es zu spรคt.
Hinweis: Wenn diese Annahme stimmt, sollte es klappen, wenn Du speicherst, das Bearbeiten beendest und dann das Bearbeiten neu startest (dann ist der Wert ja schon da, ร„nderungen auf der Seite wirken dann aber erst wieder beim erneuten Bearbeiten.
Lรถsung hierfรผr: Das ONLOCK entfernen (dann sollte das Feld nach einigen Millisekunden sichtbar werden)

2) Du benutzt IF (im ersten Post). Das fรผhrt dazu, dass die Regel nur ausgefรผhrt wird, wenn das IF Statement zutrifft. Trifft es nicht zu, wird die Regel nicht erneut ausgefรผhrt, die Eingabekomponente wird also gegebenenfalls nicht wieder ausgeblendet, wenn auf der Seite etwas geรคndert wird. (Spielt im Moment noch keine Rolle wegen 1)
Lรถsung: Die beiden Bedingungen im WHEN Abschnitt der Regel verknรผpfen

Viele GrรผรŸe
Holger

0 Kudos
chriwi
Occasional Observer

Vielen Dank. Das ONLock war die Ursache.
Dann geht es auch einfacher und funktioniert.


<RULE>
<WITH>
<PROPERTY name="EMPTY" source="st_pageType"/>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="st_seo_background"/>
</DO>
</RULE>

VG Christiane.

0 Kudos

Type a product name