Caso d’uso: passaggio dinamico delle raccolte tramite azioni personalizzate passing-collection

Puoi trasmettere una raccolta nei parametri delle azioni personalizzate che verranno compilati in modo dinamico in fase di esecuzione. Sono supportati due tipi di raccolte:

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

    code language-none
    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • insiemi di oggetti: un array di oggetti JSON, ad esempio:

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

Limitazioni limitations

  • Gli array nidificati di oggetti all’interno di un array di oggetti non sono al momento supportati. Ad esempio:

    code language-none
    {
    "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 codice non è al momento supportata per gli eventi di business. Puoi inviare una raccolta solo con un singolo elemento.

Procedura generale general-procedure

In questa sezione viene utilizzato il seguente esempio di payload JSON. Si tratta di un array di oggetti con un campo che è un insieme semplice.

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

Si può vedere che "prodotti" è un array di due oggetti. Devi avere almeno un oggetto.

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

  2. Nella sezione Parametri azione, 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. Per gli insiemi sono supportati i tipi di campo seguenti: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject

    note note
    NOTE
    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 su variabili.

    note note
    NOTE
    Il primo oggetto dell’esempio di payload viene utilizzato per definire i campi.
  5. Per ogni 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. Nella sezione Parametri azione, definisci il parametro dell'array ("products" nel nostro esempio) utilizzando l'editor di espressioni avanzate.

  8. Per ciascuno dei seguenti campi oggetto, digita il nome del campo corrispondente dallo schema XDM di origine. Se i nomi sono identici, non è necessario. Nel nostro esempio, dobbiamo solo definire "id prodotto" e "colore".

Per il campo array, puoi anche utilizzare l’editor di espressioni avanzate per eseguire la manipolazione dei dati. Nell'esempio seguente vengono utilizzate le funzioni filter e intersect:

Casi particolari examples

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

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

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76