Show Menu
SUJETS×

Utilisation d'agrégats

Ce cas pratique présente l'identification automatique des derniers destinataires ajoutés dans la base.
Pour cela, la date de création des destinataires dans la base est comparée à la dernière date connue à laquelle un destinataire a été créé à l'aide d'un agrégat. Tous les destinataires créés le même jour seront ainsi sélectionnés.
Pour parvenir à effectuer un filtre du type Date de création = max (Date de création) sur les destinataires, il est nécessaire de passer par un workflow afin de réaliser les étapes suivantes :
  1. Récupérez les destinataires de la base de données à l'aide d'une requête de base. Pour plus d'informations sur cette étape, consultez Créer une requête .
  2. Calculer la dernière date connue de création d'un destinataire via le résultat de la fonction d'agrégation max (Date de création) .
  3. Lier chaque destinataire au résultat de la fonction d'agrégation dans un même schéma.
  4. Filtrer les destinataires à l'aide de l'agrégat via le schéma édité.

Etape 1 : calculer le résultat de l'agrégat

  1. Créez une requête. Ici, le but est de calculer la dernière date de création connue parmi la totalité des destinataires de la base. La requête ne contient donc pas de filtre.
  2. Sélectionnez Ajouter des données .
  3. Dans les fenêtres successives, sélectionnez Données liées à la dimension de filtrage puis Données de la dimension de filtrage .
  4. Dans la fenêtre Données à ajouter , ajoutez une colonne calculant la valeur maximale du champ Date de création de la table des destinataires. Vous pouvez vous aider de l'éditeur d'expression ou entrer directement max(@created) à hauteur du champ Expression . Cliquez ensuite sur le bouton Terminer .
  5. Sélectionnez Editer les données additionnelles... puis Paramètres avancés... . Cochez l'option Désactiver l'ajout automatique des clés primaires de la dimension de ciblage .
    Cette option permet de ne pas renvoyer tous les destinataires comme résultat et de ne conserver que les données explicitement ajoutées. Dans le cas présent, il s'agit de la dernière date à laquelle un destinataire a été créé.
    Laissez l'option Supprimer les doublons (DISTINCT) cochée.

Etape 2 : lier les destinataires et le résultat de la fonction d'agrégation

Afin de lier la requête portant sur les destinataires à la requête servant au calcul de la fonction d'agrégation, il est nécessaire d'utiliser une activité d'édition du schéma.
  1. Définissez la requête portant sur les destinataires comme ensemble principal.
  2. Dans l'onglet Liens , ajoutez un nouveau lien et renseignez la fenêtre qui s'ouvre de la manière suivante :
    • Sélectionnez le schéma temporaire correspondant à l'agrégat. Les données de ce schéma seront ajoutées aux membres de l'ensemble principal.
    • Sélectionnez Utiliser une jointure simple afin d'associer le résultat de l'agrégat à chaque destinataire de l'ensemble principal.
    • Indiquez enfin que le lien est un Lien simple de type 11 .
Le résultat de la fonction d'agrégation est ainsi lié à chaque destinataire.

Etape 3 : filtrer les destinataires à l'aide de l'agrégat

Une fois le lien établi, le résultat de l'agrégat et les destinataires font partie du même schéma temporaire. Il est alors possible de réaliser un filtrage sur ce schéma afin d'effectuer la comparaison entre la date de création des destinataires et la dernière date de création connue, représentée par la fonction d'agrégation. Ce filtrage est réalisé grâce à une activité de partage.
  1. Dans l'onglet Général , sélectionnez Destinataires comme dimension de ciblage et Edition du schéma comme dimension de filtrage (afin de filtrer sur le schéma de la transition entrante de l'activité).
  2. Dans l'onglet Sous-ensembles , sélectionnez Ajouter une condition de filtrage sur la population entrante puis cliquez sur Editer... .
  3. Via l'éditeur d'expression, ajoutez un critère d'égalité entre la date de création des destinataires et la date de création calculée par l'agrégat.
    Les champs de type date de la base de données sont généralement enregistrés à la milliseconde près. Il faut alors étendre ces derniers à la journée entière afin de ne pas limiter le filtre aux destinataires créés à la même milliseconde.
    Pour cela, utilisez la fonction ToDate disponible via l'éditeur d'expression, qui convertit les dates et heures en dates simples.
    Les expressions à utiliser pour le critère sont donc :
    • Expression : toDate([target/@created]) .
    • Valeur  : toDate([datemax/expr####]) , où expr#### correspond à l'alias de l'agrégat défini dans la requête de la fonction d'agrégation.
Le résultat de l'activité de partage correspond ainsi aux destinataires créés le même jour que la dernière date de création connue.
Vous pouvez par la suite ajouter d'autres activités telle qu'une mise à jour de liste ou une diffusion afin de compléter votre workflow.