Envio dinâmico de coleções usando ações personalizadas passing-collection
Você pode passar uma coleção em parâmetros de ação personalizados que serão preenchidos dinamicamente no tempo de execução. Há suporte para dois tipos de coleções:
-
coleções simples: matrizes de tipos de dados simples, por exemplo, com uma listString:
code language-none { "deviceTypes": [ "android", "ios" ] }
-
coleções de objetos: uma matriz de objetos JSON, por exemplo:
code language-none { "products":[ { "id":"productA", "name":"A", "price":20.1 }, { "id":"productB", "name":"B", "price":10.0 }, { "id":"productC", "name":"C", "price":5.99 } ] }
Limitações limitations
-
Matrizes aninhadas de objetos em uma matriz de objetos não têm suporte no momento. Por exemplo:
code language-none { "products":[ { "id":"productA", "name":"A", "price":20, "locations": [{"name": "Paris"}, {"name": "London"}] }, ] }
-
Para testar coleções usando o modo de teste, é necessário usar o modo de visualização de código. No momento, o modo de exibição de código não é compatível com eventos comerciais. Você só pode enviar uma coleção com um único elemento.
Procedimento geral general-procedure
Nesta seção, usaremos o seguinte exemplo de carga JSON. Esta é uma matriz de objetos com um campo que é uma coleção simples.
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
Você pode ver que "produtos" é uma matriz de dois objetos. Você precisa ter pelo menos um objeto.
-
Crie sua ação personalizada. Consulte esta página.
-
Na seção Action parameters, cole o exemplo JSON. A estrutura exibida é estática: ao colar a carga, todos os campos são definidos como constantes.
-
Se necessário, ajuste os tipos de campo. Os seguintes tipos de campo são compatíveis com coleções: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject
note note NOTE O tipo de campo é inferido automaticamente de acordo com o exemplo de carga útil. -
Se você quiser passar objetos dinamicamente, precisará defini-los como variáveis. Neste exemplo, definimos "products" como variável. Todos os campos de objeto incluídos no objeto são definidos como variáveis automaticamente.
note note NOTE O primeiro objeto do exemplo de carga útil é usado para definir os campos. -
Para cada campo, defina o rótulo que será exibido na tela de jornada.
-
Crie sua jornada e adicione a ação personalizada que você criou. Consulte esta página.
-
Na seção Action parameters, defina o parâmetro de matriz ("produtos" em nosso exemplo) usando o editor de expressão avançado.
-
Para cada um dos campos de objeto a seguir, digite o nome do campo correspondente do esquema XDM de origem. Se os nomes forem idênticos, isso não será necessário. No nosso exemplo, precisamos definir apenas "product id" e "color".
Para o campo de matriz, também é possível usar o editor de expressão avançado para executar a manipulação de dados. No exemplo a seguir, usamos as funções filtro e interseção:
Casos específicos examples
Para tipos heterogêneos e arrays de arrays, o array é definido com o tipo listAny. Você só pode mapear itens individuais, mas não pode alterar a matriz para a variável.
Exemplo de tipo heterogêneo:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
Exemplo de matriz de matrizes:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
Tópicos relacionados