Ausdrücke

Ausdrücke werden verwendet in Selligent by Zetafür eine Vielzahl von Zielen, wie z. B. um Daten in Inhalten (Nachrichten, Vorlagen, mobilen Nachrichten, SMS), Journey-Komponenten und Listen verfügbar zu machen.

Um ein solches Ziel zu erreichen:

  • können manuelle Ausdrücke verwendet werden.
    Sie nutzen die folgende Syntax: [%Funktion%].
    Eine übersicht über alle verfügbaren Selligent by Zeta Funktionen finden Sie in diesem Dokument.

    Beispiel eines manuellen Ausdrucks in einer Textkomponente in Inhalt, um den Wert des Mail-Felds in der Master-Liste in Grossschreibung umzuwandeln (zur Personalisierung) :

    Beispiel eines manuellen Ausdrucks in einer Textkomponente in Inhalt, um den Standardwert 'Unemployed' anzuzeigen, wenn das Feld 'JOB' in der Hauptliste keine Daten enthält (zur Personalisierung). In anderen Fällen wird der Wert des Feldes 'JOB' angezeigt:
    [%if( eq( [MASTER.JOB],''), 'Unemployed',[MASTER.JOB])%]

    Beispiel eines manuellen Ausdrucks in einer Datenkomponente in einem Benutzerdefinierte Journey der als Wert zum Speichern in einem Feld bei einer Liste verwendet wird.


 

  • visuelle Ausdrücke können verwendet werden
    • im Personalisierungseditor — verwendet, um Personalisierungsfelder in Inhalten hinzuzufügen.
    • Beispiel eines Personalisierungsfelds, dass die "Grossschreibung"-Funktion verwendet:

    • über den Constraint-Editor — verwendet im Inhalt (z. B. Sichtbarkeits-Constraint oder bedingter Mailheader).
    • Beispiel eines Constraints, um zu prüfen, ob ein Datenauswahlelement den Text "Telefon" enthält — das Ergebnis ist ja (true) oder nein (false) (dies kann zum Beispiel als Sichtbarkeits-Constraint zum Ein-/Ausblenden bestimmter Inhalte verwendet werden):

    • über den Constraint Builder — verwendet für die Segmentierung einer Liste.
    • Beispiel:

Welche Syntax muss verwendet werden und was ist der Unterschied?
Sehen wir uns die folgenden Beispiele an:
[%[MASTER.NAME]%] — gibt den Wert für das Feld NAME zurück
[%'MASTER.NAME'%] — gibt den Wert für MASTER.NAME zurück

 

Ausdrücke können an den folgenden Orten in Inhalten (Nachrichten, Vorlagen, mobile Nachrichten, SMS) verwendet werden:

  • im Headerfeld, wie z. B. Von- und An-Feld, Pre-Header und Betreff
  • im Inhalt selbst
  • als Quelle für eine Bildkomponente
  • in Link-URLs und Linkparametern
  • in Sichtbarkeits-Constraints

Ausdrücke können genauso im Source-Modus durch Verwenden des Ausdrucksattributs verwendet werden. Die Syntax ist je nachdem, wo der Ausdruck verwendet wird, etwas anders:
Sichtbarkeits-Constraint — enthält ([MASTER.NAME],'Andrew') (Beispiel: <img expression="all(contains([MASTER.NAME], 'Andrew'))") />
Inhaltsabschnitt — [%[MASTER.NAME]%]

 

Ausdrücke können auch in Journey-Komponenten verwendet werden:

Der Constraint Builder wird auch verwendet, um Constraints für die Listensegmentierung im Kapitel Listen zu erstellen.
Neben den allgemeinen Ausdrücken sind einige spezifische Ausdrücke vorhanden, die nur im Constraint Builder verwendet werden können.
Diese Ausdrücke sind hier aufgelistet.

 

