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.

Sintaxe
differenceLists(<parameters>)
Parâmetros
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.
Assinaturas e tipos retornados

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

Exemplos
code language-json
differenceLists(['a','b','c'], ['b'])

Retorna ['a','c'].

code language-json
differenceLists(['a','a','b'], [])

Retorna ['a','b'].

code language-json
differenceLists([], ['a'])

Retorna [].

distinct distinct

Retorna os valores ou objetos distintos de uma determinada lista. Entradas nulas são ignoradas.

Sintaxe
distinct(<parameters>)
Parâmetros
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.
Assinaturas e tipos retornados

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.

Exemplos

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.

Sintaxe
distinctWithNull(<parameters>)
Parâmetros
table 0-row-3 1-row-3
Parâmetro Tipo Descrição
listToProcess listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly Lista a processar.
Assinaturas e tipos retornados

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.

Exemplos

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.

Sintaxe
filter(<parameters>)
Parâmetros
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
Assinaturas e tipos retornados

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.

Exemplos

Este é um exemplo de uma carga útil transmitida em um evento de entrada “myevent”:

code language-json
"productListItems": [{
   "id": "product1",
   "name": "the product 1",
   "price": 20
},{
   "id": "product2",
   "name": "the product 2",
   "price": 30
},{
   "id": "product3",
   "name": "the product 3",
   "price": 50
}]

Você pode usar a seguinte expressão:

code language-json
filter(
 @event{myevent.productListItems},
 "id",
 ["product2", "product3", "product4"]
)

Retorna um listObject contendo os dois objetos com “product2” e “product3” como id.

getListItem getListItem

Retorna o item da lista no índice fornecido.

Sintaxe
getListItem(<parameters>)
Parâmetros
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
Assinaturas e tipo retornado

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.

Exemplos

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.

Sintaxe
in(<parameters>)
Parâmetros
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
Assinatura e tipo retornado

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.

Exemplos

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.

Sintaxe
intersect(<parameters>)
Parâmetros
table 0-row-2 1-row-2 2-row-2
Parâmetro Tipo
lista 1 list
lista 2 list
Assinaturas e tipos retornados

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.

Exemplos
code language-json
intersect(
    ["sports", "news", "documentary"],
    ["sports", "movies", "documentary"]
)

Retorna [“esportes”, “notícias”]

code language-json
intersect(
    #{ExperienceDataPlatform.profile.interests},
    ["sports", "documentary"]
)

Retorna itens comuns entre atributos de perfil e determinada lista de categorias.

code language-json
intersect(
    #{ExperienceDataPlatform.profile.interests},
        @event{myEvent.sport_interests}
)

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.

Sintaxe
limit(<parameters>)
Parâmetros
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.
Assinatura e tipo retornado

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.

Exemplos

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.

Sintaxe
listSize(<parameters>)
Parâmetros
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.
Assinaturas e tipo retornado

listSize(<listInteger>)

listSize(<listDecimal>)

listSize(<listString>)

listSize(<listBoolean>)

listSize(<listDateTimeOnly>)

listSize(<listDateTime>)

listSize(<listDateOnly>)

listSize(<listDuration>)

Retorna um número inteiro.

listSize(<listObject>)

Exemplos

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.

Sintaxe
mergeLists(<parameters>)
Parâmetros
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.
Assinaturas e tipos retornados

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

Exemplos
code language-json
mergeLists(['a','b'], ['b','c'], true)

Retorna ['a','b','c'].

code language-json
mergeLists(['a','b'], ['b','c'], false)

Retorna ['a','b','b','c'].

serializeList serializeList

Converte uma determinada lista (qualquer tipo, exceto listObject) em uma cadeia de caracteres.

Sintaxe
serializeList(<parameters>)
Parâmetros
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).
Assinatura e tipo retornado

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.

Exemplos

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.

Sintaxe
sort(<parameters>)
Parâmetros
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)
Assinatura e tipo retornado

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.

Exemplos

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)

AI Knowledge Reference

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) or distinctWithNull (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, and sort to 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 deduplicate parameter (product-specific)
  • differenceLists: A set operation returning the items of the first list that are not present in the second list (product-specific)

Guardrails:

  • distinctWithNull does not support the <listObject> parameter type
  • filter requires the listObject parameter to be a field reference, not an inline literal
  • listSize on a listObject requires the list to be a field reference; a listObject cannot contain null objects
  • serializeList does not support the listObject type
  • mergeLists and differenceLists only support scalar list types (string, integer, decimal, boolean, dateTime, dateTimeOnly, dateOnly, duration); listObject is not supported
  • mergeLists’s deduplicate parameter must be a literal true/false, not a dynamic boolean expression
  • differenceLists always 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” with false (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) or limit(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 distinct and distinctWithNull?distinct ignores null values and excludes them from the result; distinctWithNull treats 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, filter only works on listObject; for scalar lists use in or distinct for 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 of list1 not present in list2.
  • Q: What is the difference between intersect and differenceLists?intersect returns items common to both lists; differenceLists returns items in the first list that are absent from the second list.
recommendation-more-help
journey-optimizer-help