Dieser Leitfaden bietet Ihnen praktische Beispiele für Jinja2-Template-Mappings in GelatoConnect, damit Sie gängige Datenumwandlungen einfach umsetzen können. Egal, ob Sie Bestelldaten abgleichen, Benachrichtigungen anpassen oder Nachschlagefunktionen einbauen möchten – diese Beispiele geben Ihnen eine solide Grundlage.
Beispiel für eine einfache Bestellaufgabe
Dieses Beispiel zeigt Ihnen, wie Sie eine Standardbestellung aufgeben können:
Eingabedaten:
{ "order": { "id": "12345", "customer_email": "[email protected]", "Artikel": [ { "id": "item-1", "product_code": "POSTER-A3", "quantity": 2, "file_url": "https://example.com/files/poster.pdf" } ], "shipping": { "recipient": { "first_name": "John", "last_name": "Smith" }, "address": { "line1": "123 Hauptstraße", "line2": "Wohnung 4B", "city": "New York", "postal_code": "10001", "country": "US", "state": "NY" }, "phone": "212-555-1234" } }}
Vorlagen-Zuordnung:
{ "orderReferenceId": "####{{ order.id }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { "firstName": "####{{ order.shipping.recipient.first_name }}", "lastName": "####{{ order.shipping.recipient.last_name }}", "addressLine1": "####{{ order.shipping.address.line1 }}", "addressLine2": "####{{ order.shipping.address.line2 }}", "city": "####{{ order.shipping.address.city }}", "postCode": "####{{ order.shipping.address.postal_code }}", "country": "####{{ order.shipping.address.country }}", "state": "####{{ order.shipping.address.state }}", "email": "####{{ order.customer_email }}", "phone": "####{{ order.shipping.phone }}" }, "items": [ {% for item in order.items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'product_code': item.product_code}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.file_url }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Mit mehreren Produktdateien arbeiten
Dieses Beispiel zeigt, wie Sie Produkte mit mehreren Dateien (Vorder- und Rückseite) verwalten können:
Eingabedaten:
{ "orderReferenceId": "####{{ order.id }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { "firstName": "####{{ order.shipping.recipient.first_name }}", "lastName": "####{{ order.shipping.recipient.last_name }}", "addressLine1": "####{{ order.shipping.address.line1 }}", "addressLine2": "####{{ order.shipping.address.line2 }}", "city": "####{{ order.shipping.address.city }}", "postCode": "####{{ order.shipping.address.postal_code }}", "country": "####{{ order.shipping.address.country }}", "state": "####{{ order.shipping.address.state }}", "email": "####{{ order.customer_email }}", "phone": "####{{ order.shipping.phone }}" }, "items": [ {% for item in order.items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'Artikelnummer': item.product_code}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.file_url }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Vorlagen-Zuordnung:
{ "orderReferenceId": "####{{ orderNumber }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { {% set nameParts = deliveryDetails.contactName.split(' ') %} "firstName": "####{{ nameParts[0] }}", "lastName": "####{{ nameParts[1:] | join(' ') }}", "addressLine1": "####{{ deliveryDetails.address.street }}", "city": "####{{ deliveryDetails.address.city }}", "state": "####{{ deliveryDetails.address.state }}", "postCode": "####{{ deliveryDetails.address.zip }}", "country": "####{{ deliveryDetails.address.country }}", "email": "####{{ deliveryDetails.email }}", "phone": "####{{ deliveryDetails.phone }}" }, "Artikel": [ {% for product in products %} { "itemReferenceId": "####{{ product.productId }}", "productUid": "####{{ lookups({'Artikelnummer': product.sku}, strict=False, default='') }}", "Menge": ####{{ product.qty }}, "Dateien": [ { "type": "Vorderseite", "url": "####{{ product.files.front }}" }, { "type": "Rückseite", "url": "####{{ product.files.back }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Beispiel für bedingte Logik
Dieses Beispiel zeigt, wie Sie mit verschiedenen Produkttypen flexibel umgehen können:
Eingabedaten:
{ "orderId": "ORD-5555", "Kunde": { "name": "Alice Johnson", "email": "[email protected]", "Telefon": "555-123-4567" }, "shipping": { "address": "789 Pine St", "apartment": "Wohnung", "city": "Boston", "state": "MA", "zipCode": "02108", "country": "US" }, "Artikel": [ { "id": "ITEM-A", "type": "Poster", "sku": "POSTER-LG", "Menge": 1, "image": "https://example.com/files/poster.jpg" }, { "id": "ITEM-B", "type": "Karte", "sku": "KARTE-SM", "quantity": 100, "frontImage": "https://example.com/files/card-front.jpg", "backImage": "https://example.com/files/card-back.jpg" } ]}
Vorlagen-Zuordnung:
{ "orderReferenceId": "####{{ orderId }}", "orderType": "Bestellung", "currency": "USD", "shippingAddress": { {% set nameParts = customer.name.split(' ') %} "firstName": "####{{ nameParts[0] }}", "lastName": "####{{ nameParts[1:] | join(' ') }}", "addressLine1": "####{{ shipping.address }}", {% if shipping.apartment %} "addressLine2": "####{{ shipping.apartment }}", {% endif %} "city": "####{{ shipping.city }}", "state": "####{{ shipping.state }}", "postCode": "####{{ shipping.zipCode }}", "country": "####{{ shipping.country }}", "email": "####{{ customer.email }}", "phone": "####{{ customer.phone }}" }, "items": [ {% for item in items %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'Artikelnummer': item.sku}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ {% if item.type == 'poster' %} { "type": "Standard", "url": "####{{ item.image }}" } {% elif item.type == 'card' %} { "type": "Vorderseite", "url": "####{{ item.frontImage }}" }, { "type": "Rückseite", "url": "####{{ item.backImage }}" } {% endif %} ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Beispiel für eine Rückmeldung zum Bestellstatus
In diesem Beispiel sehen Sie, wie eine Benachrichtigung über eine Statusänderung einer Bestellung im Postback-Format gestaltet wird:
Eingabedaten:
{ "orderId": "a6a1f9ce-2bdd-4a9e-9f8d-0009df0e24d9", "orderReferenceId": "J123X456", "customerReferenceId": "CUST-789", "fulfillmentStatus": "versendet", "created": "12.04.2023 10:26:52", "items": [ { "itemReferenceId": "123", "fulfillmentStatus": "versendet", "Fulfillments": [ { "trackingCode": "TRK123456789", "trackingUrl": "https://example.com/tracking?code=TRK123456789", "carrierName": "FedEx", "carrierUid": "fed_ex_ground", "fulfillmentCountry": "US", "fulfillmentStateProvince": "NY" } ] } ]}
Vorlagen-Mapping:
{ "event": "BESTELLUNG_VERSENDET", "timestamp": "####{{ created }}", "order": { "id": "####{{ orderReferenceId }}", "customer_id": "####{{ customerReferenceId }}", "status": "####{{ fulfillmentStatus | upper }}", "shipped_items": [ {% for item in items %} {% if item.fulfillmentStatus == 'shipped' %} { "item_id": "####{{ item.itemReferenceId }}", "tracking": { {% for fulfillment in item.fulfillments %} "carrier": "####{{ fulfillment.carrierName }}", "tracking_number": "####{{ fulfillment.trackingCode }}", "tracking_url": "####{{ fulfillment.trackingUrl }}", "shipped_from": { "country": "####{{ fulfillment.fulfillmentCountry }}", "state": "####{{ fulfillment.fulfillmentStateProvince }}" } {% endfor %} } }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ] }}
Beispiel für erweiterte Suchfunktionen
Dieses Beispiel zeigt, wie Sie komplexe Zuordnungen für die Produktzuweisung und die Auswahl des Versanddienstleisters vornehmen können:
Eingabedaten:
{ "reference": "ORDER-8888", "Empfänger": { "fullName": "Robert Brown", "emailAddress": "[email protected]", "phoneNumber": "888-555-1212", "shippingInformation": { "streetAddress": "Eichenallee 321", "city": "Chicago", "state": "IL", "postalCode": "60601", "countryCode": "US" } }, "orderItems": [ { "lineItemId": "LI-001", "productReference": { "code": "BK-HCVR-A5", "type": "Hardcover-Buch", "size": "A5" }, "quantity": 1, "assetUrls": { "coverFile": "https://example.com/files/book-cover.pdf", "interiorFile": "https://example.com/files/book-interior.pdf" }, "additionalAttributes": { "pageCount": 120, "paperType": "Premiumpapier" } } ], "shippingPreference": "Standardversand", "region": "Nordamerika"}
Vorlagen-Zuordnung:
{% set shipping_lookup = { "express_north_america": "fed_ex_2_day", "express_europe": "dhl_express_eu", "standard_north_america": "UPS Ground", "standard_europe": "dhl_parcel_eu"} %}{% set product_lookup = {} %}{% set product_lookup = product_lookup.update({ "BK-HCVR-A5-premium": "buch_produkt_pf_a5_pt_premium_cl_4-4_hcvr", "BK-HCVR-A5-standard": "falten_produkt_pf_a5_pt_standard_cl_4-4_hcvr", "BK-SCVR-A5-premium": "Buch_Produkt_PF_A5_PT_Premium_CL_4-4_SCVR", "BK-SCVR-A5-standard": "buchprodukt_pf_a5_pt_standard_cl_4-4_scvr"}) %}{ "orderReferenceId": "####{{ reference }}", "orderType": "Bestellung", "currency": "USD", {% set shipping_key = shippingPreference + '_' + region %} "shipmentMethodUid": "####{{ shipping_lookup.get(shipping_key, 'normal') }}", "shippingAddress": { {% set name_parts = recipient.fullName.split(' ') %} "firstName": "####{{ name_parts[0] }}", "lastName": "####{{ name_parts[1:] | join(' ') }}", "addressLine1": "####{{ recipient.shippingInformation.streetAddress }}", "city": "####{{ recipient.shippingInformation.city }}", "state": "####{{ recipient.shippingInformation.state }}", "postCode": "####{{ recipient.shippingInformation.postalCode }}", "country": "####{{ recipient.shippingInformation.countryCode }}", "email": "####{{ recipient.emailAddress }}", "phone": "####{{ recipient.phoneNumber }}" }, "items": [ {% for item in orderItems %} { "itemReferenceId": "####{{ item.lineItemId }}", {% set product_key = item.productReference.code + '-' + item.additionalAttributes.paperType %} "productUid": "####{{ product_lookup.get(product_key, lookups({'code': item.productReference.code, 'paper': item.additionalAttributes.paperType}, strict=False, default='')) }}", "quantity": ####{{ item.quantity }}, "Seitenanzahl": ####{{ item.additionalAttributes.pageCount }}, "Dateien": [ { "type": "Umschlag", "url": "####{{ item.assetUrls.coverFile }}" }, { "type": "innen", "url": "####{{ item.assetUrls.interiorFile }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Mit Daten arbeiten und sie richtig formatieren
Dieses Beispiel zeigt, wie Sie Datumsformate anwenden und Texte bearbeiten können:
Eingabedaten:
{ "orderNum": "INV-20230412-001", "datePlaced": "12.04.2023 14:30", "clientDetails": { "id": "CLIENT001", "contactInfo": { "name": "SARAH WILLIAMS", "email": "[email protected]", "Telefon": "1.212.555.7890" }, "deliveryAddress": { "line1": "555 Broadway", "line2": "10. Etage", "city": "New York", "region": "New York", "code": "10012", "country": "Vereinigte Staaten" } }, "lineItems": [ { "refCode": "LI-001-A", "productIdentifier": "BROCHURE-A4-GLOSSY", "amount": 250, "Design": "https://example.com/files/brochure.pdf" } ]}
Vorlagen-Mapping:
{% set country_codes = { "Vereinigte Staaten": "US", "Vereinigtes Königreich": "GB", "Kanada": "CA", "Australien": "AU", "Germany": "DE", "Frankreich": "FR"} %}{% set date_parts = datePlaced.split('T')[0].split('-') %}{% set formatted_date = date_parts[2] + '.' + date_parts[1] + '.' + date_parts[0] %}{ "orderReferenceId": "####{{ orderNum }}", "orderType": "Bestellung", "currency": "USD", "Metadaten": [ { "key": "clientId", "value": "####{{ clientDetails.id }}" }, { "key": "Bestelldatum", "value": "####{{ formatted_date }}" } ], "shippingAddress": { {% set name_parts = clientDetails.contactInfo.name | lower | title | split(' ') %} "firstName": "####{{ name_parts[0] }}", "lastName": "####{{ name_parts[1:] | join(' ') }}", "addressLine1": "####{{ clientDetails.deliveryAddress.line1 }}", "addressLine2": "####{{ clientDetails.deliveryAddress.line2 }}", "city": "####{{ clientDetails.deliveryAddress.city }}", "state": "####{{ clientDetails.deliveryAddress.region }}", "postCode": "####{{ clientDetails.deliveryAddress.code }}", "country": "####{{ country_codes.get(clientDetails.deliveryAddress.country, 'US') }}", "email": "####{{ clientDetails.contactInfo.email }}", "phone": "####{{ clientDetails.contactInfo.telephone | replace('.', '-') }}" }, "items": [ {% for item in lineItems %} { "itemReferenceId": "####{{ item.refCode }}", "productUid": "####{{ lookups({'product_id': item.productIdentifier}, strict=False, default='') }}", "quantity": ####{{ item.amount }}, "files": [ { "type": "Standard", "url": "####{{ item.design }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Fehlerbehandlung und Standardwerte
Dieses Beispiel zeigt, wie Sie Fehler sicher abfangen und dabei Standardwerte verwenden:
Eingabedaten:
{ "id": "ORD-91011", "buyer": { "name": "Michael Johnson" // E-Mail-Feld fehlt }, "shipping": { "name": "Michael Johnson", "address": "111 River Rd", // Stadt fehlt "province": "Ontario", "postal": "M5V 2H1", "country": "CA" }, "items": [ { "id": "ITEM-001", "sku": "KALENDER-WAND", "Menge": 1, "assets": { "main": "https://example.com/files/kalender.pdf" } }, { // Unvollständiger Artikel "id": "ITEM-002" } ]}
Vorlagen-Zuordnung:
{ "orderReferenceId": "####{{ id }}", "orderType": "Bestellung", "currency": "CAD", "shippingAddress": { {% set recipient = shipping.name | default('') %} {% set name_parts = recipient.split(' ') if recipient else ['', ''] %} "firstName": "####{{ name_parts[0] | default('Unbekannt') }}", "lastName": "####{{ name_parts[1:] | join(' ') | default('Kunde') }}", "addressLine1": "####{{ shipping.address | default('Adresse fehlt') }}", "city": "####{{ shipping.city | default('Toronto') }}", "state": "####{{ shipping.province | default('ON') }}", "postCode": "####{{ shipping.postal | default('') }}", "country": "####{{ shipping.country | default('CA') }}", "email": "####{{ buyer.email | default('[email protected]') }}", "phone": "####{{ buyer.phone | default('000-000-0000') }}" }, "items": [ {% for item in items %} {% if item.id und item.artikelnummer und item.quantity %} { "itemReferenceId": "####{{ item.id }}", "productUid": "####{{ lookups({'artikelnummer': item.sku}, strict=False, default='') }}", "quantity": ####{{ item.quantity }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.assets.main | default('') }}" } ] }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ]}
Mehrere Quellen geschickt verbinden
In diesem Beispiel werden Daten aus verschiedenen Quellen zusammengeführt:
Eingabedaten:
{ "order": { "id": "PO-12345", "type": "Standard" }, "Kunde": { "id": "CUST-789", "segment": "Geschäft" }, "Empfänger": { "first": "David", "last": "Miller", "email": "[email protected]", "phone": "303-555-1212", "delivery": { "address": "987 State St", "suite": "Suite 500", "city": "Denver", "state": "CO", "zip": "80202", "country": "US" } }, "Produkte": [ { "id": "PROD-A1", "code": "FLYER-A4-FULL", "count": 500, "Design": "https://example.com/files/flyer.pdf" } ], "shipping": { "method": "Standardversand", "expectedDays": 3 }, "promotion": { "campaign": "SPRING2023", "Quelle": "E-Mail" }}
Vorlagen-Zuordnung:
{% set shipping_method_map = { "overnight": "fed_ex_priority_overnight", "express": "fed_ex_2_day", "ground": "fed_ex_ground"} %}{ "orderReferenceId": "####{{ order.id }}", "orderType": "####{{ 'Entwurf' if order.type == 'preorder' else 'Bestellung' }}", "currency": "USD", "customerReferenceId": "####{{ customer.id }}", "shipmentMethodUid": "####{{ shipping_method_map.get(shipping.method, 'normal') }}", "Metadaten": [ { "key": "Kampagne", "value": "####{{ promotional.campaign }}" }, { "key": "Quelle", "value": "####{{ promotional.source }}" }, { "key": "Segment", "value": "####{{ customer.segment }}" }, { "key": "voraussichtlicheLieferung", "value": "####{{ shipping.expectedDays }}" } ], "shippingAddress": { "firstName": "####{{ recipient.first }}", "lastName": "####{{ recipient.last }}", "addressLine1": "####{{ recipient.delivery.address }}", "addressLine2": "####{{ recipient.delivery.suite }}", "city": "####{{ recipient.delivery.city }}", "state": "####{{ recipient.delivery.state }}", "postCode": "####{{ recipient.delivery.zip }}", "country": "####{{ recipient.delivery.country }}", "email": "####{{ recipient.email }}", "phone": "####{{ recipient.phone }}" }, "items": [ {% for product in products %} { "itemReferenceId": "####{{ product.id }}", "productUid": "####{{ lookups({'Artikelnummer': product.code}, strict=False, default='') }}", "Menge": ####{{ product.count }}, "Dateien": [ { "type": "Standard", "url": "####{{ product.design }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Arbeiten mit komplexen verschachtelten Strukturen
Dieses Beispiel zeigt, wie Sie mit komplex verschachtelten Datenstrukturen umgehen können:
Eingabedaten:
{ "data": { "transaction": { "identifiers": { "internalRef": "TX-44556", "customerRef": "CUST-ABC123" }, "metadata": { "createdAt": "12.04.2023 09:15", "source": "Web", "Tags": ["priority", "corporate"] } }, "parteien": { "Absender": { "organization": "Acme Corp", "contact": { "person": { "givenName": "Thomas", "familyName": "Anderson" }, "details": { "email": { "address": "[email protected]" }, "phone": { "number": "415-555-9876", "Durchwahl": "123" } } } }, "recipient": { "person": { "givenName": "Sarah", "familyName": "Connor" }, "contactDetails": { "emailAddress": "[email protected]", "phoneNumber": "213-555-4321" }, "location": { "address": { "street": "1984 Tech Blvd", "unit": "#42", "locality": "Los Angeles", "region": "Kalifornien", "postalCode": "90210", "country": "USA" } } } }, "contents": { "items": [ { "descriptor": { "id": "ITM-X789", "type": "Broschüre", "specifications": { "format": "A4", "paperType": "Glänzend", "colorProfile": "CMYK" } }, "quantity": { "value": 1000, "unit": "Stück" }, "digitalAssets": { "printable": { "fileLocation": "https://example.com/files/broschuere-komplex.pdf" } } } ] } }}
Vorlagen-Mapping:
{% set country_map = { "USA": "USA", "United States": "USA", "United States of America": "USA", "UK": "GB", "Vereinigtes Königreich": "GB", "England": "GB"} %}{ "orderReferenceId": "####{{ data.transaction.identifiers.internalRef }}", "orderType": "Bestellung", "currency": "USD", "customerReferenceId": "####{{ data.transaction.identifiers.customerRef }}", "Metadaten": [ { "key": "createdAt", "value": "####{{ data.transaction.metadata.createdAt }}" }, { "key": "Quelle", "value": "####{{ data.transaction.metadata.source }}" }, {% for tag in data.transaction.metadata.tags %} { "key": "tag_####{{ loop.index }}", "value": "####{{ tag }}" }{% if not loop.last %},{% endif %} {% endfor %} ], "shippingAddress": { "firstName": "####{{ data.parties.recipient.person.givenName }}", "lastName": "####{{ data.parties.recipient.person.familyName }}", "addressLine1": "####{{ data.parties.recipient.location.address.street }}", "addressLine2": "####{{ data.parties.recipient.location.address.unit }}", "city": "####{{ data.parties.recipient.location.address.locality }}", "state": "####{{ data.parties.recipient.location.address.region }}", "postCode": "####{{ data.parties.recipient.location.address.postalCode }}", "country": "####{{ country_map.get(data.parties.recipient.location.address.country, data.parties.recipient.location.address.country) }}", "email": "####{{ data.parties.recipient.contactDetails.emailAddress }}", "phone": "####{{ data.parties.recipient.contactDetails.phoneNumber }}" }, "items": [ {% for item in data.contents.items %} { "itemReferenceId": "####{{ item.descriptor.id }}", "productUid": "####{{ lookups({ 'type': item.descriptor.type, 'format': item.descriptor.specifications.format, 'Papier': item.descriptor.specifications.paperType }, strict=False, default='') }}", "quantity": ####{{ item.quantity.value }}, "Dateien": [ { "type": "Standard", "url": "####{{ item.digitalAssets.printable.fileLocation }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Tipps für erfolgreiche Template Mapper
Wenn Sie mit Jinja2 Template Mappers in GelatoConnect arbeiten, sollten Sie diese praktischen Tipps beachten:
Setzen Sie Debugging-Techniken ein:
Fügen Sie vorübergehende Felder hinzu, um Zwischenergebnisse anzuzeigen
Verwenden Sie den Filter {% raw %}####{{ variable | tojson }}{% endraw %}, um komplexe Objekte zu überprüfen.
Set-Anweisungen mit Bedingungen kombinieren:
jinja{% set shipping_type = 'express' if order.priority == 'high' else 'standard' %}
Umgang mit fehlenden oder verschachtelten Daten:
jinja####{{ data.get('nested', {}).get('deeply', {}).get('property', 'default_value') }}
Erstellen Sie Übersichtslisten für häufige Zuordnungen:
{% set status_map = {'NEW': 'eingegangen', 'SHIPPED': 'versendet', 'DELIVERED': 'zugestellt'} %}"status": "####{{ status_map.get(input_status, 'unbekannt') }}"
Wiederverwendbare Logik in Makros bündeln:
{% macro format_phone(phone) %}####{{ phone | replace(' ', '') | replace('.', '-') }}{% endmacro %}
Verwenden Sie Filter, um Daten zu verwandeln:
Rand
: Entfernt Leerzeichenreplace
: Text ersetzenupper
/lower
/title
: Schreibweise änderndefault
: Geben Sie Ersatzwerte antojson
: Als JSON-String formatieren
Beachten Sie die Leistung bei großen Datenmengen:
Berechnen Sie Werte vor der Schleife
Verwenden Sie Set-Anweisungen außerhalb von Schleifen
Halten Sie Vorlagen klar und zielgerichtet
Wie geht es weiter
Nachdem Sie sich diese praktischen Beispiele angeschaut haben, können Sie jetzt:
Passen Sie diese Vorlagen an Ihre individuellen Integrationsbedürfnisse an
Kombinieren Sie verschiedene Techniken, um noch vielseitigere Veränderungen zu gestalten.
Testen Sie Ihre Vorlagen gründlich mit echten Daten
Richten Sie Postback-Auslöser mit diesen Vorlagen ein
Setzen Sie Nachschlagefunktionen ein, um Werte effizient zuzuordnen.