Elencare funzioni list-functions
Le funzioni elenco consentono di manipolare e utilizzare insiemi di valori all’interno delle espressioni di percorso. Queste funzioni sono essenziali per filtrare, ordinare, trasformare e analizzare array ed elenchi nei percorsi dei clienti.
Utilizza le funzioni elenco quando devi:
- Filtra ed estrai elementi specifici dalle raccolte in base ai criteri (filter, getListItem)
- Ordina e organizza gli elementi elenco in ordine crescente o decrescente (ordina)
- Rimuovi i duplicati e ottieni valori univoci dagli elenchi (distinct, distinctWithNull)
- Verifica se i valori esistono nelle raccolte (in)
- Limita il numero di elementi restituiti da un elenco (limit)
- Ottenere le dimensioni di un elenco (listSize) o trasformare gli elenchi in formati diversi (serializeList)
- Eseguire operazioni sui set come la ricerca di elementi comuni tra elenchi (intersect)
Le funzioni elenco forniscono potenti strumenti per l’utilizzo di strutture di dati complesse, consentendo una sofisticata manipolazione dei dati e una logica condizionale basata sui contenuti della raccolta.
distinct distinct
Restituisce i valori o gli oggetti distinti di un elenco specifico. Le voci Null vengono ignorate.
distinct(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Elenco da elaborare. Per listObject, deve essere un riferimento di campo. |
| keyAttributeName | stringa | Questo parametro è facoltativo e solo per listObject. Se il parametro non viene fornito, un oggetto viene considerato duplicato se tutti gli attributi hanno gli stessi valori. In caso contrario, un oggetto viene considerato duplicato se l’attributo specificato ha lo stesso valore. |
distinct(<listInteger>)
Restituisce un elenco di numeri interi.
distinct(<listDecimal>)
Restituisce un elenco di decimali.
distinct(<listString>)
Restituisce un elenco di stringhe.
distinct(<listDateTimeOnly>)
Restituisce un elenco di date senza considerare il fuso orario.
distinct(<listDateTime>)
Restituisce un elenco di date.
distinct(<listDateOnly>)
Restituisce un elenco di date.
distinct(<listBoolean>)
Restituisce un elenco di booleani.
distinct(<listDuration>)
Restituisce un elenco di durate.
distinct(<listObject>)
distinct(<listObject>,<string>)
Restituisce un elenco di oggetti.
distinct([10,2,10,null])
Restituisce [10, 2].
distinctWithNull distinctWithNull
Restituisce i valori o gli oggetti distinti di un elenco specifico. Se l'elenco include almeno una voce Null, nell'elenco restituito sarà presente una voce Null.
distinctWithNull(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Elenco da elaborare. |
distinctWithNull(<listInteger>)
Restituisce un elenco di numeri interi.
distinctWithNull(<listDecimal>)
Restituisce un elenco di decimali.
distinctWithNull(<listString>)
Restituisce un elenco di stringhe.
distinctWithNull(<listDateTimeOnly>)
Restituisce un elenco di date senza considerare il fuso orario.
distinctWithNull(<listDateTime>)
Restituisce un elenco di date.
distinctWithNull(<listDateOnly>)
Restituisce un elenco di date.
distinctWithNull(<listBoolean>)
Restituisce un elenco di booleani.
distinctWithNull(<listDuration>)
Restituisce un elenco di durate.
distinctWithNull([10,2,10,null])
Restituisce [10, 2, null]
Nota: Il parametro <listObject> non è supportato in questa funzione.
filter filter
Restituisce un oggetto listObject con oggetti il cui attributo chiave corrisponde a uno dei valori chiave specificati.
filter(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToFilter | listObject | elenco di oggetti da filtrare. Deve essere un riferimento di campo. |
| keyAttributeName | stringa | nome attributo negli oggetti dell’elenco specificato, utilizzato come chiave per il filtro |
| keyValueList | list | array di valori chiave per il filtro |
filter(listObject, string, listString)
filter(listObject, string, listInteger)
filter(listObject, string, listDecimal)
filter(listObject, string, listDateTime)
filter(listObject, string, listDateTimeOnly)
filter(listObject, string, listDateOnly)
filter(listObject, string, listDuration)
filter(listObject, string, listBoolean)
Restituisce un oggetto listObject.
Ecco un esempio di payload passato in un evento in ingresso "myevent":
| code language-json |
|---|
|
È possibile utilizzare la seguente espressione:
| code language-json |
|---|
|
Restituisce un oggetto listObject contenente i due oggetti con "product2" e "product3" come id.
getListItem getListItem
Restituisce l'elemento dell'elenco in corrispondenza dell'indice specificato.
getListItem(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 | |
|---|---|
| Parametro | Tipo |
| list | listString |
| list | listBoolean |
| list | listInteger |
| list | listDecimal |
| list | listDuration |
| list | listDateTime |
| list | listDateTimeOnly |
| list | listDateOnly |
| index | intero |
getListItem(<listInteger>,<index>)
Restituisce un numero intero.
getListItem(<listDecimal>,<index>)
Restituisce un valore decimale.
getListItem(<listString>,<index>)
Restituisce una stringa.
getListItem(<listDateTimeOnly>,<index>)
Restituisce un valore datetime senza considerare il fuso orario.
getListItem(<listDateTime>,<index>)
Restituisce un valore datetime.
getListItem(<listDateOnly>,<index>)
Restituisce un elenco di date.
getListItem(<listBoolean>,<index>)
Restituisce un valore booleano.
getListItem(<listDuration>,<index>)
Restituisce una durata.
getListItem([10, 2, 3], 1)
Restituisce "2"
getListItem(["A", "B", "C"], 2)
Restituisce "C"
Esempi con un campo evento "event.appVersion" con valore: "20.45.2.3434"
split(@event{event.appVersion}, "\\.")
Restituisce ["20", "45", "2", "3434"]
getListItem(split(@event{event.appVersion}, "\\."), 0)
Restituisce "20"
in in
Controlla se il primo valore di argomento è presente nell'elenco. Il controllo viene eseguito tramite un valore Uguale su ciascun argomento. Restituisce true se viene trovato il valore dell’argomento, in caso contrario false.
Il tipo di <expression> deve corrispondere agli elementi dell'elenco. I tipi di elementi dell'elenco, come promemoria, devono corrispondere tra loro.
in(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 | |
|---|---|
| Parametro | Tipo |
| Stringa | Stringa |
| Booleano | Booleano |
| Intero | Intero |
| Decimale | Decimale |
| Durata | Durata |
| Data e ora | Data e ora |
| DateTimeOnly | DateTimeOnly |
| Elenco | listString |
| Elenco | listBoolean |
| Elenco | listInteger |
| Elenco | listDecimal |
| Elenco | listDuration |
| Elenco | listDateTime |
| Elenco | listDateTimeOnly |
| Elenco | listDateOnly |
in(<integer>,<listInteger>)
in(<decimal>,<listDecimal>)
in(<string>,<listString>)
in(<boolean>,<listBoolean>)
in(<dateTimeOnly>,<listDateTimeOnly>)
in(<dateTime>,<listDateTime>)
in(<dateOnly>,<listDateOnly>)
in(<duration>,<listDuration>)
Restituisce un valore booleano.
in(4,[4,5,3,4])
Restituisce true.
in(8,[4,5,3,4])
Restituisce false.
in(#{ExperiencePlatform.ProfileFieldGroup.profile.person.gender}, ["male"])
intersect intersect
Restituisce i valori comuni nei due elenchi di input. Se uno dei due elenchi è nullo, restituisce un elenco vuoto.
intersect(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| elenco 1 | list |
| elenco 2 | list |
intersect(listString,listString): listString
intersect(listDecimal,listDecimal): listDecimal
intersect(listInteger,listInteger): listInteger
intersect(listDateTime,listDateTime): listDateTime
intersect(listDateTimeOnly,listDateTimeOnly): listDateTimeOnly
intersect(listDateOnly,listDateOnly): listDateOnly
intersect(listDuration,listDuration): listDuration
intersect(listBoolean,listBoolean): listBoolean
Restituisce un elenco.
| code language-json |
|---|
|
Restituisce ["sport", "news"]
| code language-json |
|---|
|
Restituisce elementi comuni tra gli attributi del profilo e un elenco specifico di categorie.
| code language-json |
|---|
|
Restituisce elementi comuni tra gli attributi del profilo e il campo evento specificato.
limit limit
Restituisce il primo o l'ultimo N elemento di un elenco.
limit(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Elenco da considerare. Per listObject, deve essere un riferimento di campo. |
| numberOfItems | intero | Numero di elementi da restituire dall'elenco specificato. |
| firstOrLastItems | booleano | Questo parametro è facoltativo (true per impostazione predefinita). true restituisce i primi elementi. false restituisce gli ultimi elementi. |
limit(<listString>,<integer>)
limit(<listString>,<integer>,<boolean>)
Restituisce un elenco di stringhe.
limit(<listInteger>,<integer>)
limit(<listInteger>,<integer>,<boolean>)
Restituisce un elenco di numeri interi.
limit(<listDecimal>,<integer>)
limit(<listDecimal>,<integer>,<boolean>)
Restituisce un elenco di decimali.
limit(<listBoolean>,<integer>)
limit(<listBoolean>,<integer>,<boolean>)
Restituisce un elenco di booleani.
limit(<listDateOnly>,<integer>)
limit(<listDateOnly>,<integer>,<boolean>)
Restituisce un elenco di date.
limit(<listDateTimeOnly>,<integer>)
limit(<listDateTimeOnly>,<integer>,<boolean>)
Restituisce un elenco di date senza considerare il fuso orario.
limit(<listDateTime>,integer>)
limit(<listDateTime>,<integer>,<boolean>)
Restituisce un elenco di date.
limit(<listDuration>,<integer>)
limit(<listDuration>,<integer>,<boolean>)
Restituisce un elenco di durate.
limit(<listObject>,<integer>)
limit(<listObject>,<integer>,<boolean>)
Restituisce un elenco di oggetti.
limit(["A", "B", "C", "D", "E"], 3)
Restituisce ["A","B","C"].
limit(["A", "B", "C", "D", "E"], 3, false)
Restituisce ["C","D","E"].
listSize listSize
Conta il numero di elementi nell'elenco.
listSize(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Elenco da elaborare. Per listObject, deve essere un riferimento di campo. Un listObject non può contenere un oggetto null. |
listSize(<listInteger>)
listSize(<listDecimal>)
listSize(<listString>)
listSize(<listBoolean>)
listSize(<listDateTimeOnly>)
listSize(<listDateTime>)
listSize(<listDateOnly>)
listSize(<listDuration>)
Restituisce un numero intero.
listSize(<listObject>)
listSize([10,2,3])
Restituisce 3.
listSize(@event{my_event.productListItems})
Restituisce il numero di oggetti nella matrice di oggetti specificata (tipo listObject).
serializeList serializeList
Converte un elenco specifico (qualsiasi tipo eccetto listObject) in una stringa.
serializeList(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Elenco da convertire in stringa. |
| separatore | stringa | Separatore tra ciascun elemento elenco nella stringa di output. |
| addQuotes | booleano | Questo parametro indica se ogni elemento nella stringa di output deve includere virgolette (true) o meno (false). |
serializeList(<listInteger>,<string>,<boolean>)
serializeList(<listDecimal>,<string>,<boolean>)
serializeList(<listString>,<string>,<boolean>)
serializeList(<listBoolean>,<string>,<boolean>)
serializeList(<listDateTimeOnly>,<string>,<boolean>)
serializeList(<listDateTime>,<string>,<boolean>)
serializeList(<listDateOnly>,<string>,<boolean>)
serializeList(<listDuration>,<string>,<boolean>)
Restituisce una stringa.
serializeList(["Hello","World"], " ", false)
Restituisce "Hello World".
serializeList(["Hello", "World"], ",", true)
Restituisce ""Hello","World"".
ordina sort
Ordina un elenco di valori o oggetti nell'ordine naturale.
sort(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parametro | Tipo | Descrizione |
| listToSort | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Elenco da ordinare. Per listObject, deve essere un riferimento di campo. |
| keyAttributeName | stringa | Questo parametro è solo per listObject. Il nome dell’attributo negli oggetti dell’elenco specificato viene utilizzato come chiave per l’ordinamento. |
| ordinamentoOrdine | booleano | Crescente (true) o Decrescente (false) |
sort(<listInteger>,<boolean>)
Restituisce un elenco di numeri interi.
sort(<listDecimal>,<boolean>)
Restituisce un elenco di decimali.
sort(<listString>,<boolean>)
Restituisce un elenco di stringhe.
sort(<listDateTimeOnly>,<boolean>)
Restituisce un elenco di date senza considerare il fuso orario.
sort(<listDateTime>,<boolean>)
Restituisce un elenco di date.
sort(<listDateOnly>,<boolean>)
Restituisce un elenco di date.
sort(<listBoolean>,<boolean>)
Restituisce un elenco di booleani.
sort(<listObject>,<string>,<boolean>)
Restituisce un elenco di oggetti.
sort(["A", "C", "B"], true)
Restituisce ["A","B","C"].
sort([1, 3, 2], false)
Restituisce [3, 2, 1].
sort(@event{my_event.productListItems}, "SKU", true)
Restituisce l'oggetto listObject ordinato in base all'attributo SKU (ordine crescente)