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.

  1. Crie sua ação personalizada. Consulte esta página.

  2. No Action parameters cole o exemplo JSON. A estrutura exibida é estática: ao colar a carga, todos os campos são definidos como constantes.

  3. 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.
  4. 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.
  5. Para cada campo, defina o rótulo que será exibido na tela de jornada.

  6. Crie sua jornada e adicione a ação personalizada que você criou. Consulte esta página.

  7. No Action parameters defina o parâmetro de matriz ("products" em nosso exemplo) usando o editor de expressão avançado.

  8. 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 o filtro e interseção funções:

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

Usar ações personalizadas

recommendation-more-help
4f4a00c1-77c9-4eee-84df-bbe6206c3ab9