Übergeben von Sammlungen in Parameter für benutzerdefinierte Aktionen passing-collection

Auf dieser Seite Erfahren Sie, wie Sie einfache - und -Objektsammlungen in benutzerdefinierte Aktionsparameter übergeben, damit sie zur Laufzeit dynamisch aufgefüllt werden.

Sie können eine Sammlung in Parametern benutzerdefinierter Aktionen übergeben, die zur Laufzeit dynamisch gefüllt wird.

Es werden zwei Arten von Sammlungen unterstützt:

  • Einfache Sammlungen

    Verwenden Sie einfache Sammlungen für Listen grundlegender Werte wie Strings, Zahlen oder boolesche Werte. Diese sind nützlich, wenn Sie nur eine Liste von Elementen ohne zusätzliche Eigenschaften übergeben müssen.

    Ein Beispiel dafür ist eine Liste von Gerätetypen:

    code language-json
    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • Objektsammlungen

    Verwenden Sie Objektsammlungen, wenn jedes Element mehrere Felder oder Eigenschaften enthält. Diese werden normalerweise verwendet, um strukturierte Daten wie Produktdetails, Ereigniseinträge oder Elementattribute zu übergeben.

    Beispiel:

    code language-json
    {
    "products":[
       {
          "id":"productA",
          "name":"A",
          "price":20.1
       },
       {
          "id":"productB",
          "name":"B",
          "price":10.0
       },
       {
          "id":"productC",
          "name":"C",
          "price":5.99
       }
     ]
    }
    
NOTE
Verschachtelte Arrays innerhalb von Sammlungen werden in Anfrage-Payloads von benutzerdefinierten Aktionen nur teilweise unterstützt. Weitere Informationen finden Sie unter Einschränkungen.

Allgemeines Verfahren general-procedure

In diesem Abschnitt verwenden wir das folgende JSON-Payload-Beispiel. Dies ist ein Array von Objekten mit einem Feld, das eine einfache Sammlung ist.

{
  "ctxt": {
    "products": [
      {
        "id": "productA",
        "name": "A",
        "price": 20.1,
        "color":"blue",
        "locations": [
          "Paris",
          "London"
        ]
      },
      {
        "id": "productB",
        "name": "B",
        "price": 10.99
      }
    ]
  }
}

Sie können sehen, dass products ein Array von zwei Objekten ist. Sie müssen mindestens ein Objekt haben.

  1. Erstellen Sie Ihre benutzerdefinierte Aktion. Weitere Informationen finden Sie auf dieser Seite.

  2. Fügen Sie im Abschnitt Aktionsparameter das JSON-Beispiel ein. Die angezeigte Struktur ist statisch: Beim Einfügen der Payload werden alle Felder als Konstanten definiert.

    Ausdruckseditor mit Sammlungsfunktionen und -vorgängen

  3. Passen Sie bei Bedarf die Feldtypen an. Die folgenden Feldtypen werden für Sammlungen unterstützt: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    note
    NOTE
    Der Feldtyp wird gemäß dem Payload-Beispiel automatisch abgeleitet.
  4. Wenn Sie Objekte dynamisch übergeben möchten, müssen Sie sie als Variablen festlegen. In diesem Beispiel legen wir products als Variable fest. Alle im Objekt enthaltenen Objektfelder werden automatisch als Variablen festgelegt.

    note
    NOTE
    Das erste Objekt des Payload-Beispiels wird verwendet, um die Felder zu definieren.
  5. Definieren Sie für jedes Feld das Label, das auf der Journey-Arbeitsfläche angezeigt werden soll.

    Funktion „Filtersammlung“ mit der Condition Builder-Oberfläche {width="70%"}

  6. Erstellen Sie Ihre Journey und fügen Sie die von Ihnen erstellte benutzerdefinierte Aktion hinzu. Weitere Informationen finden Sie auf dieser Seite.

  7. Definieren Sie im Abschnitt Aktionsparameter den Array-Parameter (in unserem Beispiel products) mithilfe des erweiterten Ausdruckseditors.

    Ausdruck für die Sammlungsfilterung mit Feldauswahl

  8. Geben Sie für jedes der folgenden Objektfelder den entsprechenden Feldnamen aus dem Quell-XDM-Schema ein. Wenn die Namen identisch sind, ist dies nicht erforderlich. In unserem Beispiel müssen wir nur product id und „color“ definieren.

    Sortierfunktion für Sammlungen mit Sortierkonfiguration {width="50%"}

