SQL-Container

Ein SQL-Container kann für Seiten verwendet werden und zur Anzeige von Daten, die in einer Datenliste gespeichert sind.

Immer, wenn eine Selligent-Seite angefordert wird, lädt sie den Inhalt (Artikel) für ihre SQL Container aus der Datenliste. Hierzu führt sie eine SQL-Abfrage (die in der Konfiguration des Containers festgelegt ist) aus und frägt somit die Datensätze aus der Datenliste ab. Jede durch die SQL-Abfrage zurückgesendete Zeile wird in 1 Artikel übersetzt (die Spalten sind die Artikelfelder). SQL-Container dienen hauptsächlich der Anzeige von Daten auf einer Seite, die mit einem bestimmten Kontakt verknüpft ist. Wenn sich in Ihrer Datenliste das Feld USERID befindet, können Sie die Datenrückgabe für einen bestimmten Kontakt dynamisch limitieren. Wenn also Kontakt 2 die Seite ansieht, werden nur seine Daten angezeigt (USERID=2), etc.

Jede Seitenabfrage lädt die Artikel aus der Datenbank neu; dies gewährleistet, dass der Inhalt eines SQL Containers immer den Inhalt der Datenliste zum Zeitpunkt der Seitenabfrage wiederspiegelt. SQL Container sollten daher nur verwendet werden, wenn es unbedingt erforderlich ist, dass eine Seite immer die aktuellsten Daten anzeigt. Die Menge abgerufener Daten sollte so stark wie möglich begrenzt werden.

Hinweis: SQL Container stehen nur für Selligent-Seiten zur Verfügung. Sie können nicht in Mails oder Express-Vorlagen verwendet werden.

SQL-Container erstellen

Um einer Seite einen SQL Container hinzuzufügen:

1. Wählen Sie aus der Registerkarte „Komponenten“ die Komponente „SQL-Container“ aus der Liste der „Dynamischen Komponenten“ aus.

2. Legen Sie sie auf der Seite an der gewünschten Position ab. Die Eigenschaften werden angezeigt.

 

In der Registerkarte„Allgemein“
  • Geben Sie einen Namen und eine Beschreibung ein.
  • Das Feld Typ wird automatisch ausgefüllt.
  • Inhaltsschutz:  (standardmäßig für einen Artikelcontainer, für SQL-Container nicht erforderlich)
In der Registerkarte „Auswahl von Inhalten“:

„Auswahl von Inhalten“ legt fest, wo der SQL Container die Artikel laden soll.

  • Datenliste: Die Liste, von der die Artikel abgerufen werden.
  • „Wo-Bedingung“: Legt den Filter fest, der die aus der Datenliste geladenen Artikel begrenzt. Es können eingegebene Daten oder Daten aus dem Master-Benutzerprofil verwendet werden.

Beispiel:
Verwenden Sie ~FIELDNAME~, um Daten aus dem Master-Benutzerprofil aufzurufen, z.B.: USERID=~ID~ wobei ID das ID-Feld der Zielgruppenliste des Kontakts ist
Verwenden Sie ~@FIELDNAME~, um einen geposteten Wert abzufragen, wobei FIELDNAME der Name des Formular-Eingabefelds auf der vorherigen Seite ist.

  • Max Artikel Zähler: begrenzt die maximale Anzahl der Datensätze, die durch die Anfrage zurückgesendet werden. Wenn kein Wert bzw. ein Wert über 500 eingegeben wird, begrenzt das System die maximale Anzahl auf 500.

Technischer Hinweis:
Das SQL Statement wird bei jedem Seitentreffer ausgeführt. Um Leistungsprobleme zu vermeiden, muss die ‚Wo-Bedingung‘ so effizient wie möglich sein (Indexe) und sollte so wenig Artikelsätze wie möglich zurücksenden.

  • Artikelfelder: Wählen Sie ein Feld, um die Artikel zu sortieren und die Reihenfolge festzulegen, in der Artikel zurückgesendet werden.

Beispiel:
Eine Datenbankabfrage ohne explizite Angabe von REIHENFOLGE NACH sendet die Ergebnisse in zufälliger Reihenfolge zurück. Wenn die Einstellung ‚Max. Artikel Zähler‘ die durch die Abfrage zurückgesendeten Artikel begrenzt, werden die ersten N Artikel, die durch die Abfrage zurückgesendet werden, berücksichtigt (wobei N der im Dialog eingestellte Wert ist) und der Rest wird ignoriert. Dadurch, dass das Ergebnis der Abfrage unsortiert ist, kann man nicht vorhersagen, welche Artikel es in den endgültigen Satz von Ergebnissen schaffen.
Dies trifft auch für normale Artikelcontainer zu: Es können Sortierfelder hinzugefügt werden. Durch Hinzufügen dieser Sortierfelder werden die Artikel sortiert, die durch die Abfrage zurückgesendet werden EHE der „Max. Artikel Zähler“ erzwungen wird. Auf diese Weise können Sie festlegen, welche Datensätze zuerst zurückgeschickt werden.

Es gibt einen Test, um sicherzustellen, dass die ‚Wo-Bedingung‘ richtig eingegeben ist. Drücken Sie die Schaltfläche ‚Test SQL’, um folgenden Dialog zu öffnen:

