Neu Workflow - Farbe setzen wenn Merkmal passt

BKAler

Aktives Mitglied
19. Mai 2011
91
8
Grüße euch,

ich beschäftige mich gerade mit den Worflows und habe gerade folgendes Problem.

Funktionieren soll der Workflow eigentlich so:
Auftrag erstellt - wenn in der Bestellung nur Artikel sind mit den Artikelmerkmalen [Ab 3 Jahren] - soll die Farbcodierung auf [Grün] gesetzt werden, dies gilt zusätzlich nur für Aufträge in DE.

Wenn Allerdings ein Artikel enthalten ist mit dem Artikelmerkmal [Ab 18 Jahren] - soll keine Farbcodierung erfolgen.

Aktuell Sieht meine Config folgendermaßen aus:
Auftrag
Erstellt
-Bedingungen; Lieferung.Lieferadresse.Landname gleich Deutschland
Auftragspositionen.ArtikelPositionen.enthält.Artikelmerkmale.enthält.Wert.--suche--ungleich[Ab 18 Jahren]

-Aktionen; Farbcodierung: Grün


Aber das möchte nicht klappen, habe nun schon ein paar versuche gestartet, egal wie ich die Bedingungen verstelle, es ist entweder so das alle Aufträge, egal welche Artikel enthalten sind grün markiert werden oder es aber bei Aufträgen klappt welche nur einen [Ab 18 Jahren] Artikel enthalten, aber sobald ein [Ab 3 Jahren] Artikel enthalten ist wird der Auftrag wieder grün markiert...

Könnt ihr mir vielleicht weiterhelfen?

Danke schon mal.
Steffen
 

JuergenSaenger

Sehr aktives Mitglied
19. August 2013
462
59
Genthin

BKAler

Aktives Mitglied
19. Mai 2011
91
8
Japp, habe auch anstelle von "ArtikelPositionen" mal "Positionen" genommen, hat auch nicht geklappt.

Bevor gefragt wird, wir haben WaWi Version 1.2.3.7 am laufen.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Hallo @BKAler,

eigentlich tut Dein Workflow genau das, was er soll, nur bildet er eben nicht das ab, was Du willst. Der Grund dafür ist, dass die Workflow Bedingung schon dann True=Wahr ist, wenn auch nur einer der Artikel im Auftrag NICHT die Kennung "ab 18 Jahren" hat. Deshalb funktioniert Dein Workflow eigentlich nur für Aufträge, in denen nur EIN Artikel vorhanden ist, denn dann und nur dann ist der Test eindeutig.

Was Du hier aber brauchst, ist eine Routine, die in einer Schleife über alle Artikelpositionen und innerhalb jeder Artikelposition über alle vorhandenen Merkmale läuft und schaut, ob irgendwo (!) ein "ab 18 Jahren Artikel dabei ist. Sobald auch nur ein solcher Artikel gefunden wird, soll dann eine Variable "ab18Jahren" auf "ja" oder "true" oder "1" oder was auch immer gesetzt werden und dieser Wert wird dann zurückgeliefert.

Dazu brauchst Du eine "Erweiterte Eigenschaft", die Du in einem eigenen Editorfenster anlegen kannst, das Du bei der Auswahl der Workflow Bedingungen ganz unten in der Liste über den Button "Erweiterte Eigenschaften verwalten" aufrufen kannst. Dort erzeugst Du unten links einen neuen Eintrag, gibst ihm einen aussagekräftigen Namen und gibst dann im Code-Fenster folgendes ein ...
Code:
{% assign ab18Jahren = 'nein' -%}
{% for Artikelpositionen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% for Artikelmerkmale in Artikelpositionen.Artikelmerkmale -%}
{% if Artikelmerkmale.MerkmalName == 'Altersbeschränkung' and Artikelmerkmale.Wert.Wert == 'ab 18 Jahren' -%}
{% assign ab18Jahren = 'ja' -%}
{% endif -%}
{% endfor -%}
{% endfor -%}
{{ ab18Jahren }}

