19.1 Grundlegendes
Nachfolgend finden Sie allgemeine Erläuterungen zur Verwendung von Velocity Skript Ausdrücken.
19.1.1 Kommentare
Kommentare in Skripten werden durch „##“ gekennzeichnet:
19.1.2 Variablen Zuweisungen
Variablen Zuweisungen erfolgen durch:
### Fester String Wert
#set($variablenName="Wert als String")
## Fester Integer Wert
#set($variablenName=1)
## Wert aus einer anderen Variablen
#set($variablenName=$andererVariablenName)
## Ergebniswert aus einem Funktionsaufruf
#set($emailIsValid=$ScriptHelper.validateEmail($!requestParameters.EMAIL))
19.1.3 Variablen in Formularen ausgeben
Die Variablen, welche in einem Skript ermittelt und zugewiesen werden, können in den HTML-Texten eines EMM-Formulars ausgegeben werden.
Achtung: Dies ist nicht der Skripttext, sondern der Text für die Erfolgs- oder Fehlerseite des Formulars.
19.1.4 Verwendung von Variablen in umgebendem Text
Sollte die Verwendung einer Variablen mit umgebenden Text uneindeutig werden, so kann der Variablenname auch jederzeit mit geschweiften Klammern umschlossen werden:
Der Preis beträgt: \${variablenName}Euro
19.1.5 Erzeugung einer leeren Liste
Mit Velocity Skripten kann man auch eine leere Liste erzeugen, die dann gefüllt und weiterverwendet wird. Direkte Konstruktoraufrufe sind in Velocity Skripten nicht möglich.
\</code
==== Erzeugung und Nutzung einer Map ====
Eine Map / Dictionary / Table kann wie folgt erzeugt und dann mit Werten
befüllt werden:
\<code>
### Neue Map anlegen
#set($mapVariable={})
## Fester Integer Wert als neuer Wert
#set($mapVariable["neuer Key"]=1)
## oder
$mapVariable.put("neuer Key", 2)
## Fester Text Wert als neuer Wert
#set($mapVariable["neuer Key"]="Abc123")
## oder
$mapVariable.put("neuer Key", "Abc124")
19.1.6 Verzweigungen (IF)
Durch Velocity Skripte kann Programmcode mit Verzweigungen erzeugt werden.
#set($customerID = 1234)
#if($customerID != 0)
## Empfänger wurde gefunden
#else
## Empfänger wurde nicht gefunden
#end
19.1.7 Schleifen (While, Foreach)
Echte While-Schleifen existieren in Velocity nicht.
Foreach-Schleifen sehen wie folgt aus:
#set($allMailingLists = [1234, 1235, 1236])
#foreach($mailingList in $allMailingLists)
## Code der für jede der MailiniglistIDs ausgeführt werden soll
#end
19.1.8 Direkte Verwendung der Request Parameter und Request Header
Das Ausrufezeichen bedeutet, dass hier ein leerer Wert zurückkommt, auch wenn der Parameter gar nicht im Request vorhanden ist. Ohne Ausrufezeichen würde hierbei ein Fehler geworfen werden und das Skript wird abgebrochen.
$!requestParameters.email ## Caseinsensitive Angabe des Parameternamens "Email" ist erlaubt
#set($referer="Request wurde ohne Referer gesendet") ## Defaultwert
#set($!referer=$_request.getHeader("referer"))
## Überschreibt den Defaultwert in "$referer" nur, wenn ein neuer Wert vorliegt
19.1.9 String Bearbeitung (Substring)
Durch einen Bug im Velocity war es nicht möglich, per „length()-1“ im Substring die entsprechende Funktion herzustellen, daher „length()+-1“
#set($text = "Abcd12345")
#set($neueLaenge = $text.length()+-1)
#set($textNeu = $text.substring(0, $neueLaenge))
## => $textNeu = "Abcd1234"
19.1.10 Rechnen mit Zahlenwerten aus Strings
Zahlenwerte aus Request Parametern sind stets Strings, auf welchen aber keine Rechenoperationen ausgeführt werden können. Daher müssen diese zuerst in Zahlen umgewandelt werden. Diese müssen aber zur Anzeige in HTML-Texten wieder in Strings zurück gewandelt werden.
#set($zahlInString="12345")
#set($zahlZumRechnen = $ScriptHelper.parseInt($zahlInString))
#set($zahlZumRechnen = $zahlZumRechnen + 1)
#set($zahlWiederAlsString = " $zahlZumRechnen ") ## Wichtig sind dabei die Leerzeichen in den Anführungsstrichen
19.1.11 Anzeige der Erfolgsseite oder Fehlerseite bei Formularen
Ein E-Marketing Manager Velocity Skript kann (meistens am Ende) einen bestimmten String-Wert (NICHT Integer) in der Variablen „scriptResult“ setzen, der bestimmt, ob im Rahmen des Skriptaufrufs innerhalb eines Formulars am Ende die Erfolgsseite oder die Fehlerseite angezeigt werden soll.
Anzeige der Erfolgsseite:
Anzeige der Fehlerseite: