Search the FirstSpirit Knowledge Base
Hallo Community,
Folgendes Szenario:
Ein Pagetemplate hat unter Regeln folgende Validierung:
<ON_SAVE>
<SCHEDULE service="ProjectSettingsService" id="minCheck" delay="500">
<PARAM name="SERVICE_ACTION">
<TEXT>MIN</TEXT>
</PARAM>
<PARAM name="INPUT_FIELD_1">
<TEXT>ps_header_desc_min_length</TEXT>
</PARAM>
<PARAM name="INPUT_VALUE_1">
<PROPERTY source="pt_heading_description" name="VALUE"/>
</PARAM>
</SCHEDULE>
<DO>
<VALIDATION>
<PROPERTY source="pt_heading_description" name="VALID"/>
<MESSAGE lang="*" text="Description is is too short"/>
</VALIDATION>
</DO>
</ON_SAVE>
Der Java-Client und WebEdit validieren die Regel einwandfrei und gibt die entsprechende Benachrichtigung an den Benutzer.
Nun muss die Validierung der Regeln auch in einem Release Workflow abgefragt werden um zu garantieren das nur valide Inhalte veröffentlicht werden können.
Wenn in dem Script jetzt auf dem ValidationAgent entweder
validate(idProvider, ValidationAgent.ValidationScope.SAVE)
oder
validate(formData, language, ValidationAgent.ValidationScope.SAVE)
aufgerufen wird, ist result.isValid() immer true.
Egal in welchem Scope es ausgeführt wird und egal ob eine andere Regel im demselben Scope verletzt wurde.
Sobald die Regel mit SCHEDULE entfernt wird funktionieren alle anderen Regeln wieder normal und isValid() gibt bei Regelverletzungen wieder false zurück.
Hat jemand eine Idee woran es liegen konnte?
Grüße
Sebastian Pearse-Danker
Tut mir leid habe die technischen Daten vergessen:
FirstSpirit Client 5.0.424.59809
Server version: 5.0.424.59809
Memory: 181.02 of 494.94 Mbyte occupied
Java version: 1.6.0_30 32bit Sun Microsystems Inc.
Operating system: Windows 7 6.1 x86
Hi,
die Validierung über API ist in gewissen Dingen eingeschränkt. Aus Gründen der garantierten Terminierung ist hier nur _ein_ Regellauf möglich, das heißt, es erfolgt keine Auswertung des Zustands nach einmaliger Anwendung aller Regeln. Analog wird hier kein Zugriff auf ValueServices gestattet und eine entsprechende Regel bei der Ausführung mit einem Log-Eintrag (LogLevel Debug) quittiert.
Sollte dieser Log-Eintrag fehlen, bitte als Fehler melden.
Gruß
Stefan
Hallo Stefan,
Danke für die Antwort. Das ist sehr ungünstig. Gibt es Möglichkeit dieses Problem zumindest einzuschränken?
Es ist ein ziemliches Problem das diese Regel nicht einfach ignoriert wird sondern der gesamten Scope(alle ON_SAVE Regeln) auf true setzt wird. Oder eventuell die Validierungs-Ergebnisse der ursprünglichen Validierung abfragen?
Grüße
Sebastian
Das andere Regeln ignoriert werden, sollte aber nicht so sein. Wenn dem so ist, dies bitte entsprechend mit ausführlichen Informationen beim Helpdesk melden.
Gruß
Stefan