(

Durch diesen Dialog kann das SQL Statement gegen die Datenbank getestet werden. Eine Zielgruppenliste und ein Testbenutzer müssen ausgewählt werden, damit sämtliche Profilfelder in der ‚Wo-Bedingung‘ ausgefüllt werden können. Durch Drücken der Schaltfläche „Test“ werden die Ergebnisse angezeigt. Unten im Dialogfenster werden die durch das SQL Statement zurückgesendeten Artikel aufgeführt.

Wenn die Konfiguration des SQL-Containers beendet ist, drücken Sie 'OK'. Der SQL-Container wird jetzt der Liste verwendeter Komponenten hinzugefügt. Alle Felder im Container werden automatisch geladen. Diese Felder entsprechen den Spalten der ausgewählten Datenliste. Klicken Sie im Fenster „Komponenten“ unter „In dieser Mail verwendet“ auf den Namen des Containers, um die Felder anzeigen zu lassen.

Durch Rechtsklick auf ein Feld können die Eigenschaften des Feldes geöffnet und dieses als Pflichtfeld festgelegt werden.

Wenn ein Pflichtfeld leer ist, wird der Datensatz übersprungen und wird nicht angezeigt.

Durch Rechtsklick auf den Container gelangen Sie zu einem Menüpunkt, der die Artikel anzeigt.

(Dies ist der Inhalt der Datenliste, die für den Container konfiguriert ist. Die Inhaltsauswahlregeln werden in dieser Ansicht nicht angewendet).

 

Platzieren des Aktions-Containers in der Mail und Hinzufügen von Feldern

Wenn Sie keine Aktions-Container-Komponente per Drag&Drop in die Nachricht gezogen haben, klicken Sie zum Hinzufügen des Artikelcontainers den Container im Bereich 'Komponenten' mit der rechten Maustaste an und wählen Sie '+Einfügen'.

Wenn der SQL-Container zur Nachricht hinzugefügt wurde, sieht er folgendermaßen aus:

1. Header: Wird einmal, über allen Artikeln angezeigt. Dies ist nicht verpflichtend.

2. Element: Dieser Abschnitt enthält die eigentlichen Artikel. Er wird für jeden Abschnitt wiederholt und ist verpflichtend.

3. Footer: Erscheint einmal unter den Artikeln. Dies ist nicht verpflichtend.

4. NoMatch (standardmäßig für einen Artikelcontainer, für SQL-Container nicht erforderlich).

Quellcode: maparameter enthält den Namen des Artikelcontainers
<div id="MACONTAINER" maconstraint="" macontenteditable="FALSE" maparameter="ARTICLES" matype="">
<div id="MAHEADER" macontenteditable="true"></div>
<div id="MAITEM" macontenteditable="true"></div>
<div id="MAFOOTER" macontenteditable="true"></div>
<div id="MANOMATCH" macontenteditable="true"> </div>
</div>

Der Abschnitt 'Item' (MAITEM) enthält das Layout für jeden Artikel. Die Artikelfelder dienen als Platzhalter für den Artikelinhalt (Titel des Artikels, Text, Bild, Link, etc.). Verwenden Sie den Ausdruck ITEM, um sich auf diese Artikel-Container-Felder zu beziehen. In der folgenden Abbildung wurde das Layout mit einem Bild auf der linken Seite, dem Titel in Fettschrift, usw. festgelegt. Alle Artikelcontainer-Feldermüssen innerhalb des Abschnitts 'Item' (MAITEM) platziert werden. Um Felder zum Container hinzuzufügen, ziehen Sie die Felder per Drag&Drop in den Abschnitt. Durch Verwendung des Ausdrucks 'Item' können Sie auch Felder manuell hinzufügen. Beispiel: ~ITEM.TITLE~

In der obigen Abbildung ist "More Info" ein Sensor, der ~ITEM.LINK~ (ein Artikel-Container-Feld) als URL verwendet. Das funktioniert, weil der Sensor innerhalb des Abschnitts 'Item' verwendet wurde. Außerhalb des Abschnitts 'Item' (MAITEM) klappt dies nicht. Dasselbe gilt für das Bild. Die Bildquelle ist ein Artikel-Container-Feld (~ITEM.IMAGE~), und es funktioniert auch nur innerhalb des Abschnitts 'Item' (MAITEM).

Quellcode:
<div id="MACONTAINER" maconstraint="" macontenteditable="FALSE" maparameter="ARTICLES" matype="">
 <div id="MAHEADER" macontenteditable="true"></div>
 <div id="MAITEM" macontenteditable="true">
   <img src="~ITEM.IMAGE~"  />
   <strong>~ITEM.TITLE~</strong><br />
   ~ITEM.CONTENT~<br />
   <a href="~PROBE(100)~">More info &raquo;</a>
 </div>
 <div id="MAFOOTER" macontenteditable="true"></div>
 <div id="MANOMATCH" macontenteditable="true"> </div>
</div>

Ähnlich wie einen Artikel-Container können Sie auch ein Reporting-Feld hinzufügen und Artikel über mehrere Spalten verteilen. Weitere Informationen hierzu finden Sie unter Artikelcontainer

Zurück zu Komponenten