Hoofdlettergebruik: verzamelingen dynamisch doorgeven met behulp van aangepaste handelingen passing-collection
U kunt een verzameling doorgeven in aangepaste handelingsparameters die bij uitvoering dynamisch worden gevuld. Er worden twee soorten verzamelingen ondersteund:
-
eenvoudige verzamelingen: arrays van eenvoudige gegevenstypen, bijvoorbeeld met een listString:
code language-none { "deviceTypes": [ "android", "ios" ] }
-
objectverzamelingen: een array met JSON-objecten, bijvoorbeeld:
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 } ] }
Beperkingen limitations
-
Geneste arrays van objecten binnen een objectarray worden momenteel niet ondersteund. Bijvoorbeeld:
code language-none { "products":[ { "id":"productA", "name":"A", "price":20, "locations": [{"name": "Paris"}, {"name": "London"}] }, ] }
-
Als u verzamelingen wilt testen in de testmodus, moet u de modus Codeweergave gebruiken. De modus Codeweergave wordt momenteel niet ondersteund voor bedrijfsgebeurtenissen. U kunt alleen een verzameling met één element verzenden.
Algemene procedure general-procedure
In deze sectie gebruiken we het volgende JSON-payload-voorbeeld. Dit is een array van objecten met een veld dat een eenvoudige verzameling is.
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
Je kunt zien dat 'products' een array van twee objecten is. U moet ten minste één object hebben.
-
Maak een aangepaste handeling. Zie deze pagina.
-
In de Action parameters plakken in het JSON-voorbeeld. De weergegeven structuur is statisch: bij het plakken van de lading worden alle velden gedefinieerd als constanten.
-
Pas indien nodig de veldtypen aan. De volgende veldtypen worden ondersteund voor verzamelingen: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject
note note NOTE Het veldtype wordt automatisch afgeleid op basis van het voorbeeld van de payload. -
Als u objecten dynamisch wilt doorgeven, moet u ze instellen als variabelen. In dit voorbeeld stellen we 'products' in als variabele. Alle objectvelden in het object worden automatisch ingesteld op variabelen.
note note NOTE Het eerste object van het ladingsvoorbeeld wordt gebruikt om de velden te definiëren. -
Definieer voor elk veld het label dat op het canvas van de reis wordt weergegeven.
-
Maak uw reis en voeg de aangepaste actie toe die u hebt gemaakt. Zie deze pagina.
-
In de Action parameters definieert u de arrayparameter ("products" in ons voorbeeld) met de geavanceerde expressie-editor.
-
Typ voor elk van de volgende objectvelden de corresponderende veldnaam in het XDM-bronschema. Als de namen identiek zijn, is dit niet nodig. In ons voorbeeld hoeven we alleen 'product id' en 'color' te definiëren.
Voor het matrixveld kunt u ook de geavanceerde expressie-editor gebruiken om gegevensbewerkingen uit te voeren. In het volgende voorbeeld gebruiken wij filter en doorsnijden functies:
Bijzondere gevallen examples
Voor heterogene typen en arrays van arrays wordt de array gedefinieerd met het listAny-type. U kunt alleen afzonderlijke items toewijzen, maar u kunt de array niet wijzigen in een variabele.
Voorbeeld van een heterogeen type:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
Voorbeeld van array van arrays:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
Verwante onderwerpen
Aangepaste handelingen gebruiken