Trasmettere dinamicamente le raccolte utilizzando azioni personalizzate

Puoi passare una raccolta in parametri di azioni personalizzati che verranno compilati dinamicamente in fase di esecuzione. Sono supportati due tipi di raccolte:

  • raccolte semplici: array di tipi di dati semplici, ad esempio con listString:

    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • raccolte di oggetti: un array di oggetti JSON, ad esempio:

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

Limitazioni

  • Le matrici nidificate di oggetti all'interno di un array di oggetti non sono attualmente supportate. Esempio:

    {
    "products":[
      {
         "id":"productA",
         "name":"A",
         "price":20,
         "locations": [{"name": "Paris"}, {"name": "London"}]
      },
     ]
    }
    
  • Per testare le raccolte utilizzando la modalità di test, è necessario utilizzare la modalità di visualizzazione del codice. La modalità di visualizzazione del codice non è attualmente supportata per gli eventi aziendali. Puoi inviare una raccolta solo con un singolo elemento.

Procedura generale

In questa sezione utilizzeremo il seguente esempio di payload JSON. Matrice di oggetti con un campo costituito da una raccolta semplice.

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

È possibile vedere che "products" è una matrice di due oggetti. È necessario disporre di almeno un oggetto.

  1. Crea l'azione personalizzata. Consulta questa pagina.

  2. In Action parameters incolla l’esempio JSON. La struttura visualizzata è statica: quando si incolla il payload, tutti i campi sono definiti come costanti.

  3. Se necessario, regola i tipi di campo. I seguenti tipi di campi sono supportati per le raccolte: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    NOTA

    Il tipo di campo viene dedotto automaticamente in base all’esempio di payload.

  4. Se si desidera passare gli oggetti in modo dinamico, è necessario impostarli come variabili. In questo esempio impostiamo "products" come variabile. Tutti i campi oggetto inclusi nell’oggetto vengono impostati automaticamente sulle variabili.

    NOTA

    Il primo oggetto dell’esempio di payload viene utilizzato per definire i campi.

  5. Per ciascun campo, definisci l’etichetta che verrà visualizzata nell’area di lavoro del percorso.

  6. Crea il percorso e aggiungi l’azione personalizzata creata. Consulta questa pagina.

  7. In Action parameters definisci il parametro array ("products" nel nostro esempio) utilizzando l’editor di espressioni avanzate.

  8. Per ciascuno dei campi oggetto seguenti, digitare il nome di campo corrispondente dallo schema XDM di origine. Se i nomi sono identici, ciò non è necessario. Nel nostro esempio, dobbiamo solo definire "product id" e "color".

Per il campo array, è inoltre possibile utilizzare l’editor di espressioni avanzate per eseguire la manipolazione dei dati. Nell’esempio seguente, utilizziamo il filter e intersecare funzioni:

Casi particolari

Per tipi e array eterogenei di array, l'array viene definito con il tipo listAny. È possibile mappare solo singoli elementi, ma non è possibile modificare la matrice in variabili.

Esempio di tipo eterogeneo:

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

Esempio di array:

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

Argomenti correlati

Utilizzare azioni personalizzate

In questa pagina