Ausdrücke für das Erhalten von Daten

  • [%[SCOPE.FIELDNAME]%] – Holen von Profildaten (Zielgruppenliste oder erweitertes 1:1-Profil) aus der Datenbank.
  • [%requestValue('FIELDNAME')%] – Beim Abrufen von Formularwerten. Zum Beispiel verwendet in Formularkomponenten wie Textfeld, Journey-Komponenten wie Datenkomponente oder Ereignisdatenkomponente und anderen.
  • [%requestValue('PARAMETER')%] — Beim Abrufen eines Parameters. Zum Beispiel auf einer Seite oder in einer Datenkomponente in einer Journey verwendetZum Beispiel auf einer Seite oder in einer Datenkomponente in einer Journey verwendet.
    • Wenn mehrere Parameterwerte existieren und Sie einen spezifischen Wert laden möchten, muss loadValue verwendet werden (siehe unten).
  • [%componentValue('SCOPE.VARIABLE')%] – Bei Verwendung einer benutzerdefinierten Komponente oder eines benutzerdefinierten Kanals ohne Ausgabeparameter. „variable“ ist der Name des Ausgabeparameters (zum Beispiel zum Anzeigen des Werts in einer Seite).
  • [%label('DICTIONARY_NAME','LABEL_NAME')%] – Bei Verwendung von Beschriftungen aus Wörterbüchern mit ihren entsprechenden Übersetzungen. Beachten Sie, dass dieser Ausdruck nicht als Wert einer Labels in einem Wörterbuch verwendet werden kann.
  • [%eventValue('EVENTVALUE')%] – Bei Verwendung benutzerdefinierter Ereignisse. Beachten Sie, dass dieser Ausdruck nicht als Wert einer Labels in einem Wörterbuch verwendet werden kann.
  • [%eventValue('FIELDNAME')%] – Zum Hinzufügen von Transaktionsfeld werten zu einer Nachricht. Beachten Sie, dass dieser Ausdruck nicht als Wert einer Labels in einem Wörterbuch verwendet werden kann.
  • [%VARIABLE.VARIABLE_NAME%] – Bei Verwendung von Variablen in einer E-Mail/Seite.
  • [%itemValue('SELECTION_NAME', index, 'FIELDNAME')%] – Beim Abrufen von Daten aus einer Datenauswahl für die Personalisierung. Zum Beispiel zum Abrufen eines Bilds aus einer Datenauswahl (in a Repeater). (Beachten Sie, dass der Index die Anzahl der Zeile in der Datenauswahl, beginnend von 0 für die erste Zeile, ist.)
  • [%loadValue(VALUE1, VALUE2, DefaultValue)%] – Zum Laden von Werten, zum Beispiel Parameterwerte in einer Input-komponente in einer Journey oder Kombinationsfeld werte in einem Formular.
  • [%journeyLookupValue('LIST_API_Name', 'FIELDNAME')%] — In einer Lookup-Komponente in einer benutzerdefinierten Journey kann die Eigenschaft „Daten laden“ ausgewählt werden. Beim Auswählen dieser Option sind die geladenen Daten in den Journey-Komponenten die der Lookup-komponente folgen und für die Personalisierung in resultierenden Nachrichten (nur Seite) über diesen Ausdruck verfügbar. Beachten Sie, dass dieser Ausdruck nicht als Wert einer Labels in einem Wörterbuch verwendet werden kann.
    • [%journeyLookupValue('LIST_API_Name', 'FIELDNAME', 'MY_SCOPE')%] — Der Ausdruck journeyLookupValue kann auch mit einem dritten Parameter, nämlich 'scope' verwendet werden. Der Scope sollte verwendet werden, wenn mehrere Lookup-Komponenten, die in derselben benutzerdefinierten Journey verwendet werden, ein Lookup bei derselben Liste durchführen. Der Scope kann dann die richtigen Daten aus der richtigen Lookup-Komponente abrufen.
  • [%cartValue('PRICE')%][%cartValue('Products',0,'PRICE')%] — Wenn eine Einkaufswagenabbruch-Journey ausgelöst wird, sendet Site Informationen bezüglich des Einkaufswagens, der diese Journey ausgelöst hat, und die Produkte im abgebrochenen Einkaufswagen (ID, Preis und Menge) an Selligent by Zeta. Diese Daten können für die Personalisierung von Nachrichten und in Sichtbarkeits-Constraints verwendet werden. Wenn keine Site-Daten für das ausgewählte Feld gefunden werden können, wird standardmäßig der Wert aus der Datenauswahlliste genommen.
    Der Ausdruck cartValue ist für jedes Feld in der Datenauswahl verfügbar. Zurzeit werden jedoch nur Preis und Menge unterstützt.
    - Verwendung innerhalb eines Repeaters : [%cartValue('PRICE')%]
    - Verwendung außerhalb eines Repeaters : [%cartValue('Products',0,'PRICE')%]
  • [%listValue('LISTNAME.FIELDNAME')%] — Lookup und Rückgabe eines Feldwertes in der Lookup-Liste (aktueller Scope) oder in einer beliebigen (1:1 oder 1:N) verknüpften Liste.
    Beispiel: Die Lookup-Liste (aktueller Scope) ist die Haupt-Zielgruppenliste mit einer verknüpften Liste „Präferenzen", die ein Feld „Interessen“ enthält, aus dem wir den Wert abrufen möchten.
    -> listValue([Preferences.Interests]) gibt den Wert „fashion“ zurück
    (listValue wird häufig im Constraint Builder verwendet, um Feldwerte von verknüpften Listen zu vergleichen)
  • [%profileValue('LISTNAME.FIELDNAME')%] — Lookup und Zurückgeben eines Feldwertes in der Zielgruppenliste (oder in einer 1:1-Profilerweiterung dieser Zielgruppenliste).
    Beispiel: Der aktuelle Scope ist die Liste „Produkte“ (eine Datenliste, die nicht mit der Haupt-Zielgruppenliste verknüpft ist). Wir möchten die E-Mail-Adresse des Kontakts aus der Zielgruppenliste abrufen.
    -> profileValue([MASTER.MAIL]) gibt den Wert „john.doe@selligent.com“ zurück
    (üblicherweise wird profileValue innerhalb des Constraint Builders verwendet, um Feldwerte der Liste mit der (nicht verknüpften) Zielgruppenliste zu vergleichen)
  • [%jsonValue(FIELD,JSON Key)%] — Um die Daten zu verwenden, die in einem Listenfeld für Benutzerdefinierte Ereignisse vom Typ JSON (Array) zurückgegeben werden.
    - field = ein Ausdruck, der das JSON-Feld zurückgibt, z. B.: eventValue('FAVORITESHOPS')
    - JSON key = der Pfad zum Navigieren zum spezifischen Schlüssel im JSON (Array). Verwenden Sie „.“ als Trennzeichen und „[x]“ als (nullbasierten) Indexoperator.
    Beispiel:
    Ein benutzerdefiniertes Ereignisfeld mit dem Namen FAVORITESHOPS enthält die JSON-Strukturen wie oben angezeigt.
    - Um den „Ort“ aus dem ersten Element im ADDRESS-Array zu erhalten, verwenden Sie:[% jsonValue(eventValue('FAVORITESHOPS'), 'ADDRESS[0].CITY') %]
    - Um den „Ort“ aus dem zweiten Element im ADDRESS-Array zu erhalten, verwenden Sie: [% jsonValue(eventValue('FAVORITESHOPS'), 'ADDRESS[1].CITY') %]

 

