Zum Hauptinhalt gehen

Werte aus Eingabefeld 1 in Eingabefeld 2 übernehme und bestimmte Zeichen ersetzen

Kommentare

1 Kommentar

  • Holger Höbbel

    Hallo Nicolai,

    normalerweise würde ich hier antworten, dass man für einen solchen Anwendungsfall einen entsprechenden ValueService schreiben sollte, der die Daten entsprechend umwandelt.

    Da die Anforderungen hier aber sehr überschaubar sind, würde ich statt dessen den ScriptValueService verwenden, da es bei solch kleinen Anpassungen keine Rolle spielen sollte, wenn ein Beanshell Skript instanziiert werden muss. 

    Das würde dann beispielsweise so aussehen:

    Regel:

     <RULE>
    <SCHEDULE delay="500" id="set_anchorId" service="ScriptValueService">
    <PARAM name="script">
    <TEXT>set_anchor_id</TEXT>
    </PARAM>
    <PARAM name="anchorText">
    <PROPERTY name="VALUE" source="st_anchorText"/>
    </PARAM>
    </SCHEDULE>
    <DO>
    <PROPERTY name="VALUE" source="st_anchorId"/>
    </DO>
     </RULE>

    Die Regel macht nichts anderes, als den Wert der Eingabekomponente "st_anchorText" als Variable mit den Namen "anchorText" an das Skript set_anchor_id zu übergeben.

    Und das dazugehörige Skript (für das Beispiel mit dem Referenznamen "set_anchor_id")

    return anchorText.toLowerCase().replaceAll(" ","_");

    Wenn aber mehrere entsprechende Umwandlungen pro Seite benötigt werden, ist es wahrscheinlich auch bei solchen einfachen Anwendungsfällen besser, einen eigenen ValueService zu implementieren. Bei der Verwendung des ScriptService muss bei jeder Ausführung ein neuer Beanshell Interpreter gestartet werden, was Rechenzeit und Speicherplatz benötigt. 

    Viele Grüße
    Holger

    2

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.