Für das Array-Feld können Sie auch den erweiterten Ausdruckseditor verwenden, um Datenbearbeitungen durchzuführen. Im folgenden Beispiel werden die Funktionen Filtern und Überschneidung verwendet:

Ausdruck für vollständige Sammlung mit Filter-, Sortier- und Limit-Operationen

Einschränkungen limitations

Sammlungen in benutzerdefinierten Aktionen bieten zwar Flexibilität bei der Übergabe dynamischer Daten, es gibt jedoch bestimmte strukturelle Einschränkungen, die zu beachten sind:

  • Unterstützung verschachtelter Arrays in benutzerdefinierten Aktionen

    Adobe Journey Optimizer unterstützt verschachtelte Arrays von Objekten in benutzerdefinierten Aktionen Antwort-), diese Unterstützung ist jedoch in Anfrage-Payloads beschränkt.

    In Anfrage-Payloads werden verschachtelte Arrays nur dann unterstützt, wenn sie eine feste Anzahl von Elementen enthalten, wie in der Konfiguration der benutzerdefinierten Aktion definiert. Wenn ein verschachteltes Array beispielsweise immer genau drei Elemente enthält, kann es als Konstante konfiguriert werden. Wenn die Anzahl der Elemente dynamisch sein muss, können nur nicht verschachtelte Arrays (Arrays auf der unteren Ebene) als Variablen definiert werden.

    Beispiel:

    1. Das folgende Beispiel zeigt einen nicht unterstützten Anwendungsfall.

      In diesem Beispiel enthält das Produkt-Array ein verschachteltes Array (locations) mit einer dynamischen Anzahl von Elementen, das in Anfrage-Payloads nicht unterstützt wird.

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "locations": [
            { "name": "Paris" },
            { "name": "London" }
            ]
         }
      ]
      }
      
    2. Beispiel eines unterstützten Anwendungsfalls mit festen Elementen, die als Konstanten definiert sind.

      In diesem Fall werden die verschachtelten Speicherorte durch feste Felder (location1, location2) ersetzt, sodass die Payload in der unterstützten Konfiguration gültig bleibt.

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "location1": { "name": "Paris" },
            "location2": { "name": "London" }
         }
      ]
      }
      
  • Testen von Sammlungen: Um Sammlungen im Testmodus zu testen, müssen Sie den Code-Ansichtsmodus verwenden. Beachten Sie, dass der Code-Ansichtsmodus für Geschäftsereignisse nicht unterstützt wird. In diesem Fall können Sie also nur eine Sammlung senden, die ein einzelnes Element enthält.

Besondere Fälle examples

Bei heterogenen Typen und Arrays von Arrays wird das Array mit dem Typ „listAny“ definiert. Sie können nur einzelne Elemente zuordnen, das Array jedoch nicht in eine Variable ändern.

Heterogene Sammlung mit gemischten Datentypen und Feldauswahl {width="70%"}

Beispiel eines heterogenen Typs:

{
    "data_mixed-types": [
        "test",
        "test2",
        null,
        0
    ]
}

Beispiel eines Arrays von Arrays:

{
    "data_multiple-arrays": [
        [
            "test",
            "test1",
            "test2"
        ]
    ]
}

Zusätzliche Ressourcen

In den folgenden Abschnitten erfahren Sie mehr über die Konfiguration, Verwendung und Fehlerbehebung von benutzerdefinierten Aktionen:

KI-Wissensreferenz

Dieser Abschnitt enthält strukturiertes Wissen zur Unterstützung von Interpretation, Abrufen und Antworten auf Fragen zu diesem Thema.

Zum vollständigen Verständnis sollten diese Informationen mit der Dokumentation auf dieser Seite kombiniert werden. Keine der beiden Quellen ist für Einzelpersonen gedacht. Die Seite beschreibt die Funktion, während dieser Abschnitt zusätzlichen Kontext bietet, der dabei hilft, Begriffe, Absichten, Anwendbarkeit und Begrenzungen zu unterscheiden.

  • TL;DR: Auf dieser Seite wird erläutert, wie Sie einfache und Objektsammlungen dynamisch in benutzerdefinierte Aktionsparameter in Journey Optimizer übergeben können, einschließlich unterstützter Feldtypen, des Konfigurationsverfahrens und bekannter Einschränkungen bei verschachtelten Arrays.

