Funktionen zur Verwaltung von Sammlungen

Die Ausdruckssprache bietet auch eine Reihe von Funktionen zum Abfragen von Sammlungen.

Diese Funktionen werden nachfolgend erläutert. In den folgenden Beispielen verwenden wir die Ereignis-Payload, die eine Sammlung enthält:

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

Die Funktion „all(<condition>)“

Die Funktion all ermöglicht mithilfe eines booleschen Ausdrucks die Definition eines Filters für eine bestimmte Sammlung.

<listExpression>.all(<condition>)

Beispielsweise können Sie von allen App-Anwendern diejenigen abfragen, die iOS 13 verwenden (boolescher Ausdruck „app used == iOS 13“). Das Ergebnis dieser Funktion ist die gefilterte Liste mit Elementen, die dem booleschen Ausdruck entsprechen (Beispiel: App-Anwender 1, App-Anwender 34, App-Anwender 432).

In einer Aktivität des Typs „Bedingung der Datenquelle“ können Sie überprüfen, ob das Ergebnis der Funktion all null ist. Sie können die Funktion all auch mit anderen Funktionen wie count kombinieren. Weitere Informationen finden Sie unter Aktivität „Bedingung der Datenquelle“.

Beispiel 1:

Wir möchten überprüfen, ob ein Anwender eine bestimmte Version einer App installiert hat. Zu diesem Zweck rufen wir alle Push-Benachrichtigungstoken für Apps mit der Version 1.0 ab. Anschließend führen wir eine Bedingung mit der Funktion count aus, um zu überprüfen, ob die zurückgegebene Liste von Tokens mindestens ein Element enthält.

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

Das Ergebnis ist wahr.

Beispiel 2:

Hier verwenden wir die Funktion count, um zu überprüfen, ob in der Sammlung Push-Benachrichtigungstoken vorhanden sind.

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

Das Ergebnis ist wahr.

Hinweis

Wenn die Filterbedingung in der Funktion all() leer ist, gibt der Filter alle Elemente in der Liste zurück. Um jedoch die Anzahl der Elemente einer Sammlung zu zählen, ist die Funktion „all“ nicht erforderlich.

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

Das Ergebnis des Ausdrucks ist 3.

Beispiel 3:

Hier prüfen wir, ob ein Kontakt innerhalb der letzten 24 Stunden keine Mitteilungen erhalten hat. Wir filtern die Sammlung von Erlebnisereignissen, die aus der Experience Platform-Datenquelle abgerufen wurden, mithilfe von zwei Ausdrücken, die auf zwei Elementen der Sammlung basieren. Insbesondere wird der Zeitstempel des Ereignisses mit dem von der Funktion nowWithDelta zurückgegebenen Wert „dateTime“ verglichen.

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

Das Ergebnis ist wahr, wenn es kein Erlebnisereignis gibt, das den beiden Bedingungen entspricht.

Beispiel 4:

Hier möchten wir überprüfen, ob ein Kontakt in den letzten 7 Tagen mindestens einmal eine App gestartet hat, um z. B. eine Push-Benachrichtigung auszulösen, die den Kontakt zum Start eines Tutorials einlädt.

count(
 #{ExperiencePlatform.AnalyticsData.experienceevent.all(
 nowWithDelta(-7,"days") <= currentDataPackField.timestamp
 and currentDataPackField.application.firstLaunches.value > 0
)._id}) > 0
Hinweis

currentEventField ist nur verfügbar, wenn Ereignissammlungen bearbeitet werden, und currentDataPackField,
wenn Datenquellensammlungen bearbeitet werden. Bei der Verarbeitung von Sammlungen mit all, first und last wird
jedes Element der Sammlung einzeln durchlaufen. currentEventField und currentDataPackField
entsprechen dem Element, das in der Schleife verarbeitet wird.

Die Funktionen „first(<condition>)“ und „last(<condition>)“

Die Funktionen first und last ermöglichen auch die Definition eines Filters für die Sammlung, wobei das erste/letzte Element der Liste zurückgegeben wird, das dem Filter entspricht.

<listExpression>.first(<condition>)

<listExpression>.last(<condition>)

Beispiel 1:

Dieser Ausdruck gibt das erste Push-Benachrichtigungstoken zurück, das mit Apps verknüpft ist, deren Version 1.0 ist.

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

Das Ergebnis ist „token_1“.

Beispiel 2:

Dieser Ausdruck gibt das letzte Push-Benachrichtigungstoken zurück, das mit Apps verknüpft ist, deren Version 1.0 ist.

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

Das Ergebnis ist „token_2“.

Hinweis

Die Erlebnisereignisse werden von Adobe Experience Platform als Sammlung in umgekehrter chronologischer Reihenfolge abgerufen. Entsprechend gilt:

  • Die Funktion first gibt das neueste Ereignis zurück.
  • Die Funktion last gibt das älteste zurück.

Beispiel 3:

Wir prüfen, ob das erste (neueste) Adobe Analytics-Ereignis mit einem Wert ungleich null für die DMA-ID den Wert „602“ hat.

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

Die Funktion „at(<index>)“

Mit der Funktion at können Sie anhand eines Index auf ein bestimmtes Element in einer Sammlung verweisen.
Der Index „0“ ist der erste Index der Sammlung.

<listExpression>.at(<index>)

Beispiel:

Dieser Ausdruck gibt das zweite Push-Benachrichtigungstoken der Liste zurück.

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

Das Ergebnis ist „token_2“.

Auf dieser Seite