Transmitir colecciones de forma dinámica mediante acciones personalizadas

Puede pasar una colección en parámetros de acción personalizados que se rellenarán dinámicamente durante la ejecución. Se admiten dos tipos de colecciones:

  • colecciones simples: matrices de tipos de datos simples, por ejemplo, con un listString:

    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • colecciones de objetos: una matriz de objetos JSON, por ejemplo:

    {
    "products":[
       {
          "id":"productA",
          "name":"A",
          "price":20.1
       },
       {
          "id":"productB",
          "name":"B",
          "price":10.0
       },
       {
          "id":"productC",
          "name":"C",
          "price":5.99
       }
     ]
    }
    

Limitaciones

  • En este momento no se admiten matrices anidadas de objetos dentro de una matriz de objetos. Por ejemplo:

    {
    "products":[
      {
         "id":"productA",
         "name":"A",
         "price":20,
         "locations": [{"name": "Paris"}, {"name": "London"}]
      },
     ]
    }
    
  • Para probar colecciones mediante el modo de prueba, debe utilizar el modo de vista de código. El modo de vista de código no es compatible con eventos empresariales en este momento. Solo puede enviar una colección con un solo elemento.

Procedimiento general

En esta sección, utilizaremos el siguiente ejemplo de carga útil JSON. Es una matriz de objetos con un campo que es una colección simple.

{
  "ctxt": {
    "products": [
      {
        "id": "productA",
        "name": "A",
        "price": 20.1,
        "color":"blue",
        "locations": [
          "Paris",
          "London"
        ]
      },
      {
        "id": "productB",
        "name": "B",
        "price": 10.99
      }
    ]
  }
}

Se puede ver que "productos" es una matriz de dos objetos. Debe tener al menos un objeto.

  1. Cree su acción personalizada. Consulte esta página.

  2. En el Action parameters , pegue el ejemplo de JSON. La estructura mostrada es estática: al pegar la carga útil, todos los campos se definen como constantes.

  3. Si es necesario, ajuste los tipos de campo. Los siguientes tipos de campos son compatibles con las colecciones: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    NOTA

    El tipo de campo se infiere automáticamente según el ejemplo de carga útil.

  4. Si desea pasar objetos de forma dinámica, debe definirlos como variables. En este ejemplo establecemos "productos" como variable. Todos los campos de objeto incluidos en el objeto se establecen en variables automáticamente.

    NOTA

    El primer objeto del ejemplo de carga útil se utiliza para definir los campos.

  5. Para cada campo, defina la etiqueta que se mostrará en el lienzo del recorrido.

  6. Cree el recorrido y añada la acción personalizada que ha creado. Consulte esta página.

  7. En el Action parameters , defina el parámetro de matriz ("products" en nuestro ejemplo) utilizando el editor de expresiones avanzadas.

  8. Para cada uno de los campos de objeto siguientes, escriba el nombre de campo correspondiente del esquema XDM de origen. Si los nombres son idénticos, no es necesario. En nuestro ejemplo, solo necesitamos definir "id de producto" y "color".

Para el campo de matriz, también puede utilizar el editor de expresiones avanzadas para realizar la manipulación de datos. En el siguiente ejemplo, utilizamos la variable filter y intersección funciones:

Casos particulares

Para tipos heterogéneos y matrices de matrices, la matriz se define con el tipo listAny . Solo puede asignar elementos individuales, pero no puede cambiar la matriz a variable.

Ejemplo de tipo heterogéneo:

{
    "data_mixed-types": [
        "test",
        "test2",
        null,
        0
    ]
}

Ejemplo de matriz de matrices:

{
    "data_multiple-arrays": [
        [
            "test",
            "test1",
            "test2"
        ]
    ]
}

Temas relacionados

Uso de acciones personalizadas

En esta página