Dienstag, 23. August 2016 – JTL-Wawi Workflows

Eine Insel mit zwei Bergen und dem Eisenbahnverkehr – falsches Thema. Jim Knopf der Lokomotivführer hat hier nun wirklich nichts verloren. Aber ein bisschen komme ich mir dann doch vor wie in der Augsburger Puppenkiste. Andere würden sich an dieser Stelle mächtig verarscht vorkommen. Ich habe meinen Frust zwischen zwei süßen Hügel abreagieren können und – sorry ich kann jetzt nicht anders – das ist zu geil, um es der Welt nicht zu erzählen.

2016-08-23 18_50_52-_W2K16_ auf _MICHAEL-PC_ - Verbindung mit virtuellen Computern

Also letzte Woche hat mich Korbinian aus meiner Facebook-Gruppe angeschrieben, ob ich nicht einen Workflow für ihn auf die Schnelle schreiben kann. Ja ich weiß, ich habe hier x-Mal geschrieben, dass ich die Wawi mit Missachtung strafen werde. Interessiert ja eh keine Sau bei JTL, was der Schäfer so schreibt, also kann ich ja mein Ranking bei Google schamlos ausnutzen. Komme ich also zur Sache.

Folgender Hintergrund hinter diesem Workflow. Korbinian verkauft irgendetwas, was lange Lieferzeiten hat oder so gut geht, dass es auch mal schnell nachbestellt werden muss. No Problem, sein Lieferant liefert schnell und er kann die fehlenden Artikel per Workflow in der JTL-Wawi auf die Einkaufsliste setzen. Bleibt also noch der Kunde übrig. Dem könnte man ja eine Mail senden und das ganze auch über einen Workflow steuern. Dumm ist nur, wenn sich nach der Bestellung die Lieferzeit des Lieferanten ändert und ich den Kunden nochmal informieren muss. Auch kein Problem, können wir noch einen Workflow schreiben, der auch das abfängt.

2016-08-23 19_36_49-_W2K16_ auf _MICHAEL-PC_ - Verbindung mit virtuellen Computern

Für den ersten Teil der Aufgabe brauche wir also einen Workflow der das Lieferdatum in einem nicht lieferbaren Auftrag setzt. Also jetzt nicht wie hier im Screenshot oben einfach Lieferdatum heute, bzw. plus x-Tage. Nein das Lieferdatum, also das Datum an dem Korbinian die Ware an den Kunden schickt, errechnet sich aus dem Datum der Bestellung plus der Lieferzeit des Lieferanten. Nun können in so einem verfluchten Auftrag zwei Artikel mit unterschiedlichen Lieferanten und Lieferzeiten drin hängen. Also Lieferant A liefert innerhalb von 48 Stunden und Lieferant B braucht drei Tage. Um unseren Kunden jetzt das richtige Versanddatum mitzuteilen, sollten wir natürlich die Lieferzeit von Lieferant B berücksichtigen.

Ich habe also in meiner lieben Facebook-Gruppe folgendes gepostet:

Aufgabe: kleiner Workflow soll das voraussichtliche Lieferdatum setzen und zwar genau dann, wenn der Auftrag nicht lieferbar ist, weil ein Artikel nicht auf Lager ist. Das voraussichtliche Lieferdatum soll dabei das Datum sein, an dem der Artikel vom Lieferant geliefert wird. Also Datum heute plus Tage LieferzeitWennAusverkauft. Und um das ganze abzurunden, soll dann noch der größte Wert verwendet werden, wenn mehrere Artikel im Auftrag nicht lieferbar sind. Jetzt bin ich mal gespannt.

Ja ich weiß, ich bin gemein, so etwas in eine Facebook-Gruppe für Dummys zu stellen. Aber wir wollen ja das Niveau hoch halten. Haben sich ja auch die üblichen Verdächtigen zu Wort gemeldet. Maik meinte darauf:

Machbar. Gebt den auch mal bei show me your workflow ab, um damit was zu gewinnen. Noch könnt ihr eure Workflows abgeben.

Und Marc antwortete mir:

Auf jeden Fall möglich, und auch nicht wirklich komplex, bissel sql und so.

Ich habe mich dann an die Arbeit gemacht und den Workflow aufgesetzt.

2016-08-23 18_52_09-_W2K16_ auf _MICHAEL-PC_ - Verbindung mit virtuellen Computern

Also erst mal als Bedingung für den Workflow Auftrag erstellt auf ist komplett lieferbar falsch setzen, weil nur diese Aufträge berücksichtigt werden müssen (Ich habe mich hier fürs Standardlager entschieden, da das WMS-Lager nicht eingerichtet ist.). Als Aktion soll das Lieferdatum im Auftrag gesetzt werden und das natürlich in Abhängigkeit von der Lieferzeit des Lieferanten. Nichts leichter als das. Das kleine folgende Skript erledigt auch zuverlässig diese Aufgabe. Et voila – fertig ist der erste Teil des Workflows.

[codesyntax lang=“text“]

[/codesyntax]

