Anwendungsbeispiele: Versanddatenexport
Versanddatenexport-Vorlagen
In unserem Beispiel beschreiben wir den Aufbau unserer meistgenutzten Beispielvorlage für Easylog 6.6 XL als CSV-Exportdatei. Nahezu jedes andere Format lässt sich auf die selbe Weise ebenfalls erzeugen.
Die vollständige Vorlage sieht so aus:
{% for Pakete in Vorgang.Pakete -%}{{Lieferschein.Lieferscheinnummer}};\
1;\
;\
1;\
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' %}1{% else %}53{% endif %};\
{% if Lieferschein.Auftrag.IstVersandartNachnahme and forloop.first %}2{% else %}1{% endif %};\
;\
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' %}101{% else %}5301{% endif %};\
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' and Lieferschein.Auftrag.IstVersandartNachnahme %}\
134={{Lieferschein.Auftrag.OffenerBetrag}}\
{% elsif Lieferschein.Auftrag.Lieferadresse.LandISO != 'DE' and Lieferschein.Auftrag.IstVersandartNachnahme %}\
5311={{Lieferschein.Auftrag.OffenerBetrag}}\
{% endif %};\
{% if Lieferschein.Auftrag.IstVersandartNachnahme and forloop.first %}EUR{% else %}{% endif %};\
0;\
{{Lieferschein.Auftrag.Kunde.Kundennummer}};\
{{Lieferschein.Auftrag.Lieferadresse.Vorname|Remove:'"'}} {{Lieferschein.Auftrag.Lieferadresse.Name|Remove:'"'}};\
{{Lieferschein.Auftrag.Lieferadresse.Firma|Remove:'"'}};\
{{Lieferschein.Auftrag.Lieferadresse.Anrede|Remove:'"'}};\
{{Lieferschein.Auftrag.Lieferadresse.PLZ}};\
{{Lieferschein.Auftrag.Lieferadresse.Ort}};\
;\
{{Lieferschein.Auftrag.Lieferadresse.Straße|OhneHausnummer}};\
{{Lieferschein.Auftrag.Lieferadresse.Straße|NurHausnummer}};\
{{Lieferschein.Auftrag.Kunde.Telefon}};\
{{Lieferschein.Auftrag.Kunde.Fax}};\
{{Lieferschein.Auftrag.Kunde.EMail}};\
{{Lieferschein.Auftrag.Kunde.ZuHänden}};\
{{Lieferschein.Auftrag.Kunde.UStID}};\
{{Lieferschein.Auftrag.Lieferadresse.LandISO}};\
{% if paket.Gewicht > 0 %}{{paket.Gewicht}}{% else %}{{Lieferschein.Positionen.VersandGewichtGesamt|Plus:Lieferschein.Auftrag.Versandart.Zusatzgewicht}}{% endif %};
{% endfor %}
Eine ganze Menge weiterer Beispiele für den WMS-Sendungsdatenexport finden Sie in unserem Bereich zu JTL-WMS.
Detaillierte Erläuterungen
Zerlegen wir nun unsere Vorlage in ihre Bestandteile, die Spalten entsprechen der Wawi-Exportvorlage für DHL Easylog:
{% for Paket in Pakete %}
#=> Wir definieren über eine for-Schleife, dass in der CSV für jedes Paket ein kompletter Datensatz geschrieben wird.
POOL_REFNR
{{Lieferschein.Lieferscheinnummer}};\
#=> Jeder Datensatz beginnt mit der Ausgabe der Lieferscheinnummer und einem Semikolon als Spaltenbegrenzer.
#=> Der Backslash unterbindet den Zeilenumbruch, so dass nachfolgender Inhalt in die selbe Spalte geschrieben wird.
POOL_V_ABS_REFNR
1;\
#=> In dieser Zeile geben wir nur eine 1 aus, gefolgt von dem Spaltenbegrenzer und wir vermeiden den Zeilenumbruch.
POOL_V_ABS_BEMERKUNG
;\
#=> In dieser steht nix! Wir erzeugen eine leere Spalte mit Begrenzer und ohne Zeilenumbruch.
POOL_V_MAND_REFNR
1;\
#=> In dieser Zeile geben wir nur eine 1 aus, gefolgt von dem Spaltenbegrenzer und wir vermeiden den Zeilenumbruch.
POOL_V_VERFAHREN
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' %}1{% else %}53{% endif %};\
#=> Hier geben wir die DHL-Verfahrensnummer aus. Anhand einer Abfrage bestimmen wir den Wert.
#=> Wenn die Lieferadresse sich in Deutschland befindet, dann nehme 1, ansonsten 53.
POOL_V_TEILNAHME
{% if Lieferschein.Auftrag.IstVersandartNachnahme and forloop.first %}2{% else %}1{% endif %};\
#=> Hier geben wir die DHL-Teilnahmenummer aus. Anhand einer Abfrage bestimmen wir den Wert.
#=> Wenn die Versand- oder Zahlungsart den Begriff "Nachnahme" enthält, dann nehme 2, ansonsten 1.
#=> Außerdem definieren wir mit forloop.first, dass die Bedingung nur beim ersten Element true ist.
POOL_V_KSTELLE_KUERZEL
;\
#=> In dieser steht nix! Wir erzeugen eine leere Spalte mit Begrenzer und ohne Zeilenumbruch.
POOL_V_PRODUKT_CN
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' %}101{% else %}5301{% endif %};\
#=> Hier geben wir die DHL-Produktnummer aus. Anhand einer Abfrage bestimmen wir den Wert.
#=> Wenn die Lieferadresse sich in Deutschland befindet, dann nehme 101, ansonsten 5301.
POOL_V_EXTRASLST
{% if Lieferschein.Auftrag.Lieferadresse.LandISO == 'DE' and Lieferschein.Auftrag.IstVersandartNachnahme %}\
134={{Lieferschein.Auftrag.OffenerBetrag}}\
{% elsif Lieferschein.Auftrag.Lieferadresse.LandISO != 'DE' and Lieferschein.Auftrag.IstVersandartNachnahme %}\
5311={{Lieferschein.Auftrag.OffenerBetrag}}\
{% endif %};\
#=> Hier geben wir die DHL-Zusatzleistungen aus. Anhand einer verschachtelten Abfrage bestimmen wir den Wert.
#=> Wenn die Lieferadresse sich in Deutschland befindet und die Versandart den Begriff "Nachnahme" enthält, dann gebe den Code 134= aus, gefolgt vom offenen Nachnahmezahlbetrag.
#=> Wenn die Lieferadresse sich nicht in Deutschland befindet und die Versandart den Begriff "Nachnahme" enthält, dann gebe den Code 5311= aus, gefolgt vom offenen Nachnahmezahlbetrag.
#=> Wir beenden auch die verschachtelte Abfrage mit einem endif, gefolgt von unserem Spaltentrenner und wir vermeiden abermals den Zeilenumbruch.
POOL_V_NN_WAEHRUNG
{% if Lieferschein.Auftrag.IstVersandartNachnahme and forloop.first %}EUR{% else %}{% endif %};\
#=> Hier geben wir die Währung an, in der wir unsere Nachnahmezahlung entgegen nehmen.
#=> Wenn die Versand- oder Zahlungsart den Begriff "Nachnahme" enthält, dann gebe EUR aus, sonst gar nichts.
#=> Außerdem definieren wir mit forloop.first, dass die Bedingung nur beim ersten Element true ist.
POOL_WERT_WAEHRUNG
0;\
#=> In dieser Zeile geben wir nur eine 0 aus, gefolgt von dem Spaltenbegrenzer und wir vermeiden den Zeilenumbruch.
POOL_EMPF_REFNR
{{Lieferschein.Auftrag.Kunde.Kundennummer}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Kundennummer, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_NAME
{{Lieferschein.Auftrag.Lieferadresse.Vorname|Remove:'"'}} {{Lieferschein.Auftrag.Lieferadresse.Name|Remove:'"'}};\
#=> In dieser Zeile erzeugen wir die Ausgabe des Vor- und Nachnamens, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
#=> Außerdem entfernen wir alle Anführungsstriche aus den Zeichenketten.
POOL_EMPF_NAME2
{{Lieferschein.Auftrag.Lieferadresse.Firma|Remove:'"'}};\
#=> In dieser Zeile erzeugen wir die Ausgabe des Firmennamens, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
#=> Außerdem entfernen wir alle Anführungsstriche aus den Zeichenketten.
POOL_EMPF_NAME3
{{Lieferschein.Auftrag.Lieferadresse.Anrede|Remove:'"'}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Anrede, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
#=> Außerdem entfernen wir alle Anführungsstriche aus den Zeichenketten.
POOL_EMPF_PLZ
{{Lieferschein.Auftrag.Lieferadresse.PLZ}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Postleitzahl, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_ORT
{{Lieferschein.Auftrag.Lieferadresse.Ort}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Stadt, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_ORTTEIL
;\
#=> In dieser steht nix! Wir erzeugen eine leere Spalte mit Begrenzer und ohne Zeilenumbruch.
#=> Wir könnten die Spalte zum Beispiel auch für Adresszusatz verwenden.
POOL_EMPF_STRASSE
{{Lieferschein.Auftrag.Lieferadresse.Straße|OhneHausnummer}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Straße, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
#=> Über den JTL-Spezialfilter OhneHausnummer bewirken wir die Ausgabe des Straßennamens ohne die Hausnummer.
POOL_EMPF_HAUSNR
{{Lieferschein.Auftrag.Lieferadresse.Straße|NurHausnummer}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Straße, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
#=> Über den JTL-Spezialfilter NurHausnummer bewirken wir, dass nur die Hausnummer ausgegeben wird.
POOL_EMPF_TEL
{{Lieferschein.Auftrag.Kunde.Telefon}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Telefonnummer, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_FAX
{{Lieferschein.Auftrag.Kunde.Fax}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Faxnummer, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_EMAIL
{{Lieferschein.Auftrag.Kunde.EMail}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Emailadresse, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_APARTNER
{{Lieferschein.Auftrag.Kunde.ZuHänden}};\
#=> In dieser Zeile erzeugen wir die Ausgabe des Wawi-Feldes Zu Händen, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_USTID
{{Lieferschein.Auftrag.Kunde.UStID}};\
#=> In dieser Zeile erzeugen wir die Ausgabe der Umsatzsteuer-Identifikationsnummer, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_EMPF_LANDCODE
{{Lieferschein.Auftrag.Lieferadresse.LandISO}};\
#=> In dieser Zeile erzeugen wir die Ausgabe des Landes in Form des ISO-Codes, gefolgt von einem Spaltentrenner und vermeiden den Zeilenumbruch.
POOL_GEWICHT
{% if Paket.Gewicht > 0 %}{{paket.Gewicht}}{% else %}{{Lieferschein.Positionen.VersandGewichtGesamt|Plus:Lieferschein.Auftrag.Versandart.Zusatzgewicht}}{% endif %};\
#=> In dieser Zeile fragen wir ab, ob ein Verwiegegewicht größer Null angegeben wurde.
#=> Wird kein Verwiegegewicht ermittelt, so übernehmen wir das Gesamtversandgewicht der Positionen aus dem Auftrag.
#=> Außerdem addieren wir das Zusatzgewicht des Auftrags auf Gesamtversandgewicht der Artikel.
ENDE DATENSATZ
{% endfor %}
#=> Mit endfor beenden wir unsere Schleife. Diesmal vermeiden wir den Zeilenumbruch nicht, damit der nächste Datensatz für ein weiteres Paket in der nächsten Zeile beginnt.