Ausdrücke in HTML-Tags

HTML muss immer gültig sein. Beim Verwenden von Tags mit Attributen müssen die folgenden Bedingungen erfüllt sein:

  • Die HTML muss ein gültiges Format haben.(d. h. Standard-HTML-Verwendung; HTML-Tags (wie <head> und <body>) mit korrektem Öffnen und Schließen aller Tags, Verwendung korrekter Benennungen usw.)
  • Jedes Attribut im HTML-Tag muss einen Wert haben.

Ausdrücke können auch innerhalb von HTML-Tags verwendet werden. Ein Ausdruck ermöglicht Ihnen die Beurteilung des Werts für dieses bestimmte Attribut.

     

Beispiel:
<input type="text" name="SURNAME" placeholder="[% if(eq([MASTER.LANGUAGE],'FR'),'Monsieur','Mister') %]" id="inputText-1" >

In diesem Beispiel zeigt das Eingabefeld einen Platzhalter mit dem Wert 'Monsieur' für den Fall, dass das Feld LANGUAGE der Masterliste den Wert 'FR' (french) für den Benutzer hat. Andernfalls wird 'Mister' als Platzhalter angezeigt.

Hinweis:
Importiertes HTML ist die einzige Ausnahme, bei der ein expr: Präfix verwendet wird, um die Verwendung der Selligent-Syntax zu kennzeichnen.
Zum Beispiel:
Die importierte HTML-Datei enthält einen Link wie diesen: <a href="https://www.google.com"
target="_blank">
Nach dem Import in Selligent wird daraus: <a expr:href="LINK(101)">
Der Link wird auf der Registerkarte Links in Ihrer Nachricht hinzugefügt.

Boolesche Ausdrücke

Boolesche Ausdrücke sollten nicht zur direkten Anzeige des Ergebnisses verwendet werden. Sie geben nur einen Wert „true“ oder „false“ zurück.

Boolesche Ausdrücke sind im folgenden Kontext nützlich:

  • in einem IF-Ausdruck
  • EBeispiel: [% if(isnumeric([MASTER.cardid]), 'Ihre Karten-ID ist korrekt', 'Ihre Karten-ID ist nicht korrekt. Sie sollte ein Zahlenwert sein.')) %]
    Wenn der Karten-ID-Wert ein Zahlenwert ist, wird die erste Meldung angezeigt. Falls nicht, wird die zweite Meldung angezeigt.

  • in einem Sichtbarkeits-ConstraintMehr Informationen über Sichtbarkeits-Constraints sind hier zu finden.
  • Beispiel: <sg:content expression="all(eq(tobool([VARIABLE.Loyal]),tobool('true')))">
    Der Textinhalt ist nur sichtbar, wenn die Boolesche Variable „Loyal“ auf „true“ eingestellt ist.

  • in einem Ausdruck in einer Split-Komponente — Mehr Informationen über die Split-Komponente sind hier zu finden.

 

Liste aller Boolesche Ausdrücke in Selligent:

  • contains
  • startswith
  • endswith
  • notcontains
  • isdate
  • eq (gleich)
  • ne (nicht gleich)
  • lt (kleiner als)
  • gt (grösser als)
  • le (kleiner als oder gleich)
  • ge (größer als oder gleich)
  • between
  • and / all
  • or / any
  • not
  • isempty
  • isnotempty
  • containstag
  • tobool
  • chkmail / ismail
  • isnumeric
  • regex
  • InWebContext()

Hinweis: Eine Anleitung zum Verwenden aller Booleschen (und anderen Ausdrücke) finden Sie im Dokument „Funktionen“

 

Validierungen bei Ausdrücken

Beim Validieren einer Journey zeigt der Validierungsbereich eine Warnmeldung an, wenn der angegebene Ausdruck komisch aussieht. Diese Warnung weist darauf hin, dass etwas mit einem unbekannten oder falschen Ausdruck nicht stimmt.

Hinweis: Die Warnung blockiert nicht die Ausführung der aktuellen Journey (dies ist nur bei Fehlern der Fall).