Inhaltsverzeichnis
    Hinweis: Je nachdem, welche Edition Sie gebucht haben, ist die Anzahl der manuellen Workflow-Ereignisse bzw. der erstellbaren Ereignisse möglicherweise beschränkt. Die JTL-Editionen im Überblick

    Erweiterte Eigenschaften: Gesamtsummen individuell berechnen

    In unseren Workflow-Tutorials zeigen wir Ihnen Schritt für Schritt, welche Einstellungen Sie in JTL-Wawi vornehmen müssen, um definierte Arbeitsabläufe zielgerichtet in einem Workflow zu automatisieren. Ausgesuchte, praxisnahe Beispiele helfen Ihnen dabei, die Einrichtung der Workflows nachzuvollziehen und nachzustellen. Möglicherweise können oder wollen Sie den ein oder anderen Workflow in ähnlicher Form auch für Ihr Tagesgeschäft unmittelbar einsetzen.  Grundlegende Erläuterungen zu den jeweiligen Eingabefeldern und Funktionsmöglichkeiten erhalten Sie in unserer Dokumentation: Zur Workflow-Verwaltung.

    Ihre Aufgabe/Ausgangslage

    Es soll nur der Gesamtbruttopreis der Artikelpositionen, ohne Versandpositionen, Gutscheine und weitere berechnet werden. Dazu erstellen wir ein dotLiquid Skript, dass sich bei der Liste Vorgang.AuftragsPositionen den Gesamtbruttopreis manuell berechnet

    Schritt 1: Ereignisbereich wählen

    Öffnen Sie in JTL-Wawi die Workflow-Verwaltung über das Menü Admin > Automatisierung: JTL-Workflows. Wählen Sie dann in der Ereignisbereichsleiste die Schaltfläche Aufträge.

    Schritt 2: Workflow anlegen

    1. Wählen Sie das Ereignis, für das Sie den Workflow anlegen möchten, z. B. Auftrag > Erstellt und klicken Sie auf die Schaltfläche Workflow anlegen.
    2. Geben Sie dem Workflow einen Namen Gesamtsummen berechnen.

    Schritt 3: Bedingung anlegen

    1. Klicken Sie im Fensterbereich Bedingungen auf Neue Bedingung.
    2. Klicken Sie auf das linke Dropdown-Menü und klicken Sie dort auf das Feld Erweiterte Eigenschaften verwalten.

    Es öffnet sich das Dialogfenster Erweiterte Eigenschaften. In diesem Fenster können Sie Ihre eigenen DotLiquid Scripte einfügen.

    1. Wählen Sie in der Baumstruktur Auftrag und klicken Sie auf die Schaltfläche Hinzufügen.
    2. Geben Sie Ihrer Eigenschaft einen Namen. In unserem Fall Gesamtsummen berechnen.
    1. Klicken Sie auf die Textbox in der Mitte und kopieren Sie hier Ihren Code rein und sichern Sie Ihren Fortschritt mit einem klick auf die Schaltfläche OK.
    1. Öffnen Sie erneut die Erweiterten Eigenschaften.
    2. Wählen Sie Ihre Eigenschaft Gesamtsumme berechnen aus.
    3. Klicken Sie auf Vorschau (Text) um sich Ihr Ergebnis anzeigen zu lassen.

    Beispiele für DotLiquid Scripts

    In einigen Listen, welche in DotLiquid zur Verfügung stehen, gibt es bereits Listen Eigenschaften, welche die Gesamtsummer einzelner Eigenschaften der Listeneinträge berechnen. In den Aufträgen hat man da z.B.

    {{ Vorgang.AuftragsPositionen.BruttopreisGesamt }}
    Hinweis:  Seit der JTL-Wawi Version 1.6.30.0, ist Vorgang.AuftragsPositionen nicht mehr nur ein Knoten im Variablen Baum, sondern die gesamte, ungefilterte Auftragspositionen-Liste.

    Möchte man z. B. nur den Gesamtbruttopreis der Artikelpositionen berechnen, ohne Versandpositionen, Gutscheine usw. müsste man sich bei der Liste Vorgang.AuftragsPositionen den Gesamtpreis manuell per DotLiquid Skript berechnen.

    For-Schleife mit If-Abfrage

    1. Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
    2. Definieren Sie sich eine Variable zum aufaddieren des Gesamtpreises.
    {% assign BruttopreisGesamt = 0.0 -%}
    Hinweis: Wichtig hierbei ist, dass man diese Variable mit 0.0 und nicht nur 0 initialisiert, wenn man Dezimalzahlen addieren will. Ansonsten würde jeder Wert auf die Ganzzahl abgerundet.
    1. Als nächstes geht man mit einer For-Schleife über alle Positionen und addiert den BruttopreisGesamt der Position zu der Variable.
    {% assign BruttopreisGesamt = 0.0 -%}
    {% for Position in Vorgang.AuftragsPositionen -%}
    {% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
    {% endfor -%}
    {{ BruttopreisGesamt }}

    Nun wollen wir aber nicht alle Positionen addieren, sondern nur die Artikelpositionen. Als Eigenschaft wird Positionstyp genommen. Dies ist eine Interne ID für die Art der Position. Die Artikelpositionen und deren IDs sind in der folgenden Tabelle aufgeführt.

    Positionstyp

    ID

    Freiposition

    0

    Artikel

    1

    Versandposition

    2

    Coupon

    3

    Gutschein

    4

    Zahlungsart

    5

    Versandzuschlag

    6

    Neukundencoupon

    7

    Nachnahmegebühr

    8

    Versandzuschlag Artikel

    9

    Geschenkverpackung

    10

    Gratisgeschenk

    11

    Trusted Shops

    12

    Zinsaufschlag

    13

    Bearbeitungsgebühr

    14

    Kartonage

    15

    Retoure

    16

    Mehrzweckgutschein

    17

    Mehrzweckgutschein Digital

    18

    Einzweckgutschein

    19

    Einzweckgutschein Digital

    20

    Einzweckgutschein Einlösung

    21

    1. Mit Hilfe einer if-Abfrage können Sie diesen Wert nun filtern.
    {% assign BruttopreisGesamt = 0.0 -%}
    {% for Position in Vorgang.AuftragsPositionen -%}
    {% if Position.Positionstyp == 1 -%}
    {% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
    {% endif -%}
    {% endfor -%}
    {{ BruttopreisGesamt }}

    For-Schleife mit Where-Filter

    1. Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
    2. Definieren Sie sich eine Variable zum aufaddieren des Gesamtpreises.
    {% assign BruttopreisGesamt = 0.0 -%}

    Mit Hilfe des Where-Filter können Sie Ihre Liste filtern. Dazu geben Sie den Namen der Eigenschaft an und den Wert auf den Sie filtern möchten. Dadurch erzeugen Sie eine neue Liste mit den Einträgen, deren Eigenschaften Ihrem gefilterten Wert entsprechen. Diese Liste können Sie mit einer For-Schleife durchlaufen um die Summer zu berechnen.

    Hinweis: Der Where-Filter lässt sich nicht direkt in der For-Schleife anwenden. Es muss vorher eine neue Variable für diese gefilterte Liste definiert werden.
    {% assign BruttopreisGesamt = 0.0 -%}
    {% assign Positionen = Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1  -%}
    {% for Position in  Positionen  -%}
    {% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
    {% endfor -%}
    {{ BruttopreisGesamt }}

    Sum-Filter auf Listen anwenden

    Hinweis: Ab der Version 1.6.31.0 können Sie nun den Sum-Filter verwenden. Mit dem Sum-Filter können Sie, auf Ihrer Liste über eine definierte Eigenschaft, die Summe berechnen.  Ihre Liste können Sie bei Bedarf mit dem Where-Filter einschränken.
    1. Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
    2. Kopieren Sie das Script in Ihre Erweiterten Eigenschaften und ändern Sie Ihre Variable nach Bedarf.
    {{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1 | Sum : 'BruttopreisGesamt'}}

    Weitere Anwendungsbeispiele

    Gesamtgewicht aller Artikel-Positionen ohne Stücklisten-Väter

    {{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1 | Where : 'IstStücklistenVater' : 'False' | Sum : 'GewichtGesamt'  }}

    Nettopreis Gesamt aller Freipositionen

    {{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 0 | Sum : 'NettopreisGesamt'  }}

    DotLiquid bringt einige Filter bereits von Haus aus mit, JTL hat diese um zusätzliche Filter ergänzt. Der erste Parameter des Output-Platzhalters ist stets die Variable für die Ausgabe, im Anschluss folgen durch einen Balken (Pipe) getrennt und immer linksseitig die zu verwendenden Filter. Das Ergebnis des ersten Filters ist gleichzeitig die Ausgabe für einen darauf folgenden Filter. Mehrere Filter können entsprechend verschachtelt werden und von links nach rechts abgearbeitet. Nach dem letzten Filter resultiert das Ergebnis in eine Textausgabe (String).

    Bei den Filtern und Variablen sind immer die Groß- und Kleinschreibung zu beachten und genau wie hier anzuwenden!

    Video

    In diesem Video zeigen wir Ihnen, wie Sie Dotliquid-Code einrücken können und somit eine bessere Übersicht erhalten.