Fonctions de gestion des collections collection-management-functions

À propos des fonctions de collecte de requêtes

Le langage d’expression introduit également un ensemble de fonctions pour interroger des collections. Ces fonctions sont expliquées ci-dessous.

Dans les exemples suivants, nous utilisons un événement nommé « LobbyBeacon » contenant une collection de jetons de notification push. Les exemples de cette page utilisent la structure de payload d’événement illustrée ci-dessous :

                {
   "_experience":{
      "campaign":{
         "message":{
            "profile":{
               "pushNotificationTokens":[
                  {
                     "token":"token_1",
                     "application":{
                        "_id":"APP1",
                        "name":"MarltonMobileApp",
                        "version":"1.0"
                     }
                  },
                  {
                     "token":"token_2",
                     "application":{
                        "_id":"APP2",
                        "name":"MarketplaceApp",
                        "version":"1.0"
                     }
                  },
                  {
                     "token":"token_3",
                     "application":{
                        "_id":"APP3",
                        "name":"VendorApp",
                        "version":"2.0"
                     }
                  }
               ]
            }
         }
      }
   },
   "timestamp":"1536160728"
}
NOTE
Dans les exemples ci-dessous, cette payload est référencée à l’aide de @event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens} où « LobbyBeacon » est le nom de l’événement et le reste du chemin d’accès correspond à la structure affichée ci-dessus.

La fonction all(<condition>)

La fonction all permet de définir un filtre sur une collection donnée en utilisant une expression booléenne.

<listExpression>.all(<condition>)

Exemple conceptuel : parmi tous les utilisateurs de l’application, vous pouvez obtenir ceux qui utilisent IOS 13 (expression booléenne « application utilisée == IOS 13 »). Le résultat de cette fonction est la liste filtrée contenant les éléments correspondant à l’expression booléenne (exemple : utilisateur de l’application 1, utilisateur de l’application 34, utilisateur de l’application 432).

Dans une activité Condition de Source de données , vous pouvez vérifier si le résultat de la fonction all est nul ou non. Vous pouvez également combiner cette fonction all avec d’autres fonctions telles que count. Pour plus d’informations, voir Activité de condition de Source de données.

Exemples de code utilisant la payload LobbyBeacon :

Les exemples ci-dessous utilisent la payload d’événement affichée en haut de cette page.

CAUTION
L’utilisation d’événements d’expérience dans des expressions/conditions de parcours n’est pas prise en charge. Si votre cas d’utilisation nécessite l’utilisation d’événements d’expérience, envisagez d’autres méthodes. ​ En savoir plus ​

Exemple 1

Nous voulons vérifier si un utilisateur a installé une version spécifique d’une application. Pour ce faire, nous obtenons tous les jetons de notification push associés aux applications mobiles dont la version est égale à 1.0. Ensuite, nous exécutons une condition avec la fonction count pour vérifier que la liste de jetons renvoyée contient au moins un élément.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all(currentEventField.application.version == "1.0").token}) > 0

Le résultat est vrai.

Exemple 2

Ici, nous utilisons la fonction count pour vérifier s’il existe des jetons de notification push dans la collection.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all().token}) > 0

Le résultat est vrai.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.token})

Le résultat de l’expression est 3.

NOTE
  • Lorsque la condition de filtrage de la fonction all() est vide, le filtre renvoie tous les éléments de la liste. Toutefois, pour compter le nombre d’éléments d’une collection, la fonction all n’est pas obligatoire.

  • currentEventField n’est disponible que lors de la manipulation de collections d’événements, currentDataPackField lors de la manipulation de collections de sources de données et currentActionField lors de la manipulation de collections de réponses d’actions personnalisées.

Lors du traitement des collections avec all, first et last, nous effectuons une boucle sur chaque élément de la collection, un par un. currentEventField, currentDataPackField et currentActionField correspondent à l'élément en boucle.

Fonctions first(<condition>) et last(<condition>)

Les fonctions first et last permettent également de définir un filtre sur la collection en renvoyant le premier/dernier élément de la liste qui répond au filtre.

<listExpression>.first(<condition>)

<listExpression>.last(<condition>)

Exemple 1

Cette expression renvoie le premier jeton de notification push associé aux applications mobiles dont la version est 1.0.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.first(currentEventField.application.version == "1.0").token}

Le résultat est token_1.

Exemple 2

Cette expression renvoie le dernier jeton de notification push associé aux applications mobiles dont la version est 1.0.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.last(currentEventField.application.version == "1.0").token}

Le résultat est token_2.

La fonction at(<index>)

La fonction at permet de référencer un élément spécifique dans une collection en fonction d’un index.
Index 0 est le premier index de la collection.

<listExpression>.at(<index>)

Exemple

Cette expression renvoie le deuxième jeton de notification push de la liste.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.at(1).token}

Le résultat est token_2.

recommendation-more-help
journey-optimizer-help