Funções de gerenciamento de coleções collection-management-functions
Sobre funções de coleção de consulta
A linguagem de expressão também introduz um conjunto de funções para consultar coleções. Essas funções são explicadas abaixo.
Nos exemplos a seguir, usamos um evento chamado “LobbyBeacon” que contém uma coleção de tokens de notificação por push. Os exemplos nesta página usam a estrutura de payload do evento mostrada abaixo:
{
"_experience":{
"campaign":{
"message":{
"profile":{
"pushNotificationTokens":[
{
"token":"token_1",
"application":{
"_id":"APP1",
"name":"MarltonMobileApp",
"version":"1.0"
}
},
{
"token":"token_2",
"application":{
"_id":"APP2",
"name":"MarketplaceApp",
"version":"1.0"
}
},
{
"token":"token_3",
"application":{
"_id":"APP3",
"name":"VendorApp",
"version":"2.0"
}
}
]
}
}
}
},
"timestamp":"1536160728"
}
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens}, onde "LobbyBeacon" é o nome do evento e o restante do caminho corresponde à estrutura mostrada acima.A função all(<condition>)
A função all habilita a definição de um filtro em uma determinada coleção usando uma expressão booliana.
<listExpression>.all(<condition>)
Exemplo conceitual: Entre todos os usuários do aplicativo, você pode obter os usuários usando o IOS 13 (expressão booleana “app used == IOS 13”). O resultado dessa função é a lista filtrada que contém itens correspondentes à expressão booleana (exemplo: usuário do aplicativo 1, usuário do aplicativo 34, usuário do aplicativo 432).
Em uma atividade Data Source Condition, você pode verificar se o resultado da função all é nulo ou não. Você também pode combinar essa função all com outras funções, como count. Para obter mais informações, consulte Atividade de Condição Data Source.
Exemplos de código usando a carga LobbyBeacon:
Os exemplos abaixo usam a carga do evento mostrada na parte superior desta página.
Exemplo 1
Queremos verificar se um usuário instalou uma versão específica de um aplicativo. Para isso, obtemos todos os tokens de notificação por push associados a aplicativos móveis para os quais a versão é 1.0. Em seguida, executamos uma condição com a função count para verificar se a lista retornada de tokens contém pelo menos um elemento.
count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all(currentEventField.application.version == "1.0").token}) > 0
O resultado é true.
Exemplo 2
Aqui usamos a função count para verificar se há tokens de notificação por push na coleção.
count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all().token}) > 0
O resultado é true.
count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.token})
O resultado da expressão é 3.
-
Quando a condição de filtragem na função all() estiver vazia, o filtro retornará todos os elementos da lista. No entanto, para contar o número de elementos de uma coleção, a função all não é necessária.
-
currentEventFieldestá disponível somente ao manipular coleções de eventos,currentDataPackFieldao manipular coleções de fonte de dados ecurrentActionFieldao manipular coleções de resposta de ação personalizada.
all, first e last, repetimos cada elemento da coleção um por um. currentEventField, currentDataPackField e currentActionField correspondem ao elemento que está sendo repetido.As funções first(<condition>) e last(<condition>)
As funções first e last também habilitam a definição de um filtro na coleção ao retornar o primeiro/último elemento da lista que atende ao filtro.
<listExpression>.first(<condition>)
<listExpression>.last(<condition>)
Exemplo 1
Essa expressão retorna o primeiro token de notificação por push associado aos aplicativos móveis para os quais a versão é 1.0.
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.first(currentEventField.application.version == "1.0").token}
O resultado é token_1.
Exemplo 2
Essa expressão retorna o último token de notificação por push associado aos aplicativos móveis para os quais a versão é 1.0.
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.last(currentEventField.application.version == "1.0").token}
O resultado é token_2.
A função at(<index>)
A função às permite fazer referência a um elemento específico em uma coleção de acordo com um índice.
O índice 0 é o primeiro índice da coleção.
<listExpression>.às(<index>)
Exemplo
Essa expressão retorna o segundo token de notificação por push da lista.
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.at(1).token}
O resultado é token_2.