Passaggio dinamico delle raccolte tramite azioni personalizzate

Ultimo aggiornamento: 2023-08-17
  • Argomenti:
  • Journeys
    Visualizza ulteriori informazioni su questo argomento

Puoi trasmettere una raccolta nei parametri delle azioni personalizzate che verranno compilati in modo dinamico in fase di esecuzione. Sono supportati due tipi di raccolte:

  • raccolte semplici: array di tipi di dati semplici, ad esempio, con un listString:

    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • insiemi di oggetti: un array di oggetti JSON, ad esempio:

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

Limitazioni

  • Gli array nidificati di oggetti all’interno di un array di oggetti non sono al momento supportati. Ad esempio:

    {
    "products":[
      {
         "id":"productA",
         "name":"A",
         "price":20,
         "locations": [{"name": "Paris"}, {"name": "London"}]
      },
     ]
    }
    
  • Per testare le raccolte utilizzando la modalità di test, è necessario utilizzare la modalità di visualizzazione del codice. La modalità di visualizzazione codice non è al momento supportata per gli eventi di business. Puoi inviare una raccolta solo con un singolo elemento.

Procedura generale

In questa sezione viene utilizzato il seguente esempio di payload JSON. Si tratta di un array di oggetti con un campo che è un insieme semplice.

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

Si può vedere che "prodotti" è un array di due oggetti. Devi avere almeno un oggetto.

  1. Crea l’azione personalizzata. Consulta questa pagina.

  2. In Action parameters incolla l’esempio JSON. La struttura visualizzata è statica: quando si incolla il payload, tutti i campi sono definiti come costanti.

  3. Se necessario, regola i tipi di campo. Per gli insiemi sono supportati i tipi di campo seguenti: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    NOTA

    Il tipo di campo viene dedotto automaticamente in base all’esempio di payload.

  4. Se si desidera passare gli oggetti in modo dinamico, è necessario impostarli come variabili. In questo esempio impostiamo "products" come variabile. Tutti i campi oggetto inclusi nell'oggetto vengono impostati automaticamente su variabili.

    NOTA

    Il primo oggetto dell’esempio di payload viene utilizzato per definire i campi.

  5. Per ogni campo, definisci l’etichetta che verrà visualizzata nell’area di lavoro del percorso.

  6. Crea il percorso e aggiungi l’azione personalizzata creata. Consulta questa pagina.

  7. In Action parameters , definisci il parametro array ("products" nel nostro esempio) utilizzando l’editor di espressioni avanzate.

  8. Per ciascuno dei seguenti campi oggetto, digita il nome del campo corrispondente dallo schema XDM di origine. Se i nomi sono identici, non è necessario. Nel nostro esempio, dobbiamo solo definire "id prodotto" e "colore".

Per il campo array, puoi anche utilizzare l’editor di espressioni avanzate per eseguire la manipolazione dei dati. Nell’esempio seguente, utilizziamo filter e intersecare funzioni:

Casi particolari

Per tipi e array di array eterogenei, l’array è definito con il tipo listAny. È possibile mappare solo singoli elementi, ma non è possibile modificare la matrice in variabile.

Esempio di tipo eterogeneo:

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

Esempio di array:

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

Argomenti correlati

Utilizzare azioni personalizzate

In questa pagina