Workflow: Das automatische durschuchen ALLER Positionen mit bestimmten Namen.

mowment

Mitglied
15. Dezember 2022
10
0
Mein Problem ist aktuell, dass ich unsere Kartonagen gerne in einem frisch erstellten Auftrag automatisch einfügen möchte (Kartonage als Artikel). Ich habe bisher einen Workflow angelegt, welcher auch soweit funktioniert (er sucht einen Artikel aus der Auftragsposition dessen Name mit 6x4 endet). Nun leider hört der Workflow automatisch danach auf, da er ja sein Ziel erreicht hat. Nun zu meiner Frage:

Wie kann ich den Workflow so einstellen, dass er nicht bei dem ersten Treffer sich beendet sondern solange den Workflow ausführt bis er alle im Auftrag sich befindende Artikel mit o.g. Voraussetzung gefunden hat + er soll die Kartonage auch so oft einfügen wie der gefundene Artikel hat (z.B: er findet einen Artikel mit 6x4 am Ende, welcher einen Mengenwert von 6 hat, trägt aber nur 1x die Kartonage ein, obwohl es 6x sein sollte)
Vielen lieben Dank wenn sich jemand dem annehmen kann !

MfG
Daniel
 

John

Sehr aktives Mitglied
3. März 2012
3.901
950
Berlin
Eigene Erweiterte Eigenschaft anlegen, Rückgabewert Zahl und in der Erweiterten Eigenschaft eine Schleife über alle Positionen laufen lassen und das Vorkommen von 6x4 zählen.
Dann das Ergebnis als Rückgabewert nutzen.
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
203
Im Workflow hast du bei der Aktion "Position hinzufügen" ja ein Feld für die Menge. Dort kannst du über die drei kleinen Punkte rechts daneben den Editor öffnen. Da fügst du das hier ein:

{% capture query -%}
select count(kartikel) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cArtNr like '%6x4'
{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}

Das zählt stumpf die Anzahl der Positionen (Achtung: Nicht die Menge!) im Auftrag, dessen SKU mit 6x4 endet und fügt dir die Zahl am Ende als die Anzahl ein, wie oft die Kartonage eingefügt werden soll.
Menge könnte man noch ähnlich berücksichtigen, weiß nicht ob du das brauchst.
 

mowment

Mitglied
15. Dezember 2022
10
0
@John Leider bin ich noch neu in der Wawi Materie und weiß aktuell nicht wie ich das schreibe / bzw. wie die Lokale dafür sind. Kannst du mir ein Beispiel nennen woran ich das lernen / sehen kann? Das wäre sehr nett von dir!
 

mowment

Mitglied
15. Dezember 2022
10
0
@jtldudel nachdem ich den Workflow simuliert habe, hat der Workflow sich wieder nach dem ersten zutreffenden Artikel (mit 6x4 im Namen) sich beendet und die Suche nicht weiter fortgeführt.
 

mowment

Mitglied
15. Dezember 2022
10
0
Ich hab den Workflow jetzt so weit bekommen, dass er die Anzahl der "6x4" über cName anstatt von cArtNr nimmt. Jetzt fehlt mir nur noch die Menge der einzelnen Auftragspositionen. Nur das integrieren der Mengenanzahl wirft mir immer einen Syntaxerror raus. Hier mal mein Code:


{% capture query -%}
select count(kartikel) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%6x4'

select count(kartikel) from Verkauf.tAuftragPosition.ArtikelPositionen.nAnzahl where nAnzahl = {{ Vorgang.AuftragsPositionen.ArtikelPositionen.Anzahl }}
and nAnzahl > 0

{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}

EDIT:

Wenn möglich würde ich wahrscheinlich auch später von cName zu den Artikelmerkmalen wechseln, da ich da bessere Zuweisungen tätigen kann. Nur kenn ich die SQL Lokale dafür nicht
 

mowment

Mitglied
15. Dezember 2022
10
0
@MirkoWK Da bekomm ich leider weiterhin eine Fehlermeldung: "
Fehler im Befehl: Server "Verkauf" konnte in "sys.servers" nicht gefunden werden. Stellen Sie sicher, dass der richtige Servername angegeben wurde. Führen Sie ggf. die gespeicherte Prozedur "sp_addlinkedserver" aus, um den Server in "sys.servers" hinzuzufügen."
"
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
810
294
das klingt seltsam - hast du wie in deinem Post oben 1 Select oder beide drin? auf diese Weise geht auf jeden Fall nur 1.

Falls du das im MS Server Management Studio testest, dann musst du noch die richtige DB aussuchen.

So sollte es aber funktionieren:
SQL:
{% capture query -%}
select sum(fAnzahl) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%6x4'
{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}
 

mowment

Mitglied
15. Dezember 2022
10
0
das klingt seltsam - hast du wie in deinem Post oben 1 Select oder beide drin? auf diese Weise geht auf jeden Fall nur 1.

