Ich habe das in einer Wawi 2.0.6 gebaut.
Die Idee ist:
Beim Erstellen eines Auftrags wird per SQL gezählt, wie viele nicht stornierte Aufträge der Kunde bereits hat.
Der Workflow prüft diese Zahl.
Ab einer frei wählbaren Anzahl wird die Kundengruppe geändert.
Die Datenbank wird dabei nur gelesen.
Die eigentliche Änderung der Kundengruppe erfolgt ganz normal über den JTL-Workflow.
Zuerst unter Admin -> JTL-Workflows -> Aufträge -> Erstellt einen neuen Workflow anlegen.
Danach unten bei den Bedingungen auf „Erweiterte Eigenschaften verwalten“ gehen und eine neue Eigenschaft anlegen.
Name: AnzahlBestellungen
Rückgabetyp: Zahl
Als Inhalt:
Code:
{% capture query %}
SELECT COUNT(*)
FROM Verkauf.tAuftrag
WHERE kKunde = {{ Vorgang.Stammdaten.Kunde.InterneKundennummer }}
AND nType = 1
AND nStorno = 0
{% endcapture %}
{% assign result = query | DirectQueryScalar %}
{{ result }}
Dabei bedeutet:
nType = 1 -> Aufträge
nStorno = 0 -> nicht storniert
Danach die erweiterte Eigenschaft speichern und im eigentlichen Workflow zwei Bedingungen anlegen.
Erste Bedingung:
Stammdaten -> Kunde -> KundenGruppe -> Name
ungleich
Stammkunde
Zweite Bedingung:
Erweiterte Eigenschaft -> AnzahlBestellungen
größer oder gleich
5
Oben muss „Alle Bedingungen erfüllen“ aktiviert sein.
Der Workflow prüft damit also:
Kundengruppe ist noch nicht Stammkunde
UND
Kunde hat mindestens 5 Aufträge
Anschließend als Aktion: Werte setzen
und dort: Stammdaten -> Kunde -> KundenGruppe
auswählen und als Zielgruppe z. B. „Stammkunde“ setzen.
Für eine bestehende Kundenbasis müsste man noch überlegen, wie man die bereits vorhandenen Kunden einmalig nachzieht.
Für neue Aufträge läuft die Zuordnung danach automatisch.
Die verwendeten Kundengruppen sind natürlich nur Beispiele.
Stammkunde kann durch jede beliebige vorhandene oder neu angelegte Kundengruppe ersetzt werden.