Dynamisches Übergeben von Kollektionen mithilfe benutzerdefinierter Aktionen

Sie können eine Kollektion in benutzerdefinierten Aktionsparametern übergeben, die zur Laufzeit dynamisch gefüllt werden. Es werden zwei Arten von Kollektionen unterstützt:

  • einfache Kollektionen: Arrays einfacher Datentypen, z. B. mit einer listString:

    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • Objektkollektionen: ein Array von JSON-Objekten, z. B.:

    {
    "products":[
       {
          "id":"productA",
          "name":"A",
          "price":20.1
       },
       {
          "id":"productB",
          "name":"B",
          "price":10.0
       },
       {
          "id":"productC",
          "name":"C",
          "price":5.99
       }
     ]
    }
    

Einschränkungen

  • Verschachtelte Arrays von Objekten in einem Objekt-Array werden derzeit nicht unterstützt. Beispiel:

    {
    "products":[
      {
         "id":"productA",
         "name":"A",
         "price":20,
         "locations": [{"name": "Paris"}, {"name": "London"}]
      },
     ]
    }
    
  • Um Kollektionen im Testmodus zu testen, müssen Sie den Code-Ansichtsmodus verwenden. Der Code-Ansichtsmodus wird derzeit für Geschäftsereignisse nicht unterstützt. Sie können eine Kollektion nur mit einem einzelnen Element senden.

Allgemeines Verfahren

In diesem Abschnitt verwenden wir das folgende JSON-Payload-Beispiel. Dies ist ein Array von Objekten mit einem Feld, das eine einfache Kollektion 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 „Produkte“ 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.

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

    HINWEIS

    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 „Produkte“ als Variable fest. Alle im Objekt enthaltenen Objektfelder werden automatisch als Variablen festgelegt.

    HINWEIS

    Das erste Objekt des Payload-Beispiels wird verwendet, um die Felder zu definieren.

  5. Definieren Sie für jedes Feld den Titel, der auf der Journey-Arbeitsfläche angezeigt werden soll.

  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 („Produkte“ in unserem Beispiel) mithilfe des erweiterten Ausdruckseditors.

  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 „Produkt-ID“ und „Farbe“ definieren.

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:

Besondere Fälle

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.

Beispiel eines heterogenen Typs:

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

Beispiel eines Arrays von Arrays:

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

Verwandte Themen

Verwenden benutzerdefinierter Aktionen

Auf dieser Seite