Functies voor het beheer van verzamelingen collection-management-functions

De uitdrukkingstaal introduceert ook een reeks functies aan vraaginzamelingen.

Deze functies worden hieronder uitgelegd. In de volgende voorbeelden gebruiken we de gebeurtenislading die een verzameling bevat:

                {
   "_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"
}

De functie "all(<condition>)"

De all functie laat de definitie van een filter op een bepaalde inzameling toe door een booleaanse uitdrukking te gebruiken.

<listExpression>.all(<condition>)

Zo kunt u onder alle gebruikers van de app de toepassingen ophalen met IOS 13 (Booleaanse expressie "app used == IOS 13"). Het resultaat van deze functie is de gefilterde lijst met items die overeenkomen met de booleaanse expressie (voorbeeld: app-gebruiker 1, app-gebruiker 34, app-gebruiker 432).

In een activiteit van de Voorwaarde van de Gegevensbron kunt u controleren of het resultaat van all functie is null of niet. U kunt dit ook combineren all functies met andere functies, zoals count. Zie voor meer informatie Voorwaarde van gegevensbron, activiteit.

Voorbeeld 1:

We willen controleren of een gebruiker een specifieke versie van een toepassing heeft geïnstalleerd. Hiervoor krijgen we alle pushberichttokens die zijn gekoppeld aan mobiele toepassingen waarvoor de versie 1.0 is. Vervolgens voeren we een voorwaarde uit met de count functie om te controleren of de geretourneerde lijst met tokens ten minste één element bevat.

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

Het resultaat is waar.

Voorbeeld 2:

Hier gebruiken we de count functie om te controleren of er pushberichttokens in de verzameling zijn.

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

Het resultaat zal waar zijn.

NOTE
Wanneer de filtervoorwaarde in de all() Als de functie leeg is, retourneert het filter alle elementen in de lijst. Als u echter het aantal elementen van een verzameling wilt tellen, is de functie all niet vereist.
count(@{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.token})

Het resultaat van de expressie is 3.

Voorbeeld 3:

Hier controleren we of een individu in de afgelopen 24 uur geen communicatie heeft ontvangen. Wij filtreren de inzameling van ervaringsgebeurtenissen die uit de datasource ExperiencePlatform worden teruggewonnen, gebruikend twee uitdrukkingen die op twee elementen van de inzameling worden gebaseerd. Met name wordt de tijdstempel van de gebeurtenis vergeleken met de dateTime die door de nowWithDelta functie.

count(#{ExperiencePlatform.MarltonExperience.experienceevent.all(
   currentDataPackField.directMarketing.sends.value > 0 and
   currentDataPackField.timestamp > nowWithDelta(-1, "days")).timestamp}) == 0

Het resultaat is waar als er geen ervaringsgebeurtenis is die aan beide voorwaarden voldoet.

Voorbeeld 4:

Hier willen we controleren of een persoon in de afgelopen 7 dagen minstens één keer een toepassing heeft gestart, bijvoorbeeld om een pushmelding te activeren waarin hij of zij wordt uitgenodigd een zelfstudie te starten.

count(
 #{ExperiencePlatform.AnalyticsData.experienceevent.all(
 nowWithDelta(-7,"days") <= currentDataPackField.timestamp
 and currentDataPackField.application.firstLaunches.value > 0
)._id}) > 0
NOTE
currentEventField is alleen beschikbaar bij het manipuleren van gebeurtenisverzamelingen en currentDataPackField
bij het manipuleren van gegevensbronverzamelingen. Bij het verwerken van verzamelingen met all, first en last, wij
loop elk element van de inzameling één voor één. currentEventField en currentDataPackField
komt overeen met het element dat wordt herhaald.

De functies "first(<condition>)" en "last(<condition>)"

De first en last Met functies kunt u ook een filter op de verzameling definiëren en tegelijkertijd het eerste/laatste element van de lijst retourneren dat aan het filter voldoet.

<listExpression>.first(<condition>)

<listExpression>.last(<condition>)

Voorbeeld 1:

Deze expressie retourneert het eerste pushmeldingtoken dat is gekoppeld aan mobiele toepassingen waarvoor de versie 1.0 is.

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

Het resultaat is "token_1".

Voorbeeld 2:

Deze expressie retourneert het laatste pushmeldingtoken dat is gekoppeld aan mobiele toepassingen waarvoor de versie 1.0 is.

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

Het resultaat is "token_2".

NOTE
De ervaringsgebeurtenissen worden uit de Adobe Experience Platform opgehaald als een verzameling in omgekeerde chronologische volgorde, vandaar:
  • first functie retourneert de meest recente gebeurtenis
  • last functie retourneert de oudste functie.

Voorbeeld 3:

We controleren of de eerste (meest recente) Adobe Analytics-gebeurtenis met een waarde groter dan nul voor DMA-id een waarde heeft die gelijk is aan 602.

#{ExperiencePlatform.AnalyticsProd_EvarsProps.experienceevent.first(
currentDataPackField.placeContext.geo.dmaID > 0).placeContext.geo.dmaID} == 602

De functie "at(<index>)"

De at kunt u verwijzen naar een specifiek element in een verzameling op basis van een index.
Index 0 is de eerste index van de verzameling.

<listExpression>.at(<index>)

Voorbeeld:

Deze expressie retourneert de tweede token voor pushmeldingen van de lijst.

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

Het resultaat is "token_2".

Andere voorbeelden

#{ExperiencePlatform.ExperienceEventFieldGroup.experienceevent. all(currentDataPackField._aepgdcdevenablement2.purchase_event.receipt_nbr == "10-337-4016").
_aepgdcdevenablement2.purchase_event.productListItems. all(currentDataPackField.SKU == "AB17 1234 1775 19DT B4DR 8HDK 762").name}
 #{ExperiencePlatform.ExperienceEventFieldGroup.experienceevent.last(
currentDataPackField.eventType == "commerce.productListAdds").productListItems.last(currentDataPackField.priceTotal >= 150).name}
recommendation-more-help
4f4a00c1-77c9-4eee-84df-bbe6206c3ab9