Deze gids geeft je praktische voorbeelden van Jinja2-template mappers in GelatoConnect, zodat je makkelijk aan de slag kunt met veelvoorkomende datatransformaties. Of je nu ordergegevens koppelt, meldingen aanpast of zoektabellen gebruikt, met deze voorbeelden heb je een stevige basis om op verder te bouwen.
Voorbeeld van een eenvoudige bestelling plaatsen
Dit voorbeeld laat zien hoe je een standaard bestelling plaatst:
Invoergegevens:
{ \"order\": { \"id\": \"12345\", "customer_email": "[email protected]", "items": [ { "id": "item-1", "product_code": "POSTER-A3", \"quantity\": 2, "file_url": "https://example.com/files/poster.pdf" } ], \"shipping\": { \"ontvanger\": { \"first_name\": \"John\", \"last_name\": \"Smith\" }, \"address\": { \"line1\": \"123 Main St\", \"line2\": \"Apt 4B\", "city": "New York", "postal_code": "10001", \"country\": \"US\", \"state\": \"NY\" }, \"phone\": \"212-555-1234\" } }}
Sjabloonmapper:
{ \"orderReferenceId\": \"####{{ order.id }}\", \"orderType\": \"bestelling\", \"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 }}, "bestanden": [ { "type": "standaard", \"url\": \"####{{ item.file_url }}\" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Werken met meerdere productbestanden
Dit voorbeeld behandelt producten met meerdere bestanden (voorkant en achterkant):
Invoergegevens:
{ "orderReferenceId": "####{{ order.id }}", \"orderType\": \"order\", "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 }}, \"files\": [ { "type": "standaard", "url": "####{{ item.file_url }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Template mapper:
{ \"orderReferenceId\": \"####{{ orderNumber }}\", \"orderType\": \"bestelling\", \"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 }}\", \"telefoon\": \"####{{ deliveryDetails.phone }}\" }, "items": [ {% for product in products %} { \"itemReferenceId\": \"####{{ product.productId }}\", "productUid": "####{{ lookups({'sku': product.sku}, strict=False, default='') }}", "aantal": ####{{ product.qty }}, "bestanden": [ { "type": "voorkant", "url": "####{{ product.files.front }}" }, { "type": "terug", \"url\": \"####{{ product.files.back }}\"" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Voorbeeld van voorwaardelijke logica
Dit voorbeeld laat zien hoe je met slimme keuzes verschillende producttypes kunt aanpakken:
Ingevoerde gegevens:
{ "orderId": "ORD-5555", "klant": { "name": "Alice Johnson", "email": "[email protected]", "phone": "555-123-4567" }, "shipping": { "address": "789 Pine St", "apartment": "appartement", "city": "Boston", "state": "MA", "zipCode": "02108", \"country\": \"US\" }, "items": [ { "id": "ITEM-A", "type": "poster", "sku": "POSTER-LG", "quantity": 1, "image": "https://example.com/files/poster.jpg" }, { "id": "ITEM-B", "type": "kaart", "sku": "CARD-SM", "quantity": 100, "frontImage": "https://example.com/files/card-front.jpg", "backImage": "https://example.com/files/card-back.jpg" } ]}
Template mapper:
{ "orderReferenceId": "####{{ orderId }}", "orderType": "bestelling", "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({'sku': item.sku}, strict=False, default='') }}\", "quantity": ####{{ item.quantity }}, "bestanden": [ {% if item.type == 'poster' %} { "type": "standaard", "url": "####{{ item.image }}" } {% elif item.type == 'card' %} { \"type\": \"voorkant\", "url": "####{{ item.frontImage }}" }, { "type": "achterkant", "url": "####{{ item.backImage }}" } {% endif %} ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Voorbeeld van een statusupdate postback voor bestellingen
Dit voorbeeld laat zien hoe je een postbackmelding maakt voor wijzigingen in de orderstatus:
Invoergegevens:
{ "orderId": "a6a1f9ce-2bdd-4a9e-9f8d-0009df0e24d9", "orderReferenceId": "J123X456", "customerReferenceId": "CUST-789", "fulfilmentStatus": "verzonden", "created": "2023-04-12T10:26:52+00:00", "items": [ { "itemReferenceId": "123", "fulfillmentStatus": "verzonden", \"fulfillments\": [ { "trackingCode": "TRK123456789", \"trackingUrl\": \"https://example.com/tracking?code=TRK123456789\", "carrierName": "FedEx", "carrierUid": "fed_ex_ground", "fulfilmentCountry": "US", "fulfilmentStaatProvincie": "NY" } ] } ]}
Template mapper:
{ "event": "BESTELLING_VERZONDEN", \"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 fulfilment in item.fulfilments %} \"carrier\": \"####{{ fulfillment.carrierName }}\", \"tracking_number\": \"####{{ fulfillment.trackingCode }}\", "tracking_url": "####{{ fulfilment.trackingUrl }}", "verzonden_vanuit": { \"country\": \"####{{ fulfillment.fulfillmentCountry }}\", "state": "####{{ fulfillment.fulfillmentStateProvince }}" } {% endfor %} } }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ] }}
Voorbeeld van geavanceerd zoeken
Dit voorbeeld toont complexe opzoekingen voor productmapping en vervoerderselectie:
Ingevoerde gegevens:
{ \"reference\": \"ORDER-8888\", \"ontvanger\": { "fullName": "Robert Brown", "emailAddress": "[email protected]", \"telefoonnummer\": \"888-555-1212\", \"shippingInformation\": { \"streetAddress\": \"321 Oak Ave\", "city": "Chicago", \"state\": \"IL\", "postalCode": "60601", "countryCode": "US" } }, \"orderItems\": [ { "lineItemId": "LI-001", "productReference": { "code": "BK-HCVR-A5", "type": "hardcover boek", "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": "premium" } } ], "shippingPreference": "standaard", "region": "noord-amerika"}
Template mapper:
{% set shipping_lookup = { "express_north_america": "fed_ex_2_day", "express_europe": "dhl_express_eu", "standard_north_america": "ups_ground", "standaard_europa": "dhl_parcel_eu"} %}{% set product_lookup = {} %}{% set product_lookup = product_lookup.update({ "BK-HCVR-A5-premium": "boek_product_pf_a5_pt_premium_cl_4-4_hcvr", \"BK-HCVR-A5-standard\": \"book_product_pf_a5_pt_standard_cl_4-4_hcvr\", "BK-SCVR-A5-premium": "boek_product_pf_a5_pt_premium_cl_4-4_scvr", "BK-SCVR-A5-standard": "boek_product_pf_a5_pt_standaard_cl_4-4_scvr"}) %}{ "orderReferenceId": "####{{ reference }}", "orderType": "bestelling", "currency": "USD", {% set shipping_key = shippingPreference + '_' + region %} "shipmentMethodUid": "####{{ shipping_lookup.get(shipping_key, 'normaal') }}", "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 }}, "pageCount": ####{{ item.additionalAttributes.pageCount }}, \"files\": [ { "type": "cover", \"url\": \"####{{ item.assetUrls.coverFile }}\"" }, { "type": "binnen", "url": "####{{ item.assetUrls.interiorFile }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Werken met datums en opmaak
Dit voorbeeld laat zien hoe je een datum opmaakt en met tekst speelt:
Ingevoerde gegevens:
{ "orderNum": "INV-20230412-001", "datePlaced": "2023-04-12T14:30:00Z", "clientDetails": { "id": "CLIENT001", "contactInfo": { "name": "SARAH WILLIAMS", \"email\": \"[email protected]\", \"telephone\": \"1.212.555.7890\" }, "deliveryAddress": { "line1": "555 Broadway", "line2": "10e verdieping", \"city\": \"New York\", "region": "New York", "code": "10012", "country": "Verenigde Staten" } }, "lineItems": [ { "refCode": "LI-001-A", "productIdentifier": "BROCHURE-A4-GLANZEND", "amount": 250, \"ontwerp\": \"https://example.com/files/brochure.pdf\" } ]}
Template mapper:
{% set country_codes = { \"Verenigde Staten\": \"US\", "Verenigd Koninkrijk": "GB", "Canada": "CA", "Australië": "AU", "Duitsland": "DE", "Frankrijk": "FR"} %}{% set date_parts = datePlaced.split('T')[0].split('-') %}{% set formatted_date = date_parts[2] + '/' + date_parts[1] + '/' + date_parts[0] %}{ \"orderReferenceId\": \"####{{ orderNum }}\", \"orderType\": \"bestelling\", "currency": "USD", "metadata": [ { "key": "clientId", "value": "####{{ clientDetails.id }}" }, { \"key\": \"besteldatum\", "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 }}, "bestanden": [ { "type": "standaard", \"url\": \"####{{ item.ontwerp }}\"" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Foutafhandeling en standaardwaarden
Dit voorbeeld toont robuuste foutafhandeling met standaardwaarden:
Ingevoerde gegevens:
{ "id": "ORD-91011", "koper": { "name": "Michael Johnson" // E-mailveld ontbreekt }, "shipping": { "name": "Michael Johnson", "address": "111 River Rd", // Ontbrekende stad "province": "Ontario", \"postal\": \"M5V 2H1\", \"country\": \"CA\" }, "items": [ { \"id\": \"ITEM-001\", "sku": "CALENDAR-WALL", \"aantal\": 1, \"assets\": { \"main\": \"https://example.com/files/calendar.pdf\" } }, { // Onvolledig item "id": "ITEM-002" } ]}
Template mapper:
{ "orderReferenceId": "####{{ id }}", "orderType": "bestelling", \"currency\": \"CAD\", "shippingAddress": { {% set recipient = shipping.name | default('') %} {% set name_parts = recipient.split(' ') if recipient else ['', ''] %} \"firstName\": \"####{{ name_parts[0] | default('Onbekend') }}\", "lastName": "####{{ name_parts[1:] | join(' ') | default('Klant') }}", \"addressLine1\": \"####{{ shipping.address | default('Adres ontbreekt') }}\", "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 en item.sku en item.quantity %} { "itemReferenceId": "####{{ item.id }}", \"productUid\": \"####{{ lookups({'sku': item.sku}, strict=False, default='') }}\", "quantity": ####{{ item.quantity }}, "bestanden": [ { "type": "standaard", "url": "####{{ item.assets.main | default('') }}" } ] }{% if not loop.last %},{% endif %} {% endif %} {% endfor %} ]}
Meerdere bronnen samenbrengen
Dit voorbeeld brengt gegevens uit verschillende bronnen samen:
Ingevoerde gegevens:
{ "order": { "id": "PO-12345", \"type\": \"standard\" }, "klant": { "id": "CUST-789", "segment": "bedrijf" }, "ontvanger": { \"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": "VS" } }, "producten": [ { "id": "PROD-A1", "code": "FLYER-A4-FULL", "count": 500, "ontwerp": "https://example.com/files/flyer.pdf" } ], "shipping": { "method": "standaard verzending", "expectedDays": 3 }, "promotioneel": { "campaign": "LENTE2023", "bron": "e-mail" }}
Template mapper:
{% set shipping_method_map = { "overnight": "fed_ex_priority_overnight", "express": "fed_ex_2_day", "ground": "fed_ex_ground"} %}{ "orderReferenceId": "####{{ order.id }}", "orderType": "####{{ 'concept' if order.type == 'preorder' else 'bestelling' }}", "currency": "USD", "customerReferenceId": "####{{ customer.id }}", "shipmentMethodUid": "####{{ shipping_method_map.get(shipping.method, 'normaal') }}", "metadata": [ { "key": "campagne", "value": "####{{ promotional.campaign }}" }, { "key": "bron", "value": "####{{ promotional.source }}" }, { "key": "segment", "value": "####{{ customer.segment }}" }, { "key": "verwachteLevering", "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({'product_code': product.code}, strict=False, default='') }}", "aantal": ####{{ product.count }}, "bestanden": [ { "type": "standaard", "url": "####{{ product.ontwerp }}" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Werken met ingewikkelde, geneste structuren
Dit voorbeeld laat zien hoe je omgaat met diep geneste gegevensstructuren:
Invoergegevens:
{ "data": { "transactie": { \"identifiers\": { "internalRef": "TX-44556", \"customerRef\": \"CUST-ABC123\" }, "metadata": { \"createdAt\": \"2023-04-12T09:15:00Z\", \"source\": \"web\", "productetiketten": ["priority", "corporate"] } }, "partijen": { \"afzender\": { "organization": "Acme Corp", \"contact\": { "persoon": { "givenName": "Thomas", \"familyName\": \"Anderson\" }, \"details\": { \"email\": { \"address\": \"[email protected]\" }, \"phone\": { \"number\": \"415-555-9876\", \"extension\": \"123\" } } } }, \"recipient\": { "persoon": { \"givenName\": \"Sarah\", "familyName": "Connor" }, \"contactDetails\": { \"emailAddress\": \"[email protected]\", \"phoneNumber\": \"213-555-4321\" }, "locatie": { \"address\": { "street": "1984 Tech Blvd", "unit": "#42", "locality": "Los Angeles", \"region\": \"Californië\", "postalCode": "90210", "country": "Verenigde Staten" } } } }, "inhoud": { \"items\": [ { "descriptor": { \"id\": \"ITM-X789\", "type": "brochure", "specificaties": { "format": "A4", \"paperType\": \"Glanzend\", \"colorProfile\": \"CMYK\" } }, \"quantity\": { \"value\": 1000, "unit": "stuks" }, \"digitalAssets\": { "printable": { "fileLocation": "https://example.com/files/brochure-complex.pdf" } } } ] } }}
Sjabloonmapper:
{% set country_map = { \"USA\": \"VS\", \"Verenigde Staten\": \"US\", "Verenigde Staten van Amerika": "VS", \"UK\": \"GB\", "Verenigd Koninkrijk": "GB", "Engeland": "GB"} %}{ "orderReferenceId": "####{{ data.transaction.identifiers.internalRef }}", "orderType": "order", "currency": "USD", \"customerReferenceId\": \"####{{ data.transaction.identifiers.customerRef }}\", "metadata": [ { \"key\": \"createdAt\", "value": "####{{ data.transaction.metadata.createdAt }}" }, { \"key\": \"bron\", \"value\": \"####{{ data.transaction.metadata.source }}\" }, {% for tag in data.transaction.metadata.productetiketten %} { "key": "productetiket_####{{ 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, 'formaat': item.descriptor.specifications.format, 'paper': item.descriptor.specifications.paperType }, strict=False, default='') }}", \"quantity\": ####{{ item.quantity.value }}, "bestanden": [ { "type": "standaard", \"url\": \"####{{ item.digitalAssets.printable.fileLocation }}\" } ] }{% if not loop.last %},{% endif %} {% endfor %} ]}
Handige tips voor slimme sjabloonmakers
Houd rekening met deze praktische tips bij het werken met Jinja2 Template Mappers in GelatoConnect:
Gebruik slimme manieren om fouten op te sporen:
Voeg tijdelijke velden toe om tussenresultaten te tonen
Gebruik de {% raw %}####{{ variable | tojson }}{% endraw %} filter om ingewikkelde objecten makkelijk te bekijken
Combineer set-instructies met voorwaarden:
jinja{% set shipping_type = 'express' if order.priority == 'high' else 'standaard' %}
Omgaan met ontbrekende of geneste gegevens:
jinja####{{ data.get('nested', {}).get('deeply', {}).get('property', 'default_value') }}
Maak kaartwoordenboeken voor veelvoorkomende koppelingen:
{% set status_map = {'NEW': 'ontvangen', 'SHIPPED': 'verzonden', 'DELIVERED': 'geleverd'} %}"status": "####{{ status_map.get(input_status, 'onbekend') }}"
Herbruikbare logica slim bundelen in macro's:
{% macro format_phone(phone) %}####{{ phone | replace(' ', '') | replace('.', '-') }}{% endmacro %}
Gebruik filters om je data te veranderen:
afwerking
: Witruimte verwijderenreplace
: Tekst vervangenupper
/lower
/title
: Hoofdletters of kleine letters gebruikendefault
: Geef standaardwaarden optojson
: Formatteer als JSON-string
Houd rekening met prestaties voor grote datasets:
Bereken waarden vooraf vóór loops
Gebruik set-statements buiten loops
Houd sjablonen gericht en specifiek
Wat kun je nu doen
Nu je deze praktische voorbeelden hebt gezien, kun je:
Pas deze sjablonen aan naar jouw specifieke integratiebehoeften
Creëer complexere transformaties door technieken te combineren
Test je sjablonen grondig met echte gegevens
Stel postback-triggers in met deze sjablonen
Implementeer lookups voor efficiënte waardetoewijzing