Dieser Code macht genau das, was ich oben geschrieben habe, er wandert also über alle Artikelpositionen und darin dann über alle Merkmale und sucht ein Merkmal mit Namen "Altersbeschränkung", das den Werte "ab 18 Jahren" hat. Findet die Schleife so etwas, wird die ganz oben im Code auf "nein" initialisierte Variable "ab18Jahren" auf "ja" gesetzt. Und falls der Name des Merkmals oder der Ziel-Wert bei Dir anders heißen, mußt Du das natürlich im Code anpassen.

Diese "Erweiterte Eigenschaft" gibt also entweder "ja" oder "nein" zurück und entsprechend muß dann auch der Bedingungstest abgeändert werden. Du wählst jetzt also aus der Liste der Bedingungsvariablen im Bereich "Erweiterte Eigenschaften" Deine Erweiterte Eigenschaft aus, wählst als Vergleichsoperator "Gleich" und als Vergleichswert "nein".

Damit sollte der Workflow dann korrekt laufen ... :)

Gruß,
Ingmar
 
  • Gefällt mir
Reaktionen: BKAler

BKAler

Aktives Mitglied
19. Mai 2011
91
8
Hallo Ingmar,

boa, super!

Vielen vielen Dank. Das werde ich gleich mal testen.
Da ich noch nichts mit Programmierung am Hut hatte, welche "Programmiersprache" ist das bzw. wie kann ich mir so was aneignen?

edit: habe es gerade getestet, funktioniert wunderbar!
@gutberle Glückwunsch zu deinem 1000sten Beitrag und dann auch noch ein so hilfreicher! (Für uns jedenfalls!)


Gruß
Steffen
 
Zuletzt bearbeitet:

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
402
Hi Steffen,

super, gratuliere. - Die Sprache heißt Liquid und stammt von Shopify. Hier, in der Wawi ist sie in der .NET Implementierung DotLiquid eingebaut. Sie ist eigentlich dazu gedacht, Web- Shop Inhalte dynamischer und einfacher verwalten zu können, sie wird hier in der Wawi aber breiter eingesetzt. Wenn Du z.B. bei den List & Label Vorlagen im Bereich Speichern einen Pfad vorgeben willst, dann stehen Dir alle möglichen DotLiquid Funktionen dafür zur Verfügung, um Vorgangsnummern, Kundennamen, usw. in den Pfad einzubauen.

Die Sprache ist leider etwas sperrig und es gibt keinen richtigen Editor/Debugger dafür, so dass die Einstiegshürde eher "vorhanden" ist, weil es entweder funktioniert oder eben nicht. Es lohnt sich aber, denn damit kannst Du sicherlich 90+% Deiner Probleme lösen und dort, wo DotLiquid allein nicht reicht, hat JTL in DotLiquid auch noch direkte SQL Datenbankzugriffe verfügbar gemacht. Ok, das ist noch wieder was zum Lernen, aber dann sind wir bei 99%.

Der JTL Guide hat hier und hier gute Einstiegspunkte und viele Beispiele für die verschiedenen Funktionen und wenn ich wieder mal einen Befehl (Filter und Tags) suche und bei JTL nicht finde, dann schaue ich direkt bei Shopify nach. Nicht alles, was dort zu finden ist, ist auch (so) in der Wawi implementiert, aber wenn Du Dich im JTL Guide und auf Shopify ein bißchen "rumtreibst", dann lernst Du ziemlich schnell wie's geht.

Und falls es echt hakt und bevor Du die Nerven verlierst, fragen ... ;)

Gruß,
Ingmar
 
  • Gefällt mir
Reaktionen: retailmind und BKAler

BKAler

Aktives Mitglied
19. Mai 2011
91
8
Mensch, super cool, danke dir nochmals! :D

