Caso d’uso: passaggio dinamico delle raccolte tramite azioni personalizzate passing-collection
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:
code language-none { "deviceTypes": [ "android", "ios" ] }
-
insiemi di oggetti: un array di oggetti JSON, ad esempio:
code language-none { "products":[ { "id":"productA", "name":"A", "price":20.1 }, { "id":"productB", "name":"B", "price":10.0 }, { "id":"productC", "name":"C", "price":5.99 } ] }
Limitazioni limitations
-
Gli array nidificati di oggetti all’interno di un array di oggetti non sono al momento supportati. Ad esempio:
code language-none { "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 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
}
]
}
}
Si può vedere che "prodotti" è un array di due oggetti. Devi avere almeno un oggetto.
-
Crea l’azione personalizzata. Consulta 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 impostiamo "products" 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. Consulta 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, 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 vengono utilizzate le funzioni filter e intersect:
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"
]
]
}
Argomenti correlati
Utilizzare azioni personalizzate