Hallo Jens,
die einzelnen Ansichtsfenster in der JTL basieren meistens auf in der Datenbank definierten Sichten (eine Sicht ist eine dort hinterlegte Abfrage, welche es dem Programmierer erlaubt, wie auf eine Tabelle zuzugreifen, ohne jedes mal die gesamte Abfrage erneut in seinen Quellcode mit einzubauen) .
Beim Kunden finden wir unter Kundendetails einen TAB mit 360-Sicht und dort den von JTL berechneten Umsatz (reduziert um Stornorechnungen, Korrekturrechnungen).
HINWEIS: Im MSSQL ManagementStudio KEINE Änderungen an Tabellen/Sichten vornehmen!
Man sollte wissen was man macht!!!
MSSQL Managementstudio geöffnet, mit der JTL Datenbank verbunden und in der Datenbank unter Sichten reingeschaut.
Dort finden wir u.a. die Kunden.v360GradSicht.
Rechter Mausklick -> erste 1000 Zeilen auswählen
Als SQL wird folgendes angezeigt:
SELECT TOP (1000) [kKunde]
,[cKundenNr]
,[cAnrede]
,[cTitel]
,[KundenGruppe]
,[KundenKategorie]
,[cVorname]
,[cName]
,[cFirma]
,[cStrasse]
,[cPLZ]
,[cOrt]
,[cLand]
,[cTel]
,[cMobil]
,[cFax]
,[cMail]
,[cGeburtstag]
,[StandartZahlungsart]
,[Gesperrt]
,[Newsletter]
,[Mahnstopp]
,[HerkunftAmazon]
,[HerkunftEbay]
,[KasseKunde]
,[ShopKunde]
,[KundenvindividuellePreise]
,[KundeSeit]
,[LetzteBestellung]
,[Umsatz]
,[AvgWarenkorb]
,[AnzahlBestellungen]
,[AnzahlStorno]
,[AnzahlOffen]
,[AnzahlMahnungen]
,[OffeneRechnungen]
,[RabattKunde]
,[AnzahlRetouren]
,[Kundenguthaben]
,[MitCoupon]
,[Gewinn]
,[SummeBestellungOffen]
,[SummeRechnungOffen]
FROM [Kunde].[v360GradSicht]
Und wir haben den [Umsatz] gefunden.
Jetzt kann man unter Workflows -> Rechnungen -> Rechnungen -> Erstellt / Festgeschrieben einen neuen Workflow anlegen.
Dort bei Bedingungen -> erweiterte Eigenschaften verwalten
Hinzufügen -> Name z.B. "Kundenumsatz"
Im Tab Rohdaten dann folgendes Script einfügen:
{% assign StrSQL = '' %}
{% capture StrSQL %}
SELECT [Umsatz]
FROM [Kunde].[v360GradSicht]
WHERE [kKunde]={{ Vorgang.Kunde.InterneKundennummer }}
{% endcapture %}
{% assign result = {{StrSQL}} | DirectQuery -%}
{% for item in result.Daten %}
{{ item.Umsatz }}
{% endfor -%}
Oben Rechts Rückgabetyp "Dezimal" auswählen
OK
Jetzt haben wir bei den Bedingungen unter "erweiterte Eigenschaften" den Punkt "Kundenumsatz".
Diesen auswählen und größer als z.B. 999,99
Zusätzlich würde ich jetzt noch eine weitere Bedingung einfügen:
Rechnungen/Kunde/Kundengruppe/Name ungleich (Deiner Kundengruppe für Kunden über 999,99 Umsatz)
Ist der Kundenumsatz jetzt größer als die 999,99 gibt die Bedingung Kundenumsatz WAHR zurück,
ist die Kundengruppe noch nicht auf der richtigen Kundengruppe gibt es Wahr zurück und
die definierte Aktion wird ausgeführt.
Das gleiche wiederholen für Workflows -> Rechnungen -> Rechnungskorrektur -> Erstellt / Festgeschrieben
Jetzt wird die Kundengruppe bei jeder Rechnung/Rechnungskorrektur überprüft.
Erläuterungen zum Script:
{% assign StrSQL = '' %} -> Definiere die Variable und weise der Variable "StrSQL" den Wert '' zu (leere die Variable)
{% capture StrSQL %} ... {% endcapture StrSQL %} -> weise der Variable den Wert zwischen diesen beiden Punkten (capture und endcapture) zu
SELECT [Umsatz]
FROM [Kunde].[v360GradSicht]
WHERE [kKunde]={{ Vorgang.Kunde.InterneKundennummer }} -> Das SQL Statement, wobei das Abfrageergebnis in der WHERE Bedingung kKunde = der internen Kundennummer JTL des Vorgangs eingegrenzt wird.
{% assign result = {{StrSQL}} | DirectQuery -%} -> Befülle die Variable result mit dem Ergebnis der DirectQuery für StrSQL
{% for item in result.Daten %}
{{ item.Umsatz }}
{% endfor -%} -> für jeden Datensatz (item) der DirectQuery gebe mir item.Umsatz als Ergebnis aus.
LG
Bernd