Falls du das im MS Server Management Studio testest, dann musst du noch die richtige DB aussuchen.

So sollte es aber funktionieren:
SQL:
{% capture query -%}
select sum(fAnzahl) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%6x4'
{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}
Also ich teste das direkt in der Wawi und habe den oben genannten code genutzt. Sofern ich das zweite select entferne (mit dem verweiß auf die Menge) funktioniert es ja ohne Fehler. Also ich nutze 2 Selects. Aber das scheint ja wie von dir beschrieben nicht zu funktionieren. Hier zur Erklärung der Code der Fehlerhaft ist:


{% capture query -%}
select count(kartikel) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%6x4'

select sum(fAnzahl) from Verkauf.tAuftragPosition.ArtikelPositionen.nAnzahl where nAnzahl = {{ Vorgang.AuftragsPositionen.ArtikelPositionen.Anzahl }}
and nAnzahl > 0


{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}
 

mowment

Mitglied
15. Dezember 2022
10
0
So... Jetzt hab ich etwas mehr geschaft. Mit dem folgenden Code habe ich jetzt die Artikelanzahl und die gesamtmenge an Artikel gefunden.:

{% capture query -%}
{% assign Gesamtmenge = 0 -%}
select count(kartikel) and from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%6x4'
{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% assign Gesamtmenge = Gesamtmenge | Plus: Artikelbeschreibungen.Menge -%}
{% endfor -%}
{% endcapture -%}
{% assign Anzahl = query | DirectQueryScalar -%}
{{ Anzahl }}
{{ Gesamtmenge | Floor }}


Jetzt würde ich gerne nur noch die zwei Module miteinander verknüpfen, sodass er mir bei der "select" suche direkt die Artikel UND die Menge raussucht (also quasi die Artikelsuche rausnehmen sondern direkt nach Menge suchen von Positionen mit dem vermerk, dass diese "6x4" im Namen haben müssen.)

Kann mir da jemand bei dem vermischen der Codes helfen? Hab da jetzt mehrere Stunden probiert und nur Syntax-errors bekommen.

MfG
Daniel
 

mowment

Mitglied
15. Dezember 2022
10
0
Ich fühl mich so als ob ich mit mir selbst ein Gespräch hier führe, ABER ich habe es geschafft! Der folgende Code geht den Auftrag durch und findet alle gesuchten Artikel und ihre Menge (Berücksichtigt nur die Menge um keine doppelten Einträge zu haben). :


{% capture query -%}
{% assign Gesamtmenge = 0 -%}
select sum(fAnzahl) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%NAME DES ARTIKELS DEN MAN SUCHT' --> das "%" kann sowohl vor- als auch nach dem Namen eingefügt werden und besagt, dass das Schlagwort Vor-oder nach dem "%" kommt (also z.B: %Ball --> "Bunter Ball" oder Ball% --> Ball Groß. Oder %Ball% --> Bunter Ball Groß) (nur als Hilfe für Leute die dasselbe Problem und dieselben Fragen wie ich habe haha)

{% endcapture -%}
{% assign Anzahl2 = query | DirectQueryScalar -%}
{{ Anzahl2 }}
 

jtldudel

Sehr aktives Mitglied
4. Januar 2018
635
203
Ich fühl mich so als ob ich mit mir selbst ein Gespräch hier führe, ABER ich habe es geschafft! Der folgende Code geht den Auftrag durch und findet alle gesuchten Artikel und ihre Menge (Berücksichtigt nur die Menge um keine doppelten Einträge zu haben). :


{% capture query -%}
{% assign Gesamtmenge = 0 -%}
select sum(fAnzahl) from Verkauf.tAuftragPosition where kauftrag = {{ Vorgang.Stammdaten.InterneAuftragsnummer }}
and cName like '%NAME DES ARTIKELS DEN MAN SUCHT' --> das "%" kann sowohl vor- als auch nach dem Namen eingefügt werden und besagt, dass das Schlagwort Vor-oder nach dem "%" kommt (also z.B: %Ball --> "Bunter Ball" oder Ball% --> Ball Groß. Oder %Ball% --> Bunter Ball Groß) (nur als Hilfe für Leute die dasselbe Problem und dieselben Fragen wie ich habe haha)

{% endcapture -%}
{% assign Anzahl2 = query | DirectQueryScalar -%}
{{ Anzahl2 }}
Das ist btw die gleiche Lösung die MirkoWK weiter oben schon gepostet hatte :D
 

John

Sehr aktives Mitglied
3. März 2012
3.901
950
Berlin
Die Lösung hier ist stressig, weil SQL und das bei Updates seitenes der Datenstruktur der Wawi evtl. angepasst werden muß.

Nimm das hier:

Code:
{% assign AnzahlGesamt = 0 -%}
{% for Position in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% if Position.Bezeichnung | Matches: '6x4' -%}
{% assign AnzahlGesamt = AnzahlGesamt | Plus: Position.Menge -%}
{% endif -%}
{% endfor -%}
{{ AnzahlGesamt }}

