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 definição, como localizar elementos comuns entre listas (interseção)
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.
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).
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)
Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.
Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.
- TL;DR: esta página documenta todas as funções de lista disponíveis nas expressões de jornada do AJO, abordando como filtrar, classificar, desduplicar, verificar associação, limitar, serializar e encontrar interseções de listas e matrizes.
Intenções:
- Remover valores duplicados de uma lista usando
distinct(ignorando nulos) oudistinctWithNull(preservando nulos) - Filtrar um listObject para retornar somente objetos correspondentes a valores de chave específicos usando
filter - Recuperar um elemento em um índice específico de uma lista usando
getListItem - Verificar se existe um valor em uma lista usando
in - Encontrar elementos comuns entre duas listas usando
intersect - Retorna o primeiro ou o último N elementos de uma lista usando
limit - Contar o número total de elementos em uma lista usando
listSize - Converter uma lista em uma cadeia de caracteres delimitada usando
serializeList - Classificar uma lista em ordem crescente ou decrescente usando
sort
Glossário:
- listObject: uma lista de objetos complexos que devem ser uma referência de campo; não pode conter objetos nulos (específico do produto)
- keyAttributeName: um parâmetro de cadeia opcional usado com
distinct,filteresortpara identificar qual atributo de objeto usar para eliminação de duplicação, filtragem ou classificação (específico do produto) - interseção: uma operação de conjunto que retorna somente os elementos presentes em ambas as listas de entrada
Medidas de Proteção:
distinctWithNullnão dá suporte ao tipo de parâmetro<listObject>filterrequer que o parâmetro listObject seja uma referência de campo, não um literal embutidolistSizeem um listObject requer que a lista seja uma referência de campo; um listObject não pode conter objetos nulosserializeListnão dá suporte ao tipolistObject
Terminologia:
- Nome canônico: funções de lista — Acrônimo: none — variantes: funções de coleção, funções de matriz
- Sinônimos: “listSize” = “count list elements”; “serializeList” = “join list to string”
- Não confunda: “distinct” (ignora nulos) ≠ “distinctWithNull” (preserva nulo como um valor distinto)
- Não confunda: “limit” com o terceiro parâmetro
true(retorna os primeiros N itens) ≠ “limit” comfalse(retorna os últimos N itens) - Não confunda: “intersect” (elementos comuns entre duas listas) ≠ “filter” (elementos que correspondem a valores de chave específicos)
Perguntas frequentes:
- P: Como faço para obter os primeiros 3 itens de uma lista? — Use
limit(myList, 3)oulimit(myList, 3, true); o padrão é retornar os primeiros itens. - P: Como obter os últimos 3 itens de uma lista? — Use
limit(myList, 3, false). - P: Qual é a diferença entre
distinctedistinctWithNull? —distinctignora valores nulos e os exclui do resultado;distinctWithNulltrata nulo como um valor distinto e inclui uma entrada nula se houver nulos. - P: Posso filtrar uma lista de cadeias de caracteres com
filter? — Não,filterfunciona somente emlistObject; para listas escalares, useinoudistinctpara desduplicação. - P: Como verificar se um valor está em uma lista? — Use
in(value, myList), que retornará true se o valor for encontrado na lista. - P: Posso classificar um listObject por um atributo específico? — Sim, use
sort(@event{...}, "attributeName", true)onde o segundo parâmetro é o nome do atributo e o terceiro é a direção da classificação (true = crescente).