Verzamelingen doorgeven aan aangepaste handelingsparameters passing-collection
U kunt een verzameling doorgeven in aangepaste handelingsparameters die bij uitvoering dynamisch worden gevuld.
Er worden twee typen verzamelingen ondersteund:
-
Eenvoudige inzamelingen
Gebruik eenvoudige verzamelingen voor lijsten met basiswaarden, zoals tekenreeksen, getallen of regeleinden. Deze zijn handig wanneer u alleen een lijst met items zonder extra eigenschappen hoeft door te geven.
Bijvoorbeeld een lijst met apparaattypen:
code language-json { "deviceTypes": [ "android", "ios" ] } -
de inzamelingen van Objecten
Gebruik objectverzamelingen wanneer elk item meerdere velden of eigenschappen bevat. Deze worden doorgaans gebruikt om gestructureerde gegevens door te geven, zoals productdetails, gebeurtenisrecords of itemkenmerken.
Bijvoorbeeld:
code language-json { "products":[ { "id":"productA", "name":"A", "price":20.1 }, { "id":"productB", "name":"B", "price":10.0 }, { "id":"productC", "name":"C", "price":5.99 } ] }
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
}
]
}
}
U ziet dat products een array van twee objecten is. U moet ten minste één object hebben.
-
Maak een aangepaste handeling. Leer meer op deze pagina .
-
Plak in de sectie Action parameters 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
productsin 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.
{width="70%"}
-
Maak uw reis en voeg de aangepaste actie toe die u hebt gemaakt. Leer meer op deze pagina .
-
Definieer in de sectie Action parameters de arrayparameter (
productsin 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 iden "color" te definiëren. {width="50%"}
Voor het matrixveld kunt u ook de geavanceerde expressie-editor gebruiken om gegevensbewerkingen uit te voeren. In het volgende voorbeeld, gebruiken wij de filter en functies doorsnijden:
Beperkingen limitations
Hoewel verzamelingen in aangepaste acties flexibiliteit bieden voor het doorgeven van dynamische gegevens, zijn er bepaalde structurele beperkingen die u moet kennen:
-
Steun voor Geneste Arrays in de Acties van de Douane
Adobe Journey Optimizer steunt genestelde series van voorwerpen in douaneactie antwoordladloads, maar deze steun is beperkt in verzoeklading.
In request-payloads worden geneste arrays alleen ondersteund wanneer ze een vast aantal items bevatten, zoals gedefinieerd in de aangepaste actieconfiguratie. Bijvoorbeeld, als een genestelde serie altijd precies drie punten omvat, kan het als constante worden gevormd. Wanneer het aantal items dynamisch moet zijn, kunnen alleen niet-geneste arrays (arrays op het onderste niveau) als variabelen worden gedefinieerd.
Voorbeeld:
-
Het volgende voorbeeld illustreert a niet-gesteund gebruiksgeval.
In dit voorbeeld bevat de productarray een geneste array (
locations) met een dynamisch aantal items. Deze array wordt niet ondersteund in aanvraagladingen.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "locations": [ { "name": "Paris" }, { "name": "London" } ] } ] } -
Ondersteund, bijvoorbeeld met vaste items die zijn gedefinieerd als constanten.
In dit geval worden de geneste locaties vervangen door vaste velden (
location1,location2), zodat de laadgegevens geldig blijven in de ondersteunde configuratie.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "location1": { "name": "Paris" }, "location2": { "name": "London" } } ] }
-
-
het Testen inzamelingen: Om inzamelingen te testen gebruikend testwijze, moet u de wijze van de codemening gebruiken. Merk op dat de wijze van de codemening niet voor bedrijfsgebeurtenissen wordt gesteund, zodat in dat geval, kunt u slechts een inzameling verzenden die één enkel element bevat.
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"
]
]
}
Aanvullende bronnen
Blader in de onderstaande secties voor meer informatie over het configureren, gebruiken en oplossen van problemen met aangepaste handelingen:
- worden begonnen met douaneacties - leer wat een douaneactie is en hoe zij u met uw derdesystemen helpen verbinden
- vorm uw douaneacties - leer hoe te om een douaneactie tot stand te brengen en te vormen
- de douaneacties van het Gebruik - leer hoe te om douaneacties in uw reizen te gebruiken
- het oplossen van problemen van de Actie van de Douane - Leer hoe te om een douaneactie problemen op te lossen