Das nimmst Du als Wert für die Anzahl deiner hinzuzufügenden Positionen.
Und mit dem gleichen Code machst Du Dir in den Workflow Bedingungen eine Eigene Erweiterte Eigenschaft mit Rückgabewert ZAHL. Die Erweiterte Eigenschaft prüfst Du dann auf > 0 als Deine Workflow Bedingung

In dem Code wird generell auf Vorkommen von 6x4 geprüft. Nicht auf endet mit. Das könnte man aber per RegEx anpassen.
 
  • Gefällt mir
Reaktionen: jtldudel
Ähnliche Themen
Titel Forum Antworten Datum
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
Workflow - Werte setzen JTL-Wawi 1.11 0
Neu Workflow Artkel bereits bestellt Arbeitsabläufe in JTL-Wawi 1
Neu Workflow bei Zahlungseingang User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow LandISO User helfen Usern - Fragen zu JTL-Wawi 3
Workflow zum abrufen der Upload-Datei aus dem Shop-Auftrag JTL-Wawi 1.11 0
Beantwortet Workflow Datei schreiben Dateiname per Dotliquid Fehler Illegales Zeichen im Pfad. callerMemberName : WriteFile JTL-Workflows - Fehler und Bugs 1
Neu Workflow zum automatischen Stornieren einer Rechnung nach Versand User helfen Usern - Fragen zu JTL-Wawi 4
Neu Artikel KinderArtikel anlegen: Workflow "Artikel erstellt und Artikel geändert" werden NUR beim Vaterartikel gestartet User helfen Usern - Fragen zu JTL-Wawi 0
Stornobeleg als Workflow-Trigger JTL-Wawi 1.10 6
Issue angelegt [WAWI-86213] Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Workflow für voraussichtlichen Liefertag erstellen JTL-Workflows - Ideen, Lob und Kritik 6
Neu Workflow für voraussichtlichen Liefertag erstellen User helfen Usern - Fragen zu JTL-Wawi 1
Lieferantenbestellung per Workflow bestätigen JTL-Wawi 1.11 0
In Diskussion Workflow: Straße enthält Postfiliale oder Paketshop JTL-Workflows - Fehler und Bugs 3
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
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 7
Neu Workflow um einen Artikel bei einem bestimmten Verkaufskanal zu aktivieren oder deaktivieren User helfen Usern - Fragen zu JTL-Wawi 4
Neu Einkauf organisieren, wenn Lager ohne Lagerbestand - wie macht Ihr das? Arbeitsabläufe in JTL-Wawi 0
Bestand anderer Kinderartikel wird in Artikelstammdaten mit angezeigt – wie kann man das deaktivieren? JTL-Wawi 1.11 2
Neu Staffelpreise wird mit Sternchen angezeigt - wie ändere ich das Allgemeine Fragen zu JTL-Shop 0
Stückzahl teilbar rückgängig machen, geht das? JTL-Wawi 1.10 4
Sammelbuchung bei Zahlungsausgang über das Zahlungsmodul JTL-Wawi 1.10 0
Neu FBA-Lagerbestand wird nicht mehr eingelesen - Fehler beim Verarbeiten von Amazon Events - FbaInventoryImported: Das angegebene Argument liegt außerha Amazon-Anbindung - Fehler und Bugs 13
Neu Attribut bei bestimmten Artikel steuert das Erscheinen einer Checkbox vor Bestellabschluss Allgemeine Fragen zu JTL-Shop 1
Neu DPD und das Gewicht auf dem Label JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Feature Requests für das News System Refactoring JTL-Shop - Ideen, Lob und Kritik 7
Neu Gutscheine an JTL POS ohne Voucher - wie macht Ihr das? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Zusatzverpackung pro Artikel berechnen. Geht das? Allgemeine Fragen zu JTL-Shop 5
Neu Eine Rechnungsposition auf zwei Teilrechnungen berechnen - Wie löst ihr das? Arbeitsabläufe in JTL-Wawi 7
Geschenke erstellen - geht das überhaupt? Rabatt? JTL-Wawi 1.10 2
Neu Zahlungsmodul und das VoP ab dem 5.10. Arbeitsabläufe in JTL-Wawi 43
Bei der Länderverwaltung fehlt das Bearbeiten-Symbol Einrichtung JTL-Shop5 1
Neu Was bedeutet das genau: Anzahl nötiger Bestellungen (Zahlungsart im Shop Backend) Allgemeine Fragen zu JTL-Shop 1
Neu Automatische Picklistenerstellung nicht mögich? Installation von JTL-WMS / JTL-Packtisch+ 0
Neu Keine automatische Übernahme von Änderungen in JTL trotz Abgleich? Onlineshop-Anbindung 3
Neu Automatische Gutschriften FBA - Kunde sendet nichts zurück - was jetzt ? User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen