Paso de colecciones de forma dinámica mediante acciones personalizadas passing-collection

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:

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

    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
       }
     ]
    }
    

Limitaciones limitations

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

    code language-none
    {
    "products":[
      {
         "id":"productA",
         "name":"A",
         "price":20,
         "locations": [{"name": "Paris"}, {"name": "London"}]
      },
     ]
    }
    
  • Para probar colecciones con 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 general-procedure

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 "products" 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 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. Se admiten los siguientes tipos de campos para colecciones: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    note note
    NOTE
    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 establecerlos como variables. En este ejemplo establecemos "products" como variable. Todos los campos de objeto incluidos en el objeto se establecen en variables automáticamente.

    note note
    NOTE
    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 de recorrido.

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

  7. En el Action parameters En la sección, defina el parámetro de matriz ("productos" en nuestro ejemplo) utilizando el editor de expresiones avanzadas.

  8. Para cada uno de los siguientes campos de objeto, escriba el nombre del 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 intersect funciones:

Casos particulares examples

Para los tipos y matrices heterogéneos 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

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