Listar funções list-functions
As funções de lista permitem manipular e trabalhar com coleções de valores nas expressões de jornada. Essas funções são essenciais para filtrar, classificar, transformar e analisar matrizes e listas nas jornadas do cliente.
Use as funções de lista quando precisar:
- Filtrar e extrair itens específicos de coleções com base em critérios (filtro, getListItem)
- Classificar e organizar elementos de lista em ordem crescente ou decrescente (sort)
- Remova as duplicatas e obtenha valores exclusivos das listas (distinct, distinctWithNull)
- Verificar se existem valores em coleções (em)
- Limitar o número de itens retornados de uma lista (limit)
- Obter o tamanho de uma lista (listSize) ou transformar listas em diferentes formatos (serializeList)
- Execute operações de conjunto, como localizar elementos comuns entre listas (interseção), combinar listas (mergeLists) ou subtrair uma lista de outra (differenceLists)
As funções de lista fornecem ferramentas poderosas para trabalhar com estruturas de dados complexas, permitindo uma manipulação de dados sofisticada e lógica condicional com base no conteúdo da coleção.
differenceLists differenceLists
Retorna os itens da primeira lista que não estão presentes na segunda lista (diferença definida: list 1 - list 2). Entradas nulas são ignoradas. O resultado sempre remove valores duplicados e preserva a ordem de inserção da primeira lista.
differenceLists(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| lista 1 | listString, listInteger, listDecimal, listBoolean, listDuration, listDateTime, listDateTimeOnly ou listDateOnly | Lista da qual subtrair. |
| lista 2 | Mesmo tipo que a lista 1. | Lista de itens para remover da lista 1. |
differenceLists(listString,listString): listString
differenceLists(listInteger,listInteger): listInteger
differenceLists(listDecimal,listDecimal): listDecimal
differenceLists(listBoolean,listBoolean): listBoolean
differenceLists(listDuration,listDuration): listDuration
differenceLists(listDateTime,listDateTime): listDateTime
differenceLists(listDateTimeOnly,listDateTimeOnly): listDateTimeOnly
differenceLists(listDateOnly,listDateOnly): listDateOnly
| code language-json |
|---|
|
Retorna ['a','c'].
| code language-json |
|---|
|
Retorna ['a','b'].
| code language-json |
|---|
|
Retorna [].
distinct distinct
Retorna os valores ou objetos distintos de uma determinada lista. Entradas nulas são ignoradas.
distinct(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista a processar. Para listObject, ele deve ser uma referência de campo. |
| keyAttributeName | sequência de caracteres | Este parâmetro é opcional e somente para listObject. Se o parâmetro não for fornecido, um objeto será considerado duplicado se todos os atributos tiverem os mesmos valores. Caso contrário, um objeto será considerado duplicado se o atributo em questão tiver o mesmo valor. |
distinct(<listInteger>)
Retorna uma lista de inteiros.
distinct(<listDecimal>)
Retorna uma lista de decimais.
distinct(<listString>)
Retorna uma lista de strings.
distinct(<listDateTimeOnly>)
Retorna uma lista de datetimes sem considerar o fuso horário.
distinct(<listDateTime>)
Retorna uma lista de datetimes.
distinct(<listDateOnly>)
Retorna uma lista de datas.
distinct(<listBoolean>)
Retorna uma lista de booleanos.
distinct(<listDuration>)
Retorna uma lista de durações.
distinct(<listObject>)
distinct(<listObject>,<string>)
Retorna uma lista de objetos.
distinct([10,2,10,null])
Retorna [10, 2].
distinctWithNull distinctWithNull
Retorna os valores ou objetos distintos de uma determinada lista. Se a lista tiver pelo menos uma entrada nula, uma entrada nula estará presente na lista retornada.
distinctWithNull(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Lista a processar. |
distinctWithNull(<listInteger>)
Retorna uma lista de inteiros.
distinctWithNull(<listDecimal>)
Retorna uma lista de decimais.
distinctWithNull(<listString>)
Retorna uma lista de strings.
distinctWithNull(<listDateTimeOnly>)
Retorna uma lista de datetimes sem considerar o fuso horário.
distinctWithNull(<listDateTime>)
Retorna uma lista de datetimes.
distinctWithNull(<listDateOnly>)
Retorna uma lista de datas.
distinctWithNull(<listBoolean>)
Retorna uma lista de booleanos.
distinctWithNull(<listDuration>)
Retorna uma lista de durações.
distinctWithNull([10,2,10,null])
Retorna [10, 2, nulo]
Observação: o parâmetro <listObject> não tem suporte nesta função.
filtro filter
Retorna um listObject com objetos que têm o atributo de chave correspondente a um dos valores de chave fornecidos.
filter(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToFilter | listObject | lista de objetos a serem filtrados. Deve ser uma referência de campo. |
| keyAttributeName | sequência de caracteres | nome do atributo nos objetos da lista fornecida, usado como chave para filtragem |
| keyValueList | list | matriz de valores principais para filtragem |
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)
Retorna um listObject.
Este é um exemplo de uma carga útil transmitida em um evento de entrada “myevent”:
| code language-json |
|---|
|
Você pode usar a seguinte expressão:
| code language-json |
|---|
|
Retorna um listObject contendo os dois objetos com “product2” e “product3” como id.
getListItem getListItem
Retorna o item da lista no índice fornecido.
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 | |
|---|---|
| Parâmetro | Tipo |
| list | listString |
| list | listBoolean |
| list | listInteger |
| list | listDecimal |
| list | listDuration |
| list | listDateTime |
| list | listDateTimeOnly |
| list | listDateOnly |
| índice | inteiro |
getListItem(<listInteger>,<index>)
Retorna um inteiro.
getListItem(<listDecimal>,<index>)
Retorna um decimal.
getListItem(<listString>,<index>)
Retorna uma string.
getListItem(<listDateTimeOnly>,<index>)
Retorna uma data e hora sem considerar o fuso horário.
getListItem(<listDateTime>,<index>)
Retorna um datetime.
getListItem(<listDateOnly>,<index>)
Retorna uma lista de datas.
getListItem(<listBoolean>,<index>)
Retorna um valor booleano.
getListItem(<listDuration>,<index>)
Retorna uma duração.
getListItem([10, 2, 3], 1)
Retorna “2”
getListItem(["A", "B", "C"], 2)
Retorna “C”
Exemplos com um campo de evento “event.appVersion” com valor: “20.45.2.3434”
split(@event{event.appVersion}, "\\.")
Retorna ["20", "45", "2", "3434"]
getListItem(split(@event{event.appVersion}, "\\."), 0)
Retorna “20”
no in
Verifica se o primeiro valor de argumento está na lista. A verificação é executada por meio de um valor Igual em cada argumento. Retornará true se o valor do argumento for encontrado; caso contrário, retornará false.
O tipo de <expression> deve corresponder aos itens da lista. Os tipos de itens da lista, como lembrete, devem corresponder um ao outro.
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 | |
|---|---|
| Parâmetro | Tipo |
| String | String |
| Booleano | Booleano |
| Número inteiro | Número inteiro |
| Decimal | Decimal |
| Duração | Duração |
| DateTime | DateTime |
| DateTimeOnly | DateTimeOnly |
| Lista | listString |
| Lista | listBoolean |
| Lista | listInteger |
| Lista | listDecimal |
| Lista | listDuration |
| Lista | listDateTime |
| Lista | listDateTimeOnly |
| Lista | 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>)
Retornar um booleano.
in(4,[4,5,3,4])
Retorna verdadeiro.
in(8,[4,5,3,4])
Retorna falso.
in(#{ExperiencePlatform.ProfileFieldGroup.profile.person.gender}, ["male"])
interseção intersect
Retorna os valores comuns nas duas listas de entrada. Se uma das duas listas for nula, retorna uma lista vazia.
intersect(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parâmetro | Tipo |
| lista 1 | list |
| lista 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
Retorna uma lista.
| code language-json |
|---|
|
Retorna [“esportes”, “notícias”]
| code language-json |
|---|
|
Retorna itens comuns entre atributos de perfil e determinada lista de categorias.
| code language-json |
|---|
|
Retorna itens comuns entre os atributos de perfil e o campo de evento especificado.
limite limit
Retorna o primeiro ou o último elemento N de uma lista.
limit(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista a ser considerada. Para listObject, ele deve ser uma referência de campo. |
| numberOfItems | inteiro | Número de itens a serem retornados da lista fornecida. |
| firstOrLastItems | booleano | Esse parâmetro é opcional (true por padrão). true retorna os primeiros itens. false retorna os últimos itens. |
limit(<listString>,<integer>)
limit(<listString>,<integer>,<boolean>)
Retorna uma lista de strings.
limit(<listInteger>,<integer>)
limit(<listInteger>,<integer>,<boolean>)
Retorna uma lista de inteiros.
limit(<listDecimal>,<integer>)
limit(<listDecimal>,<integer>,<boolean>)
Retorna uma lista de decimais.
limit(<listBoolean>,<integer>)
limit(<listBoolean>,<integer>,<boolean>)
Retorna uma lista de booleanos.
limit(<listDateOnly>,<integer>)
limit(<listDateOnly>,<integer>,<boolean>)
Retorna uma lista de datas.
limit(<listDateTimeOnly>,<integer>)
limit(<listDateTimeOnly>,<integer>,<boolean>)
Retorna uma lista de datetimes sem considerar o fuso horário.
limit(<listDateTime>,integer>)
limit(<listDateTime>,<integer>,<boolean>)
Retorna uma lista de datetimes.
limit(<listDuration>,<integer>)
limit(<listDuration>,<integer>,<boolean>)
Retorna uma lista de durações.
limit(<listObject>,<integer>)
limit(<listObject>,<integer>,<boolean>)
Retorna uma lista de objetos.
limit(["A", "B", "C", "D", "E"], 3)
Retorna ["A","B","C"].
limit(["A", "B", "C", "D", "E"], 3, false)
Retorna ["C","D","E"].
listSize listSize
Conta o número de elementos na lista.
listSize(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista a processar. Para listObject, ele deve ser uma referência de campo. Um listObject não pode conter um objeto nulo. |
listSize(<listInteger>)
listSize(<listDecimal>)
listSize(<listString>)
listSize(<listBoolean>)
listSize(<listDateTimeOnly>)
listSize(<listDateTime>)
listSize(<listDateOnly>)
listSize(<listDuration>)
Retorna um número inteiro.
listSize(<listObject>)
listSize([10,2,3])
Retorna 3.
listSize(@event{my_event.productListItems})
Retorna o número de objetos na matriz de objetos fornecida (tipo listObject).
mergeLists mergeLists
Combina duas listas. Quando deduplicate é true, retorna a união das duas listas com valores duplicados removidos. Quando deduplicate é false, retorna a concatenação das duas listas (itens da lista 1 seguidos pelos itens da lista 2), mantendo duplicatas. Entradas nulas são ignoradas.
Observação: o parâmetro deduplicate deve ser um literal true ou false, não uma expressão booliana dinâmica.
mergeLists(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| lista 1 | listString, listInteger, listDecimal, listBoolean, listDuration, listDateTime, listDateTimeOnly ou listDateOnly | Primeira lista. Seus itens são adicionados primeiro ao resultado. |
| lista 2 | Mesmo tipo que a lista 1. | Segunda lista. Seus itens são adicionados após os itens da lista 1. |
| desduplicar | literal booleano | true retorna a união de ambas as listas com duplicatas removidas. false retorna a concatenação de ambas as listas, mantendo duplicatas. Deve ser um literal true ou false. |
mergeLists(listString,listString,boolean): listString
mergeLists(listInteger,listInteger,boolean): listInteger
mergeLists(listDecimal,listDecimal,boolean): listDecimal
mergeLists(listBoolean,listBoolean,boolean): listBoolean
mergeLists(listDuration,listDuration,boolean): listDuration
mergeLists(listDateTime,listDateTime,boolean): listDateTime
mergeLists(listDateTimeOnly,listDateTimeOnly,boolean): listDateTimeOnly
mergeLists(listDateOnly,listDateOnly,boolean): listDateOnly
| code language-json |
|---|
|
Retorna ['a','b','c'].
| code language-json |
|---|
|
Retorna ['a','b','b','c'].
serializeList serializeList
Converte uma determinada lista (qualquer tipo, exceto listObject) em uma cadeia de caracteres.
serializeList(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Lista para converter em uma cadeia de caracteres. |
| separador | sequência de caracteres | Separador entre cada elemento da lista na cadeia de caracteres de saída. |
| addQuotes | booleano | Esse parâmetro indica se cada elemento na string de saída deve incluir aspas (true) ou não (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>)
Retorna uma string.
serializeList(["Hello","World"], " ", false)
Retorna “Olá, Mundo”.
serializeList(["Hello", "World"], ",", true)
Retorna ““Olá”,“Mundo””.
sort sort
Classifica uma lista de valores ou objetos na ordem natural.
sort(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parâmetro | Tipo | Descrição |
| listToSort | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly ou listObject | Lista para classificar. Para listObject, ele deve ser uma referência de campo. |
| keyAttributeName | sequência de caracteres | Este parâmetro é somente para listObject. O nome do atributo nos objetos da lista fornecida é usado como chave para classificação. |
| sortingOrder | booleano | Crescente (verdadeiro) ou decrescente (falso) |
sort(<listInteger>,<boolean>)
Retorna uma lista de inteiros.
sort(<listDecimal>,<boolean>)
Retorna uma lista de decimais.
sort(<listString>,<boolean>)
Retorna uma lista de strings.
sort(<listDateTimeOnly>,<boolean>)
Retorna uma lista de datetimes sem considerar o fuso horário.
sort(<listDateTime>,<boolean>)
Retorna uma lista de datetimes.
sort(<listDateOnly>,<boolean>)
Retorna uma lista de datas.
sort(<listBoolean>,<boolean>)
Retorna uma lista de booleanos.
sort(<listObject>,<string>,<boolean>)
Retorna uma lista de objetos.
sort(["A", "C", "B"], true)
Retorna ["A","B","C"].
sort([1, 3, 2], false)
Retorna [3, 2, 1].
sort(@event{my_event.productListItems}, "SKU", true)
Retorna o listObject ordenado pelo atributo SKU (ordem crescente)
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page documents all list functions available in AJO journey expressions, covering how to filter, sort, deduplicate, check membership, limit, serialize, merge, subtract, and find intersections of lists and arrays.
Intents:
- Remove duplicate values from a list using
distinct(ignoring nulls) ordistinctWithNull(preserving nulls) - Filter a listObject to return only objects matching specific key values using
filter - Retrieve an element at a specific index from a list using
getListItem - Check whether a value exists in a list using
in - Find common elements between two lists using
intersect - Combine two lists, with or without deduplication, using
mergeLists - Subtract one list from another (set difference) using
differenceLists - Return the first or last N elements of a list using
limit - Count the total number of elements in a list using
listSize - Convert a list to a delimited string using
serializeList - Sort a list in ascending or descending order using
sort
Glossary:
- listObject: A list of complex objects that must be a field reference; cannot contain null objects (product-specific)
- keyAttributeName: An optional string parameter used with
distinct,filter, andsortto identify which object attribute to use for deduplication, filtering, or sorting (product-specific) - intersect: A set operation returning only the elements present in both input lists
- mergeLists: A set operation returning the union (deduplicated) or concatenation (with duplicates) of two lists, depending on the
deduplicateparameter (product-specific) - differenceLists: A set operation returning the items of the first list that are not present in the second list (product-specific)
Guardrails:
distinctWithNulldoes not support the<listObject>parameter typefilterrequires the listObject parameter to be a field reference, not an inline literallistSizeon a listObject requires the list to be a field reference; a listObject cannot contain null objectsserializeListdoes not support thelistObjecttypemergeListsanddifferenceListsonly support scalar list types (string, integer, decimal, boolean, dateTime, dateTimeOnly, dateOnly, duration);listObjectis not supportedmergeLists’sdeduplicateparameter must be a literaltrue/false, not a dynamic boolean expressiondifferenceListsalways deduplicates its result; there is no option to keep duplicates
Terminology:
- Canonical name: List functions — Acronym: none — variants: collection functions, array functions
- Synonyms: “listSize” = “count list elements”; “serializeList” = “join list to string”
- Do not confuse: “distinct” (ignores nulls) ≠ “distinctWithNull” (preserves null as a distinct value)
- Do not confuse: “limit” with third parameter
true(returns first N items) ≠ “limit” withfalse(returns last N items) - Do not confuse: “intersect” (common elements between two lists) ≠ “filter” (elements matching specific key values)
- Do not confuse: “mergeLists” (combines two lists, union or concatenation) ≠ “differenceLists” (subtracts one list from another) ≠ “intersect” (common elements only)
FAQ:
- Q: How do I get the first 3 items of a list? — Use
limit(myList, 3)orlimit(myList, 3, true); the default is to return the first items. - Q: How do I get the last 3 items of a list? — Use
limit(myList, 3, false). - Q: What is the difference between
distinctanddistinctWithNull? —distinctignores null values and excludes them from the result;distinctWithNulltreats null as a distinct value and includes one null entry if any nulls are present. - Q: Can I filter a list of strings with
filter? — No,filteronly works onlistObject; for scalar lists useinordistinctfor deduplication. - Q: How do I check if a value is in a list? — Use
in(value, myList), which returns true if the value is found in the list. - Q: Can I sort a listObject by a specific attribute? — Yes, use
sort(@event{...}, "attributeName", true)where the second parameter is the attribute name and the third is the sort direction (true = ascending). - Q: How do I combine two lists and remove duplicates? — Use
mergeLists(list1, list2, true). - Q: How do I combine two lists but keep duplicate values? — Use
mergeLists(list1, list2, false). - Q: How do I find the items in one list that are not in another? — Use
differenceLists(list1, list2), which returns the items oflist1not present inlist2. - Q: What is the difference between
intersectanddifferenceLists? —intersectreturns items common to both lists;differenceListsreturns items in the first list that are absent from the second list.