Trasmettere le raccolte nei parametri delle azioni personalizzate passing-collection
Puoi trasmettere una raccolta nei parametri delle azioni personalizzate che viene compilata dinamicamente in fase di esecuzione.
Sono supportati due tipi di raccolte:
-
Raccolte semplici
Utilizzare raccolte semplici per elenchi di valori di base, ad esempio stringhe, numeri o booleani. Queste proprietà sono utili solo se devi trasmettere un elenco di elementi senza proprietà aggiuntive.
Ad esempio, un elenco di tipi di dispositivi:
code language-json { "deviceTypes": [ "android", "ios" ] }
-
Raccolte oggetti
Utilizzare gli insiemi di oggetti quando ogni elemento include più campi o proprietà. In genere vengono utilizzati per trasmettere dati strutturati, ad esempio dettagli di prodotto, record di eventi o attributi di elementi.
Ad esempio:
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 } ] }
Procedura generale general-procedure
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
}
]
}
}
products
è un array di due oggetti. Devi avere almeno un oggetto.
-
Crea l’azione personalizzata. Ulteriori informazioni sono disponibili in questa pagina.
-
Nella sezione Parametri azione, incolla l'esempio JSON. La struttura visualizzata è statica: quando si incolla il payload, tutti i campi sono definiti come costanti.
-
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
note note NOTE Il tipo di campo viene dedotto automaticamente in base all’esempio di payload. -
Se si desidera passare gli oggetti in modo dinamico, è necessario impostarli come variabili. In questo esempio
products
è stato impostato come variabile. Tutti i campi oggetto inclusi nell'oggetto vengono impostati automaticamente su variabili.note note NOTE Il primo oggetto dell’esempio di payload viene utilizzato per definire i campi. -
Per ogni campo, definisci l’etichetta che verrà visualizzata nell’area di lavoro del percorso.
-
Crea il percorso e aggiungi l’azione personalizzata creata. Ulteriori informazioni sono disponibili in questa pagina.
-
Nella sezione Parametri azione, definisci il parametro dell'array (
products
nel nostro esempio) utilizzando l'editor di espressioni avanzate. -
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, è sufficiente definire
product id
e "color".
Per il campo array, puoi anche utilizzare l’editor di espressioni avanzate per eseguire la manipolazione dei dati. Nell'esempio seguente vengono utilizzate le funzioni filter e intersect:
Limitazioni limitations
Sebbene le raccolte nelle azioni personalizzate forniscano flessibilità per il passaggio dei dati dinamici, esistono alcuni vincoli strutturali di cui tenere conto:
-
Supporto per array nidificati nelle azioni personalizzate
Adobe Journey Optimizer supporta array nidificati di oggetti nei payload di risposta azione personalizzati, ma questo supporto è limitato nei payload di richiesta.
Nei payload delle richieste, gli array nidificati sono supportati solo se contengono un numero fisso di elementi, come definito nella configurazione dell’azione personalizzata. Ad esempio, se un array nidificato include sempre esattamente tre elementi, può essere configurato come costante. Quando il numero di elementi deve essere dinamico, solo gli array non nidificati (array al livello inferiore) possono essere definiti come variabili.
Esempio:
-
L'esempio seguente illustra un caso d'uso non supportato.
In questo esempio, l'array prodotti include un array nidificato (
locations
) con un numero dinamico di elementi, che non è supportato nei payload delle richieste.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "locations": [ { "name": "Paris" }, { "name": "London" } ] } ] }
-
Esempio supportato, con elementi fissi definiti come costanti.
In questo caso, le posizioni nidificate vengono sostituite da campi fissi (
location1
,location2
), consentendo al payload di rimanere valido all'interno della configurazione supportata.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "location1": { "name": "Paris" }, "location2": { "name": "London" } } ] }
-
-
Test delle raccolte: per testare le raccolte utilizzando la modalità di test, è necessario utilizzare la modalità di visualizzazione del codice. La modalità di visualizzazione del codice non è supportata per gli eventi di business, pertanto in questo caso è possibile inviare solo una raccolta contenente un singolo elemento.
Casi particolari examples
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"
]
]
}
Risorse aggiuntive
Consulta le sezioni seguenti per ulteriori informazioni sulla configurazione, l’utilizzo e la risoluzione dei problemi delle azioni personalizzate:
- Introduzione alle azioni personalizzate: scopri cos'è un'azione personalizzata e come ti aiuta a connetterti ai sistemi di terze parti
- Configura le azioni personalizzate - Scopri come creare e configurare un'azione personalizzata
- Usa azioni personalizzate - Scopri come utilizzare le azioni personalizzate nei tuoi percorsi
- Risoluzione dei problemi relativi alle azioni personalizzate - Scopri come risolvere i problemi relativi a un'azione personalizzata