2016-08-23 18_52_26-_W2K16_ auf _MICHAEL-PC_ - Verbindung mit virtuellen Computern

Nun haben der liebe Korbinian und meine Wenigkeit die Rechnung ohne den immer genau dann auftauchenden JTL-Fehlerteufel gemacht. Der Workflow brachte leider beim Testen folgende Fehlermeldung:

Die Property set-Methode wurde nicht gefunden

Wieder nach Facebook und in meiner Gruppe mein Leid klagen:

Mal wieder Thema Workflow. Wert setzen ist gut. Ich kann auch eine Formel für meinen Wert hinterlegen. Wenn ich jetzt dort für den Wert Auftrag\Lieferung\VoraussichtlichesLieferdatum die Funtion {{Datum.Jetzt | AddDays: 3 }} einbaue, bekomme ich bei der Ausführung des Workflows den Fehler property set Methode nicht gefunden. Ich frage mich jetzt ob das ein Bug oder ein Feature ist. dokumentation dazu jedenfalls nirgends gefunden.

Okay ich wollte an dieser Stelle den Leser nicht mit meiner ellenlangen Formel langweilen und habe die Kurzversion gewählt. Nun dachte ich, ich würde vielleicht wieder von den üblichen Verdächtigen einen Tipp bekommen, was ich denn so bei meinen Überlegungen falsch gemacht haben könnte. An dieser Stelle habe ich dann den Denkfehler gemacht. Es meldete sich natürlich wieder einer und zwar der liebe Maik und schrieb folgendes:

Ist in der kommenden 1.1.4 behoben, war ein Fehler genau an dieser Stelle.

Wer jetzt aufmerksam gelesen hat, sollte sich an genau diesem Punkt vor Lachen kaum noch auf den Beinen halten können. Na gut das ich, als ich dieses las, unter 53 Kilogramm schweren Wonneproppen begraben war und diese Nachricht nur mit einem Auge lesen konnte. Ich war also wehrlos ergeben und den Brüller musste ich mir an dieser Stelle glatt verkneifen.

Ach ja, am Freitag ist ja die JTL-Connect und den Workflow konnte Korbinian nicht einreichen. Aber vielleicht gibt es ja im nächsten Jahr wieder eine Connect mit dem schönen Wettbewerb Show us your Bug. Den hätten wir in diesem Jahr zwar nicht gewonnen, aber mit der Story wären wir sicher sehr weit vorne gelandet. Also Maik ich habe es mit Humor genommen, bis auf die Kleinigkeit, das ich natürlich Korbinian keine Rechnung für meine Zeit und Arbeit schreiben konnte. Ich konnte ja keinen funktionierenden Workflow abliefern. Aber ist ja nicht so tragisch mit der nächsten Version, wird ja alles besser – oder frei nach dem Slogan – was lange wärt, wird noch viel besser.

Fast hätte ich noch vergessen. Da hat sich glatt noch ein weiterer flotter Käfer im Artikel versteckt. Ich bin gespannt wer den hier unten postet. Der erfährt auch von mir, wer der kleine Wonneproppen war. Die Praktikantin war es jedenfalls nicht.

8 Gedanken zu „Dienstag, 23. August 2016 – JTL-Wawi Workflows“

  1. So geil. Aber vermutlich war es wieder nur ein Anwender Fehler. An Jtl kann es ja nicht liegen …. Sagt der gute Maik ;-)

    1. Hallo Christian,

      danke für das Lob. Aber ein bisschen muss ich Maik in Schutz nehmen. Diesmal war es kein Anwenderfehler. Siehe Hinweis von ihm auf die neue Version. Aber genau da ist ja der Brüller. Erst auffordern, den Workflow bei JTL einzureichen und dann einräumen müssen, dass er nicht funktionieren kann. Besser geht es nicht mehr.

      Gruß Michael

  2. Hm. Naja. Letztendlich hätte man das „AddDays“ ja auch händisch ausprogrammieren können. Recht umständlich – aber das es nun so gar nicht gehen könnte stimmt ja auch nicht.

  3. Hallo Michael, was passiert in diesem Workflow, wenn der lagernde und verfügbare Artikel eine längere Lieferantenlieferzeit angegeben hat, als der fehlende?

    1. Hallo DL,

      im Workflow sollte eigentlich dieser Artikel herausfallen und nicht betrachtet werden. Ich konnte es aber leider nicht wirklich zu Ende testen. Wie das jetzt in der aktuellen Wawi aussieht, kann ich nicht beantworten. Ich habe in meinem Netzwerk alles auf Open Source Lösungen umgestellt.

      Hier kann ich nur dazu raten in einem Testcenter mit Live-Daten das ganze im Vorfeld einzurichten und zu testen. In einer produktiven Umgebung würde ich es jedenfalls nicht ausprobieren wollen.

      Gruß Michael

  4. Hallo Christian,

    wenn ich habe Variation-Artikel?
    Leider bei mir im test bekomme ich aktuelle datum / beispiel — heute 11.07.17 – Hersteller liefert in 42 Arbeitstagen, bei Ausführung -Lieferdatum 11.07.17……

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.