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
2.653
513
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
556
185
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
614
209
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
556
185
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
2.653
513
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
Verwiesen an Servicepartner Workflow für Einkaufsliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-Shop oder Workflow: Artikel mit Menge > 1 sollen trotzdem als separate Einzelartikel im Auftrag aufgeführt werden User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Stücklisten im Auftrag abfragen und korrekt in einer Mail auflisten User helfen Usern - Fragen zu JTL-Wawi 1
Workflow = Gewinn unter 30 % vom netto = per Mail informiert JTL-Wawi 1.6 10
Verwiesen an Support BUG: Mahnlauf über Workflow ignoriert Zahlungsziel JTL-Workflows - Fehler und Bugs 3
Neu Wie gebrauchte Waren bei Ebay einstellen? Workflow User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Mobile App Neukunden identifizieren User helfen Usern - Fragen zu JTL-Wawi 4
Neu Workflow - Stücklistenartikel abfragen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Workflow - Positionen an Dropshipping-Lieferant mailen. Warum funktioniert dieser Code nicht? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow bei Login in WMS / WAWI starten User helfen Usern - Fragen zu JTL-Wawi 10
Neu Workflow - als Bedingung Standard-Dropshipping-Lieferantenname prüfen Gelöste Themen in diesem Bereich 5
Nach Aufruf von Stored Procedure 'Kunde.spKundeUpdate' schwere Fehler in JTL (z.B. Kundenliste, Workflow-Editor) JTL-Wawi 1.8 2
Neu Feldname für Workflow herausfinden User helfen Usern - Fragen zu JTL-Wawi 4
Workflow - internationaler Auftrag -> Artikelname aus Stammdaten JTL-Wawi 1.7 1
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 2
Neu Workflow der bei Stücklisten: Überverkäufe de-/aktivieren User helfen Usern - Fragen zu JTL-Wawi 11
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Workflow Manuell HTML Request wie Server Antwort verarbeiten JTL-Wawi 1.7 0
Workflow Marktplätze - Otto, Kaufland, etc. JTL-Wawi 1.6 0
Workflow Artikel + Anzahl in Einkaufsliste aktualisieren JTL-Wawi 1.8 0
Neu Workflow Web-Request Post für mollie Arbeitsabläufe in JTL-Wawi 6
Workflow MwSt.-Sätze ersetzen 0% -> 19% ändert netto in Positionen aber nicht in der Auftragssumme JTL-Wawi 1.7 2
Neu API Integration via Workflow Arbeitsabläufe in JTL-Wawi 10
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
In Bearbeitung Workflow offene Aufträge zusammenfassen bei ausgelieferten JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow-Auswahl ... mit ins Kontext-Menü aufnehmen (rechten Maustaste) JTL-Wawi - Ideen, Lob und Kritik 2
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Workflow für Versandart Wenn/Und JTL-Wawi 1.7 0
Workflow für Amazon Zahlart erstellen JTL-Wawi 1.7 0
In Diskussion Workflow von Stornobelege Rechnung JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Gelöst Servicedesk Workflow Datei erstellen um einen Auftrag zu ändern Gelöste Themen in diesem Bereich 1
Neu Workflow mit Freipositionen in Email Gelöste Themen in diesem Bereich 3
Neu Workflow > Rechnungen > Label Setzen ? (1.8.11) User helfen Usern - Fragen zu JTL-Wawi 6
Neu Workflow Ereignis auslösen wenn alle Bedingungen erfüllt sind. Sonst anderes Ereignis auslösen. JTL-Wawi - Ideen, Lob und Kritik 0
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow für Rechnung gesucht Arbeitsabläufe in JTL-Wawi 1
Workflow - Debitorennummer JTL-Wawi 1.8 4
In Diskussion Workflow - Artikelmerkmale setzen? JTL-Workflows - Ideen, Lob und Kritik 2
Workflow: Mahnungen - Fehler JTL-Wawi 1.8 5
Neu Workflow Lieferantenartikel-Nummer vor Artikelname setzen JTL-Wawi 1.7 1
In Diskussion Workflow wenn offene Rechnungen, dann weitere offene Aufträge sperren und im Kundensatz Sperrung setzten. JTL-Workflows - Ideen, Lob und Kritik 0
Workflow für Kaufland greift nicht mehr 1.8.11.0 kaufland.de - Anbindung (SCX) 5
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
In Diskussion Workflow, Wert setzen aus Zwischenablage/Clipboard JTL-Workflows - Ideen, Lob und Kritik 0
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Rechnungsvorlage ändern klappt nicht - Wawi 1.7.13.1 User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen