Conteneur SQL

Vous pouvez utiliser un conteneur SQL pour les pages ainsi que pour afficher les données stockées dans une liste de données.

Pour chaque requête de page, Selligent charge le contenu (articles) pour ses conteneurs SQL à partir de la liste de données. Il exécute une requête SQL (définie dans la configuration du conteneur) et récupère les fiches de la liste de données. Chaque ligne renvoyée par la requête SQL est traduite en 1 article (les colonnes sont les champs des articles). La principale raison d'être des conteneurs SQL est d'afficher les données sur une page liée à un certain contact. En présence d'un champ USERID dans votre liste de données, vous pouvez limiter de façon dynamique le retour des données pour un certain contact. Ainsi, si le contact 2 voit la page, seules ses données s'afficheront (USERID=2), etc.

Pour chaque requête de page, les articles sont rechargés à partir de la base de données. Ce qui garantit que le contenu d'un conteneur SQL reflète toujours le contenu de la liste de données au moment de la requête de la page. Par conséquent, les conteneurs SQL ne devraient être utilisés que s'il est strictement nécessaire qu'une page affiche toujours les données les plus récentes. De plus, le nombre de données récupérées devrait être le plus possible limité.

Remarque : Les conteneurs SQL ne sont disponibles que pour les pages Selligent. Vous ne pouvez pas les utiliser dans les e-mails ou les templates Express.

Création du conteneur SQL

Pour ajouter un conteneur SQL à une page :

1. Accédez à l'onglet « Composants » et sélectionnez le composant « Conteneur SQL » dans la liste « Composants dynamiques ».

2. Glissez et déposez-le sur la page, à l'emplacement de votre choix. Les propriétés s'afficheront.

 

Sur l'onglet « Général »
  • Saisissez un nom et une description.
  • Le champ Type est renseigné automatiquement.
  • Protection du contenu :  (par défaut pour un conteneur d'articles, inutile pour les conteneurs SQL).
Sur l'onglet « Sélection du contenu » :

L'onglet « Sélection du contenu » permet de définir où le conteneur SQL chargera les articles.

  • Liste de données : la liste à partir de laquelle les articles sont récupérés.
  • Clause Where : permet de définir le filtre qui limite le nombre d'articles chargés à partir de la liste de données. Vous pouvez utiliser des données publiées ou issues du profil utilisateur maître.

Exemple :
Utilisez ~FIELDNAME~ pour récupérer des données du profil utilisateur maître. Exemple : USERID=~ID~, où ID est le champ ID de la liste d'audience du contact.
Utilisez ~@FIELDNAME~ pour récupérer une valeur publiée, où FIELDNAME est le nom du champ d'entrée du formulaire de la page précédente.

  • Nombre maximum d'articles : permet de limiter le nombre de fiches renvoyées par la requête. Si vous ne saisissez aucune valeur ou que vous définissez une valeur supérieure à 500, le système en limitera le nombre maximum à 500.

Remarque technique :
L'instruction SQL est exécutée sur chaque page cliquée. Pour éviter des problèmes de performance, la clause Where doit être la plus efficace possible (index) et renvoyer le moins d'articles possible.

  • Champs Article : Sélectionnez un champ pour trier les articles et définir l'ordre dans lequel les articles seront renvoyés.

Exemple :
Les résultats d'une requête effectuée sur une base de données qui n'utilise pas un paramètre ORDER BY explicite sont renvoyés dans un ordre aléatoire. Si le paramètre « Nombre maximum d'articles » limite le nombre d'articles renvoyés par la requête, seuls les premiers n articles renvoyés par la requête (où n est la valeur configurée dans la boîte de dialogue) seront pris en compte, les autres seront ignorés. Étant donné que les résultats de la requête ne sont pas dans l'ordre, il est impossible de prévoir quels articles feront partie des résultats au final.
Ce qui est également le cas pour les conteneurs d'articles standard, pour lesquels vous pouvez ajouter des champs de tri. Ajouter ces champs de tri classera les articles renvoyés par la requête AVANT que le paramètre « Nombre maximum d'articles » ne soit appliqué. Ce qui permet de déterminer les fiches à renvoyer en premier.

Un test permet de s'assurer que la clause Where est saisie correctement. Cliquez sur le bouton « Test SQL » pour ouvrir la boîte de dialogue ci-après :

(

Cette boîte de dialogue vous permet de tester l'instruction SQL par rapport à la base de données) Vous devez sélectionner une liste d'audience et un utilisateur test pour pouvoir compléter tous les champs de profil utilisés dans la clause Where. Lorsque vous cliquez sur le bouton « Test », le résultat du test s'affiche. Les articles renvoyés par l'instruction SQL sont répertoriés au bas de la boîte de dialogue.

Lorsque vous avez fini de configurer le conteneur SQL, cliquez sur le bouton « OK ». Le conteneur SQL s'ajoutera à la liste des composants utilisés. Tous les champs du conteneur sont automatiquement chargés. Ces champs correspondent aux colonnes de la liste de données sélectionnée. Dans la fenêtre Composants, sous « Utilisé dans cette page », cliquez sur le nom du conteneur SQL pour voir les champs.

Cliquer avec le bouton droit sur un champ permet d'accéder à ses propriétés et de le définir comme obligatoire :

Si un champ obligatoire est vide, la fiche sera sautée et ne s'affichera pas.

Cliquer avec le bouton droit sur le conteneur permet d'accéder à une option qui affiche les articles.

(Il s'agit du contenu de la liste de données configurée pour le conteneur. Les règles de sélection du contenu ne s'appliquent pas dans cette vue)

 

Placement du conteneur d'actions dans l'e-mail et ajout de champs

Si vous n'avez pas glissé et déposé un composant Conteneur d'actions sur le message, vous pouvez ajouter le conteneur d'articles au message en cliquant avec le bouton droit sur le conteneur dans la fenêtre Composants et en sélectionnant « + Insérer ».

Une fois ajouté au message, le conteneur SQL prend la forme suivante :

1. En-tête : affiché une seule fois au-dessus de tous les articles, non obligatoire.

2 Élément : cette section contiendra les articles réels. Obligatoire, il se répétera pour chaque section.

3. Pied de page : affiché une seule fois en dessous des articles. Non obligatoire.

4. Aucune correspondance (par défaut pour un conteneur d'articles, inutile pour les conteneurs SQL).

Code source : « maparameter », contenant le nom du conteneur d'articles.
<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>

La section « Élément » (MAITEM) contiendra la mise en page de chaque article. Les champs Article font office d'espaces réservés au contenu de l'article (titre de l'article, texte, image, lien, etc.). Utilisez l'étendue ITEM pour faire référence à ces champs. Dans l'image ci-dessous, la mise en page est définie avec une image sur la gauche, le titre en gras, etc. Tous les champs Conteneur d'articlesdoivent être placés dans la section « Élément » (MAITEM). Pour ajouter des champs au conteneur, glissez et déposez-les dans la section. Vous pouvez aussi ajouter des champs manuellement, en utilisant l'étendue Élément. Exemple : ~ITEM.TITLE~.

Dans l'image ci-dessus, « Plus d'informations » est un capteur qui utilise ~ITEM.LINK~ - un champ Conteneur d'articles - comme URL. Ce champ fonctionne car le capteur est utilisé dans la section Élément. Il ne fonctionnera pas hors de la section Élément (MAITEM). Il en va de même pour l'image. La source de l'image est un champ Conteneur d'articles ~ITEM.IMAGE~, qui fonctionnera uniquement dans la section Élément (MAITEM).

Code source :
<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>

Comme pour un conteneur d'articles, vous pouvez également définir un champ Reporting et étendre les articles sur plusieurs colonnes. Pour en savoir plus, consultez la rubrique Conteneur d'articles.

Retour à Composants