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 de gebeurtenislading die een inzameling 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 "allen (<condition>)"

De functie all 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 (bijvoorbeeld: app-gebruiker 1, app-gebruiker 34, app-gebruiker 432).

Bij een Source Condition-activiteit van Data kunt u controleren of het resultaat van de functie all null is of niet. U kunt deze all functie ook combineren met andere functies, zoals count . Voor meer informatie, zie de activiteit van de Voorwaarde van Source van Gegevens.

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 functie count om te controleren of de geretourneerde lijst met tokens ten minste één element bevat.

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

Het resultaat is waar.

Voorbeeld 2:

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

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

Het resultaat zal waar zijn.

NOTE
Wanneer de het filtreren voorwaarde in allen () functie leeg is, zal de filter alle elementen in de lijst terugkeren. Nochtans, om het aantal elementen van een inzameling te tellen, wordt de alle functie niet vereist.
count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.token})

Het resultaat van de uitdrukking 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 functie nowWithDelta wordt geretourneerd.

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 wanneer u gebeurtenisverzamelingen manipuleert, currentDataPackField wanneer u gegevensbronverzamelingen manipuleert en currentActionField wanneer u aangepaste actieverzamelingen bewerkt.
Wanneer u verzamelingen verwerkt met all , first en last , wordt elk element van de verzameling een voor een herhaald. currentEventField, currentDataPackField en currentActionField beantwoorden aan het element dat wordt herhaald.

de functies "eerst (<condition>)"en "laatste (<condition>)"

De functies first en last laten ook de definitie van een filter op de inzameling toe terwijl het terugkeren van het eerste/laatste element van de lijst die de filter ontmoet.

<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.

@event{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.

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

Het resultaat is "token_2".

NOTE
De ervaringsgebeurtenissen worden uit Adobe Experience Platform opgehaald als een verzameling in omgekeerde chronologische volgorde, vandaar:
  • De functie first 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 gelijk aan 602 heeft.

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

de functie "bij (<index>)"

Met de functie at kunt u naar een specifiek element in een verzameling verwijzen 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.

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

Het resultaat is "token_2".

Andere voorbeelden

Deze uitdrukking keert de productnamen terug die op de waarde SKU worden gebaseerd. De lijst met deze producten is opgenomen in de lijst met gebeurtenissen, met als voorwaarde de gebeurtenis-id.

#{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}

Deze expressie haalt de naam op van het laatste product in de productlijst van een handelsgebeurtenis waarbij het gebeurtenistype 'productListAdds' is en de totale prijs groter dan of gelijk is aan 150.

 #{ExperiencePlatform.ExperienceEventFieldGroup.experienceevent.last(
currentDataPackField.eventType == "commerce.productListAdds").productListItems.last(currentDataPackField.priceTotal >= 150).name}
recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76