intents:

  • Konfigurieren einer benutzerdefinierten Aktion, um eine Sammlung (einfach oder Objekt) als dynamischen Parameter zu akzeptieren
  • Definieren von Array-Parametern als Variablen im erweiterten Ausdruckseditor beim Erstellen einer Journey
  • Anwenden von Filter- und Überschneidungsfunktionen zum Bearbeiten von Array-Daten im Ausdruckseditor
  • Verstehen und Arbeiten mit den Beschränkungen für verschachtelte Arrays bei Payloads für benutzerdefinierte Aktionsanfragen
  • Testen von Sammlungsparametern mit dem Code-Ansichtsmodus im Journey-Testmodus

Glossar:

  • Einfache Sammlung: Eine Liste grundlegender Skalarwerte (Zeichenfolgen, Zahlen, boolesche Werte), die als benutzerdefinierter Aktionsparameter übergeben werden (produktspezifisch)
  • Objektsammlung: Eine Liste strukturierter Objekte mit jeweils mehreren Feldern, die als benutzerdefinierter Aktionsparameter übergeben werden (produktspezifisch)
  • listObject: Der Feldtyp, der in der Konfiguration benutzerdefinierter Aktionen verwendet wird, um ein Array von Objekten darzustellen (produktspezifisch)
  • listAny: Der Feldtyp, der für heterogene Arrays oder Arrays von Arrays verwendet wird, in denen Elemente gemischte Typen haben (produktspezifisch)
  • Variable (vs. Konstante): Bei der Konfiguration von Aktionsparametern wird ein Feld, das auf „Variable“ festgelegt ist, zur Laufzeit dynamisch aus dem Journey-Kontext gefüllt, während eine „Konstante“ ein fester Wert ist, der zum Zeitpunkt der Konfiguration festgelegt ist (produktspezifisch)

Leitplanken:

  • Verschachtelte Arrays in Anfrage-Payloads werden nur unterstützt, wenn sie eine feste Anzahl von Elementen enthalten (definiert als Konstanten). Dynamische verschachtelte Arrays werden nicht unterstützt
  • Der Code-Ansichtsmodus ist erforderlich, um Sammlungen im Testmodus zu testen. Die Code-Ansicht wird für Geschäftsereignisse nicht unterstützt, sodass in diesem Fall nur Sammlungen mit einem Element gesendet werden können
  • Im Payload-Beispiel, das zum Definieren von Sammlungsfeldern verwendet wird, muss mindestens ein Objekt vorhanden sein
  • Das erste Objekt des Payload-Beispiels definiert die Felder für die gesamte Sammlung

Terminologie:

  • Kanonischer Name: Sammlung — Akronym: none — Varianten: Array, Liste, dynamische Sammlung
  • Synonyme: „simple collection“ = „Liste von Skalarwerten“ ; „Objektsammlung“ = „Array von Objekten“
  • Verwechseln Sie nicht: „listAny“ ≠ „listObject“ (listAny behandelt heterogene oder verschachtelte Arrays; listObject behandelt einheitliche Arrays von strukturierten Objekten)

FAQ:

  • F: Was ist der Unterschied zwischen einer einfachen Sammlung und einer Objektsammlung? - Eine einfache Auflistung enthält grundlegende Skalarwerte (Zeichenfolgen, Zahlen, Boolesche Werte), während eine Objektsammlung strukturierte Objekte mit jeweils mehreren benannten Feldern enthält.
  • F: Wie kann ich einen Sammlungsparameter zur Laufzeit dynamisch machen? - Legen Sie im Abschnitt Aktionsparameter der benutzerdefinierten Aktion das Array-Feld auf „Variable“ fest. Alle darin enthaltenen Objektfelder werden dann automatisch auf Variablen festgelegt.
  • F: Werden verschachtelte Arrays in Payloads für benutzerdefinierte Aktionsanfragen unterstützt? — Nur teilweise. Verschachtelte Arrays mit einer festen, bekannten Anzahl von Elementen können als Konstanten definiert werden. Verschachtelte Arrays mit einer dynamischen Anzahl von Elementen werden in Anfrage-Payloads nicht unterstützt.
  • F: Wie kann ich eine Sammlung im Journey-Testmodus testen? — Verwenden Sie den Code-Ansichtsmodus in der Testschnittstelle. Beachten Sie, dass Geschäftsereignisse die Code-Ansicht nicht unterstützen, sodass nur Sammlungen mit einem Element in diesem Kontext getestet werden können.
  • F: Welche Feldtypen werden für Sammlungen unterstützt? — listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly und listObject werden alle unterstützt.
recommendation-more-help
journey-optimizer-help