Questions & Answers

felix_reinhold
Returning Responder

ON_SAVE Rule ruft ValueService bei refresh auf

Hallo zusammen,

ich bin bei der Entwicklung eines ValueServices auf ein seltsames Verhalten von FS gestoรŸen.

Ich habe in den Rules meines Metadaten-Templates eine Regel fรผr das Speicher-Event (ON_SAVE) erstellt und rufe darin einen ValueService auf:

<ON_SAVE>
    <SCHEDULE service="UserValueService" id="changed_by" delay="0">
      <PARAM name="debug">
           <TEXT>true</TEXT>
      </PARAM>
     </SCHEDULE>
    <DO>
        <PROPERTY source="fs_portal_changed_by" name="VALUE"/>
    </DO>
</ON_SAVE>

Der Sevice an sich funktioniert auch, wird jedoch viel zu hรคufig aufgerufen. Ich habe testweise eine LogAusgabe in die getValue-Funktion des ValueServices eingefรผgt. Bei jedem Refresh der Seite (auch wenn ich nicht im Editiermodus bin) wird diese Logausgabe ausgegeben. ร–ffne ich dann den Editiermodus, so wird die Logausgabe im Millisekundentakt ausgegeben und der Client ist kurz vorm Absturz.

Testweise habe ich den ValueService auch schon komplett geleert bis auf die LogAusgabe und einen Dummy-Returnwert. Das Verhalten war identisch.

Wieso wird das "ON_SAVE"-Event getrittrigered, wenn ich nicht speichere, bzw. nicht einmal die Seite bearbeite? Gibt es noch ein generelles Problem mit Rules in Metadatentemplates?

Viele GrรผรŸe

Felix

0 Kudos
3 Replies
StefanSchulz
I'm new here

Hi,

das liegt daran, dass ON_SAVE kein Event ist. Es sagt nichts รผber den Zeitpunkt der Ausfรผhrung der Regel aus, sondern legt fest, wann die Regel valide sein muss (in der Dokumentation auch als Restriktionsstufe bezeichnet). Es ist zur Unterstรผtzung der redaktionellen Arbeit gedacht und nicht als Triggermechanismus fรผr Funktionen auf Elemente. Der Name des Regeltyps mag ein wenig verwirrend sein, wenn man nicht um die Herkunft weiรŸ.

GruรŸ

Stefan

mbergmann
Crownpeak employee

Hallo Felix,

es handelt sich hier nicht um reine Event-Listener, die verschiedenen Varianten definieren in Verbindung mit einer Validierung lediglich die "Stรคrke" der Restriktion.

Siehe auch hier.

Du kรถnntest hier mit einer <CONDITION> arbeiten, die genau dazu existiert um unnรถtige ValueService-Aufrufe zu vermeiden.

Viele GrรผรŸe

Michael

<edit>Da war ich wohl ein Minรผtchen zu langsam ๐Ÿ˜‰ </edit>

felix_reinhold
Returning Responder

Besten Dank fรผr die schnelle Antwort,

dann werde ich mal schauen, ob ich damit irgendwie zurande komme.

Viele GrรผรŸe

Felix

0 Kudos

Type a product name