Da werde ich mich mal durchwühlen und schauen was ich umsetzen kann.

Bei Problemen melde ich mich sehr gerne wieder.

Danke und Grüße
Steffen
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow 4 Wochen vor vorraus. Lieferdatum Arbeitsabläufe in JTL-Wawi 1
Überverkäufe über Workflow setzen JTL-Wawi 1.10 2
In Diskussion Workflow alle X Tage ausführen JTL-Workflows - Ideen, Lob und Kritik 5
Ausliefern Workflow über API JTL-Wawi 1.9 6
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
JTL-Workflow | Automatisches Speichern von Rechnungen möglich? JTL-Wawi 1.9 2
In Diskussion Workflow Angebote OHNE Auftrag JTL-Workflows - Ideen, Lob und Kritik 8
Gelöst Workflow-Trigger für Selbstabholung / FFN-Versand JTL-Workflows - Fehler und Bugs 2
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Workflow verändert Wert JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Standardlieferant JTL-Wawi 1.10 2
XML Auftragsimport per Workflow bediinen JTL-Wawi 1.8 1
Issue angelegt [WAWI-44314] Workflow automatisch 2 Pakete erstellen bei bestimmen Produkten? JTL-Workflows - Ideen, Lob und Kritik 2
Gelöst CustomWorkflow erscheint nicht in den Workflow-Aktionen JTL-Workflows - Fehler und Bugs 6
Neu Workflow um einen Artikel bei einem bestimmten Verkaufskanal zu aktivieren oder deaktivieren User helfen Usern - Fragen zu JTL-Wawi 4
Neu Mit Workflow verfügbaren Bestand aller Artikel in Datei schreiben User helfen Usern - Fragen zu JTL-Wawi 8
In Diskussion Workflow ausführen bei Lagerbestand 0 eines Lagers JTL-Workflows - Fehler und Bugs 3
Neu Workflow: WMS Lager nutzen um Versandart zu bestimmen User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Workflow für das Austauschen von bestelltem Artikel in einem Auftrag gegen einen alternativen Artikel JTL-Workflows - Ideen, Lob und Kritik 3
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 4
Automatischer Workflow für Versand von Gutscheinen versendet den Gutschein nicht JTL-Wawi 1.10 2
Workflow für Benachrichtigung bei Stammkunden JTL-Wawi 1.10 9
Workflow: Neue Kunden direkt einer Kundengruppe zuordnen JTL-Wawi 1.10 6
Neu Workflow: Musterbestellungen (0 € Gesamtbruttowert) automatisch ausliefern lassen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Versandart prüfen und im Auftrag setzen - speziell für Stücklistenartikel User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ausliefern Workflow mit variablen Ausführungszeiten je nach vorauss. Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 3
In Diskussion Workflow Error While Automating Game Update Notifications JTL-Workflows - Fehler und Bugs 2
Neu Auslesen Bestand per Lager für Workflow zur Anzeige im Onlineshop User helfen Usern - Fragen zu JTL-Wawi 4
Neu Workflow automatisch alle 2 Stunden ausführen – Prüfung auf voraussichtliches Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 11
In Diskussion Workflow zur Zählen von Retouren und Bestellungen von einem Kunden JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Externe E-Mail mit Auftragsdaten per Workflow erzeugen JTL-Workflows - Fehler und Bugs 10
Neu Workflow Amazon Fristen + Bestellung filtern und Ausliefern User helfen Usern - Fragen zu JTL-Wawi 3
Alternativtext für Artikelbilder per Ameise pro Plattform setzen JTL-Wawi 1.10 0
Neu Bei allen Artikeln aus einer Execlliste die Lieferzeiten einheitlich setzen. JTL-Wawi 1.6 4
Mindest- / Maximalbestand setzen Verkaufskanäle SXC WaWi friert ein JTL-Wawi 1.10 3

Ähnliche Themen