Hallo ichliebedieAmeise,
die Variable habe ich auch nicht gefunden, ABER die kann in JTL Workflows für Bedingungen mit erweiterte Eigenschaften als Directquery selbst definiert werden.
Habe leider keine Tabelle in JTL gefunden, wo der Lieferstatus bei Aufträgen namentlich gespeichert ist.
Step 1 (zur Ermittlung des passenden nLieferstatus) als Zahl
Beim "F6 Verkauf" bitte unten eine eigene Übersicht anlegen.
Name: nVersandStatus
SQL Statement:
SELECT Verkauf.vStandardAuftrag.kAuftrag,
CASE WHEN vStandardAuftrag.nStorniert = 1 THEN 0 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert = 2 AND (vStandardAuftrag.kPlattform < 51 OR vStandardAuftrag.kPlattform > 57) THEN 7 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 AND vStandardAuftrag.fGutschrift > 0 AND vStandardAuftrag.fGutschrift >= vStandardAuftrag.fAuftragswertBrutto THEN 6 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 AND vStandardAuftrag.nAnzahlVersendetePakete = vStandardAuftrag.nAnzahlPakete THEN 5 ELSE CASE WHEN vStandardAuftrag.nAnzahlVersendetePakete > 0 THEN 4 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 THEN 3 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert = 0 AND EXISTS (SELECT TOP 1 NULL FROM dbo.tLieferschein WHERE tLieferschein.kBestellung = vStandardAuftrag.kAuftrag) THEN 2 ELSE 1 END END END END END END END AS nLieferstatus
FROM Verkauf.vStandardAuftrag
WHERE Verkauf.vStandardAuftrag.kAuftrag = @key
Das SQL Statement ist ein abgeändertes Statement aus den Sichten in der Datenbank für die Ansichten in der
Wawi.
Aus der Sicht Verkauf.vStandardAuftrag habe hier den Part mit dem "AS nLieferstatus" eingebaut. (Ich bewundere jedes mal die SQL Skripte von den Programmierern von JTL)
Bei Markierung eines Auftrags erhalten wir als Ergebnis die interne Auftragsnummer und nLieferstatus als Zahl.
Lieferstatus die derzeit bei mir vorliegen:
5 = "verpackt und versendet"
0 = "storniert"
6 = "gutgeschrieben"
Wähle bitte einen Auftrag mit Lieferstatus "Ausstehend"
Ich vermute als Ergebnis nLieferstatus = 1
Step 2 (im Workflow eine erweiterte Eigenschaft erstellen)
Nachdem wir die nLieferstatuszahl kennen, können wir uns der Workflowbedingung zuwenden.
Unter Admin - Workflows - Aufträge - Neuer
Workflow -> neue Bedingung -> "erweiterte Eigenschaften verwalten"
Im Fenster "erweiterte Eigenschaften bearbeiten"
Links unten "Hinzufügen" -> Name "nLieferstatus" -> rechts daneben "Rückgabetyp" = Zahl
Im großen freien Feld in der Mitte bitte folgendes Script für eine Directquery einfügen:
{% assign StrSQL = '' %}
{% capture StrSQL %}
SELECT
CASE WHEN vStandardAuftrag.nStorniert = 1 THEN 0 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert = 2 AND (vStandardAuftrag.kPlattform < 51 OR vStandardAuftrag.kPlattform > 57) THEN 7 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 AND vStandardAuftrag.fGutschrift > 0 AND vStandardAuftrag.fGutschrift >= vStandardAuftrag.fAuftragswertBrutto THEN 6 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 AND vStandardAuftrag.nAnzahlVersendetePakete = vStandardAuftrag.nAnzahlPakete THEN 5 ELSE CASE WHEN vStandardAuftrag.nAnzahlVersendetePakete > 0 THEN 4 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert > 0 THEN 3 ELSE CASE WHEN vStandardAuftrag.nKomplettAusgeliefert = 0 AND EXISTS (SELECT TOP 1 NULL FROM dbo.tLieferschein WHERE tLieferschein.kBestellung = vStandardAuftrag.kAuftrag) THEN 2 ELSE 1 END END END END END END END AS nLieferstatus
FROM Verkauf.vStandardAuftrag
WHERE Verkauf.vStandardAuftrag.kAuftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
{% endcapture %}
{% assign result = {{StrSQL}} | DirectQuery -%}
{% for item in result.Daten %}
{{ item.nLieferstatus }}
{% endfor -%}
jetzt unten rechts "Vorschau-Auftrag wählen" und dann unter Vorschau(Text) das Ergebnis für den Vorschau-Auftrag anschauen.
Wenn alles passt "OK" anklicken.
Jetzt kann in der Bedingung im Dropdown unter "Erweiterte Eigenschaft" "nVersandstatus" ausgewählt werden.
"GLEICH" und dann die nLieferstatuszahl, die wir in den eigenen Übersichten für "Ausstehend" ermittelt haben eintragen.
Fertig ist unsere Bedingung mit eigener Variable.
LG
Bernd