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.295
407
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.295
407
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
In Diskussion Workflow bei fehlerhaften Bankabgleich JTL-Workflows - Ideen, Lob und Kritik 4
In Diskussion Workflow für Erinnerungen an bevorstehende Lieferungen JTL-Workflows - Ideen, Lob und Kritik 0
Neu Lagerkommentar 1 per Workflow füllen User helfen Usern - Fragen zu JTL-Wawi 6
Neu Suche Workflow: Erstbestellung Shop auf Rechnung -> Auftrag Zurückhalten JTL-Wawi - Ideen, Lob und Kritik 1
1.11.7 Workflow versendet soll Rechnung 1x drucken, druckt aber 2x JTL-Wawi 1.11 1
Neu Auftrag - Lieferstatus mit Workflow exportieren Arbeitsabläufe in JTL-Wawi 3
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Using short screen recordings for JTL-Wawi workflow documentation – anyone doing this? JTL-Wawi 2.0 3
Neu Werte erhöhen per Workflow User helfen Usern - Fragen zu JTL-Wawi 4
In Diskussion Workflow OpenAI JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 1
Neu 2.0.0: Workflow Queue wird nicht abgearbeitet via API JTL-Wawi 2.0 1
Neu Verständnisfrage zum Mahnlauf Workflow User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Ort mit OT per Workflow bereinigen JTL-Workflows - Ideen, Lob und Kritik 3
Skonto wird bei Zahlung setzen nicht berücksichtigt JTL-Wawi 1.11 2
Labels setzen per v1/v2/GraphQL? JTL-Wawi 2.0 3
JTL Wawi 1.11. - Fenstergröße - Artikel auf Einkaufsliste setzen JTL-Wawi 1.11 13
Neu nicht lieferbare Artikel aus Bestellung wieder auf die Einkaufsliste setzen ?! User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen