Neu Workflow - Export Lagerbestand

kobalz

Aktives Mitglied
27. Juli 2016
1
0
Servus zusammen,

wir benötigen einen Workflow, der uns den Lagerbestand (also "Artikelnummer" und "verfügbarer Bestand") nach einer Änderung am Bestand irgendeines Artikels in eine CSV Datei exportiert. (Am besten wäre gleich auf unseren eigenen FTP-Server).

Leider habe ich nichts passendes bei den Workflows gefunden. Hat irgend einer eine Idee, wir wir dies abbilden können?

Danke für die Hilfe imm Voraus.

Grüße
Steffen
 

Sawyer

Gut bekanntes Mitglied
12. Mai 2015
137
4
Köln
Guten Abend,

Mir ist kein Workflow bekannt der das abbildet.

Die Ausgabe bei Bestandsänderung klingt für mich auch sehr häufig. Wir realisieren dies stündlich mit der Ameise per Batch und Aufgabenplaung.

Bei bedarf beschreibe ich das gerne bei zeiten näher.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
Hallo Steffen,

den Lagerbestand für einen Artikel kriegst Du ja leicht über die Werte bei "Vorgang > Artikel > Bestandsübersicht" raus, und den Wert dann in eine CSV Datei zu schreiben ist eher trivial, aber ich lese oben raus, dass Du dann, wenn irgendein Artikel seinen Bestand geändert hat, eine Datei mit den Beständen aller Artikel bekommen möchtest, ist das richtig?

Dazu braucht es dann schon eine SQL Abfrage und die wäre, wenn man hier auf sich allein gestellt wäre, eher ein "SQL Programm", weil das Zusammentragen der Bestandsinformationen aus der Wawi Datenbank untrivial ist.

Netterweise hat JTL das aber schon für uns erledigt und einen SQL View geschrieben, der genau das macht. Alles, was man also machen muss, ist die Werte aus dem View einzusammeln, für CSV zu formatieren und rauszuschreiben. Hier ist die SQL Abfrage dafür, schon in Workflow geeigneter Form ...
Code:
{% capture query -%}
SELECT kArtikel, fLagerbestand, fVerfuegbar, fReserviert, fVerfuegbarGesperrt, fZulauf, fZulaufVerfuegbar, fAufEinkaufsliste, fEigenerBestand, fVerfuegbarExtern, fInAuftraegen FROM vLagerbestandEx
{% endcapture -%}
{% assign ArtikelBestand = query | DirectQuery -%}
ArtNr;IntArtNr;LagerBestand;Verfuegbar;Reserviert;VerfuegbarGesperrt;Zulauf;ZulaufVerfuegbar;AufEinkaufsliste;EigenerBestand;VerfuegbarExtern;InAuftraegen
{% for item in ArtikelBestand.Daten -%}
{% capture query2 -%}SELECT cArtNr FROM tArtikel WHERE tArtikel.kArtikel={{ item.kArtikel }}{% endcapture -%}{% assign ArtNr = query2 | DirectQueryScalar %}{{ ArtNr }};{{ item.kArtikel }};{{ item.fLagerbestand | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbar | FormatNumber: 'N0', 'de-DE' }};{{ item.fReserviert | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbarGesperrt | FormatNumber: 'N0', 'de-DE' }};{{ item.fZulauf | FormatNumber: 'N0', 'de-DE' }};{{ item.fZulaufVerfuegbar | FormatNumber: 'N0', 'de-DE' }};{{ item.fAufEinkaufsliste | FormatNumber: 'N0', 'de-DE' }};{{ item.fEigenerBestand | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbarExtern | FormatNumber: 'N0', 'de-DE' }};{{ item.fInAuftraegen | FormatNumber: 'N0', 'de-DE' }}
{% endfor -%}
Hier werden nicht nur Deine Zielvariablen "Artikelnummer" und "Verfügbarer Bestand" geholt, sondern gleich der ganze Schwung an Bestandsdaten, aber Weglassen ist ja immer leichter als Hinzufügen ... ;)

Der dazu passende Workflow wäre dann entweder einer (1) im Bereich "Artikel - Manuell" oder aber jeweils einer (ergo 2) in den Bereichen "Warenlagereingang > Plusbuchung" und "Warenlagerausgang > Minusbuchung" und der Workflow hätte jeweils KEINE Bedingung und als Aktion "Datei schreiben" und beim Inhalt natürlich die Abfrage von oben. Alle anderen Optionen sind nach Wunsch.

Und falls Du tatsächlich nur den Bestand des einen Artikels haben willst, der gerade geändert wurde, dann sähe die Abfrage etwas anders aus, nämlich so ...
Code:
{% capture query -%}
SELECT kArtikel, fLagerbestand, fVerfuegbar, fReserviert, fVerfuegbarGesperrt, fZulauf, fZulaufVerfuegbar, fAufEinkaufsliste, fEigenerBestand, fVerfuegbarExtern, fInAuftraegen FROM vLagerbestandEx
    WHERE kArtikel={{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}
{% assign ArtikelBestand = query | DirectQuery -%}
ArtNr;IntArtNr;LagerBestand;Verfuegbar;Reserviert;VerfuegbarGesperrt;Zulauf;ZulaufVerfuegbar;AufEinkaufsliste;EigenerBestand;VerfuegbarExtern;InAuftraegen
{% for item in ArtikelBestand.Daten -%}
{{ Vorgang.Artikel.Allgemein.Stammdaten.ArtNrSku }};{{ item.kArtikel }};{{ item.fLagerbestand | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbar | FormatNumber: 'N0', 'de-DE' }};{{ item.fReserviert | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbarGesperrt | FormatNumber: 'N0', 'de-DE' }};{{ item.fZulauf | FormatNumber: 'N0', 'de-DE' }};{{ item.fZulaufVerfuegbar | FormatNumber: 'N0', 'de-DE' }};{{ item.fAufEinkaufsliste | FormatNumber: 'N0', 'de-DE' }};{{ item.fEigenerBestand | FormatNumber: 'N0', 'de-DE' }};{{ item.fVerfuegbarExtern | FormatNumber: 'N0', 'de-DE' }};{{ item.fInAuftraegen | FormatNumber: 'N0', 'de-DE' }}
{% endfor -%}
... und alles andere wäre ansonsten gleich.

ERNSTE WARNUNG:

Der obere, automatische Workflow über alle Artikel hat eine SQL Abfrage ohne WHERE Bedingung. Das ist hier zwar Sinn der Übung, eine Datenbank-Tabelle ohne Eingrenzung zu lesen/schreiben gilt aber als schlechter Stil und ist auch gefährlich, z.B. wenn Du nicht wie ich 537 Artikel hast, sondern 126234 Stück. - Wie "performant" das Ganze dann nämlich ist, ist echt fraglich und falls es wirklich Ziel sein sollte, das bei jeder Bestandsänderung irgendeines Artikels auszuführen, dann "gute Nacht Marie" ... :confused:

Ich würde deshalb dringend dafür plädieren, diese gefährliche(re) Workflow-Variante ausschließlich über einen manuellen Workflow auszulösen, also einen Artikel mit der Maus markieren, rechts unten unter Workflow diesen Workflow auswählen und schon hast Du den aktuellen Bestand aller Artikel auf der Platte.

Und falls ich Dich falsch verstanden habe und Du wolltest gar nichts anderes, dann mea culpa und um so besser ... :)

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

svenyo

Gut bekanntes Mitglied
18. Februar 2016
108
3
@gutberle

Danke für die Rückmeldung. Die Bestandsänderung für den jeweiligen Artikel würde eigentlich vollkommen ausreichen. Jedesmal alle Artikel zu exportieren (auch die ohne Änderung) wäre tatsächlich unnötig, da hast du Recht.

Wenn ich es richtig verstanden habe, müsste ich also mit dem ZWEITEN Code die zwei Workflows anlegen ("Warenlagereingang > Plusbuchung" und "Warenlagerausgang > Minusbuchung") damit mir eine CSV-Datei erstellt wird?

Diese CSV-Datei könnte ich dann quasi mit einer Batch-Datei per Ameise im 2. Mandanten nach einem festgelegten Zeitintervall importieren lassen, richtig?
Jetzt müsste ich nur noch wissen, wie das mit der Batch-Datei & Ameise funktioniert?

Sorry bin völliger Newbie auf dem Gebiet.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
@svenyo

Ja, in dem Fall wäre es der zweite und "ungefährlichere" Workflow, den du in Plus-/Minusbuchung gleichlautend anlegen würdest. Es spricht aber auch überhaupt nichts dagegen, dass Du Dir den ersten und "gefährlichen" Workflow als manuellen Workflow anlegst, denn eine einfachere Möglichkeit, als einmal auf einen Artikel zu klicken und dann per Auswahl des Workflows aus der Liste auf einen Schlag, aber eben nur "ab und zu" mal den gesamten Lagerbestand auf die Platte zu "dumpen" gibt es nicht...

Wegen Ameise und Import per Batch schau mal hier ... https://guide.jtl-software.de/Daten_mit_JTL-Ameise_automatisch_via_FTP_importieren
 

svenyo

Gut bekanntes Mitglied
18. Februar 2016
108
3
@gutberle

Ich wollte gerade die Workflows anlegen, aber als Aktion gibt es bei mir kein "Datei schreiben".
Zur Auswahl stehen nur:
- Amazon Lieferzeit/Bestand setzen
- Ausführen
- Ausgabe
- Email senden
- Werte setzen

Und nu?
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
Das würde bedeuten, dass Du mit einer superalten Wawi arbeitest, denn die Option zum Schreiben von Dateien wurde meines Wissens noch vor der 1.1er Wawi eingeführt. Wenn ich Dein "Registriert seit" hernehme stehen die Chancen gut, dass Du mit der 1.0.9.1 arbeitest, denn die wurde am 4.2.2016 released, die nächste erst im März.

Falls Du wirklich mit einem solch alten Schinken arbeitest, solltest Du das gerade, wie Du selber sagst als "völliger Newbie" lieber noch einmal überdenken, denn Deine Version wäre dann 18 Monate alt und inzwischen ist viel Wasser den Rhein runtergeflossen ... :confused: - Noch dazu wird Dir dann auch niemand hier im Forum für Deine Probleme Hilfestellung geben können, denn das würde bedingen, dass man selbst auch Zugriff auf die alte Kröte hätte. Hat ~man~ aber in der Regel nicht.
 

svenyo

Gut bekanntes Mitglied
18. Februar 2016
108
3
Bislang hat alles super funktioniert. Und wie heißt es so schön: Never change a running system. ;)
Momentan arbeite ich noch mit 1.0.9.2, aber dann werde ich mal zuerst ein Update vornehmen.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
Oder Du wartest noch ein paar Wochen, bis die Wawi 1.3.x released ist, denn die soll keine oder nur minimale neue Features, dafür aber so viele Bugfixes und Stabilitätsverbesserungen wie nur möglich bringen.
Ich würde die Wawi 1.3.x damit als die korrekte Antwort auf Dein ja auch ganz richtiges "Never change a running system" ansehen. Beim Upgrade wird übrigens IMMER erst ein Backup der aktuellen Datenbank gezogen.
Sicherst Du dass, kannst Du sogar wieder zurück zur 1.0.9.2 sofern das notwendig werden würde. Was auch immer nach dem Upgrade an/in der Wawi gearbeitet wurde, wäre damit aber verloren, ist ja klar.
 

svenyo

Gut bekanntes Mitglied
18. Februar 2016
108
3
@gutberle

WaWi-Update wäre geschafft. Beide Workflows habe ich angelegt, aber die Bestandsänderungen werden nur als CSV exportiert, wenn eine Minus-/Plusbuchung über Wareneingang erfolgt. Bei Erstellung eines Auftrags oder auch bei Auslieferung eines Auftrags passiert nichts.

Muss ich irgendetwas anderes einstellen, damit die CSV-Datei erzeugt wird, sobald 1 Stk. eines Artikels auch nur reserviert wird?

Bzw. eigentlich müsste es doch dann helfen, wenn ich noch einen Workflow für Auftrag erstellt anlege, oder? Auch wieder ohne Bedingung und als Aktion Datei anlegen mit obigem Inhalt
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
@svenyo

So etwas wäre nur dann einfach zu lösen, wenn es einen Workflow-Trigger gäbe, der auf die Bestandsänderung eines Artikels reagiert und den gibt es ganz offensichtlich nicht.

Ich bezweifele auch, dass JTL einen Trigger implementieren würde, der allein schon bei der Erzeugung einer Reservierung reagiert. Denkbar wäre sicherlich ein Trigger für bestimmte Schwellenkriterien, also meinetwegen einen Workflow-Trigger, der reagiert, wenn der Artikel seinen Pufferbestand unterschreitet, unter 0 Stück geht, oder vielleicht auch einen, der auf Schwellen in die andere Richtung reagiert, also "wieder lieferbar" und so weiter.

Im Moment müsstest Du Dir dafür einen Workflow bauen, der auf extrem viele Einzel-Bedingungen reagiert, also z.B. auf Artikel "erstellt, geändert, gelöscht" ebenso reagiert, wie auf Auftrag "erstellt, geändert, gelöscht", auf Einkauf "Lieferantenbestellungsposition reduziert" und auch auf Versand "Lieferscheine erstellt, gelöscht, versendet" und im Zweifel habe ich sogar noch einige Bedingungen vergessen... :confused:

Und dann kommt auch noch dazu, dass praktisch alle diese Bedingungen Vorgänge zurückliefern, die gleich mehrere bis viele Artikel betreffen, Du also jedes Mal entweder für alle Artikel jeweils eine CSV oder zumindest jeweils eine CSV für alle Artikel bekämst. Ob das so zielführend und vor allem hilfreich ist, kann ich nicht sagen ...

Fazit: Das alles heißt natürlich nicht, dass das Ganze damit sinnlos geworden wäre, nur mit automatischen Workflows wirst Du hier in der Summe kein Glück haben. Was Du aber natürlich machen kannst, ist Dir gleich zwei manuelle Workflows anzulegen, einen, der einen CSV mit den Bestandsdaten des aktuell markierten Artikels schreibt und einen, der den aktuell markierten Artikel ignoriert und eine CSV Datei mit den Bestandsdaten aller Artikel schreibt.
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow Auftragssplit bei DHL Export Sendungen mit mehreren Paketen User helfen Usern - Fragen zu JTL-Wawi 0
Workflow FollowUP Angebot JTL-Wawi 1.9 0
Neu E-Mail Vorlage Versandbestätigung per Workflow ausführen, wie? JTL-Workflows - Ideen, Lob und Kritik 0
In Diskussion Brauche Hilfe bei Bestand Email Workflow JTL-Workflows - Ideen, Lob und Kritik 14
In Diskussion Workflow besteht alle Test wird nur nicht ausgeführt JTL-Workflows - Fehler und Bugs 23
Verwiesen an Support Workflow artikel_erstellt wird bei LagerUmbuchung ausgelöst. JTL-Workflows - Fehler und Bugs 1
Neu Workflow Hilfe gesucht, Ersetzten eines Textes User helfen Usern - Fragen zu JTL-Wawi 4
Neu Workflow und Version für Vorhaben Starten mit JTL: Projektabwicklung & Migration 2
Neu Workflow erstellen, einen Wert aus den Stammdaten kopieren in einen anderen User helfen Usern - Fragen zu JTL-Wawi 8
Neu Workflow Artikelnummer durch Lieferantennummer ersetzen User helfen Usern - Fragen zu JTL-Wawi 6
Neu Log bei Workflow Fehler JTL-Workflows - Ideen, Lob und Kritik 0
In Diskussion Rechnungsentwurf per Workflow? JTL-Workflows - Ideen, Lob und Kritik 7
Neu Workflow Fehler User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow der prüft, ob eine Bestellung komplett aus einem bestimmten Lager lieferbar ist. User helfen Usern - Fragen zu JTL-Wawi 7
Neu Custum Workflow - Syntax JTL-Workflows - Ideen, Lob und Kritik 0
In Diskussion Keine Auslieferung nach Zahlungsartänderung über Workflow JTL-Workflows - Fehler und Bugs 4
Zahlungsmodul Workflow JTL-Wawi 1.9 14
Neu Workflow: Mail bei Notiz in Auftrags-Historie User helfen Usern - Fragen zu JTL-Wawi 1
Beantwortet Manueller Workflow lässt sich nicht anlegen (V 1.9.5.2) JTL-Workflows - Fehler und Bugs 13
Neu Hilfe bei Workflow - falsche Steuernummer bei Amazon hinterlegt User helfen Usern - Fragen zu JTL-Wawi 0
In Diskussion Workflow Freiposition JTL-Workflows - Fehler und Bugs 1
In Diskussion Workflow für Liefertag Wareneingang? JTL-Workflows - Ideen, Lob und Kritik 2
Neu Workflow - Wert "Netto-EK" im Auftrag auf 0,00 € setzen für eine bestimmte Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow mit verfügbarem Bestand User helfen Usern - Fragen zu JTL-Wawi 4
Von Workflow lokal gespeicherte Datei direkt wieder löschen lassen JTL-Wawi 1.8 1
Neu Per WMS Workflow API Call ausführen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
In Diskussion Fragen zur Rechnungserstellung via Workflow JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Manueller Workflow zeitgestuert JTL-Workflows - Ideen, Lob und Kritik 20
Neu Workflow Adresse prüfen auf deutsche Kunden eingrenzen Gelöste Themen in diesem Bereich 6
Neu Brauche Hilfe bei einen Workflow in Sachen Versand Eigene Übersichten in der JTL-Wawi 6
Neu Permanenten Excel-Log über Workflow führen User helfen Usern - Fragen zu JTL-Wawi 2
Workflow DotLiquid: KomplettLieferbarAusLager zeigt FFN Lager an obwohl nicht komplett lieferbar aus diesem Lager JTL-Wawi 1.9 1
In Diskussion Workflow für eBays neues "Kaufabbruch"-Feature JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Workflow zum Drucken von Shipping Labels JTL-Workflows - Ideen, Lob und Kritik 3
Neu Workflow für Warenpost nur wenn bestimmte Artikel in Bestellung User helfen Usern - Fragen zu JTL-Wawi 1
Workflow - Vorbestellung ausschließen von Storno JTL-Wawi 1.9 1
Neu Manueller Workflow/ automatischer Workflow Gelöste Themen in diesem Bereich 8
Rechnungsadresse Email Workflow Bedingungen für Rechnung erstellt fehlt JTL-Wawi 1.8 0
In Diskussion Flexible Eingabemaske um Werte/ Parameter an Workflow zu übergeben JTL-Workflows - Ideen, Lob und Kritik 5
In Diskussion Idee für Workflow - Lagerbewertung zum Monatsende an das Steuerbüro JTL-Workflows - Ideen, Lob und Kritik 3
Neu EXTF csv Datev als eigenen Export, statt Ameise? Einzeldifferenzbesteuert! User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL-Ameise -Export - Alle Lieferanten funktioniert nicht JTL-Ameise - Fehler und Bugs 1
Neu JTL-Ameise -Export - Alle Lieferanten funktioniert nicht JTL-Ameise - Fehler und Bugs 0
Neu Meta, Facebook Datenfeed Export-URL gibt Formatfehler Betrieb / Pflege von JTL-Shop 0
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Warum ist der Ameisen Export so langsam? JTL-Ameise - Ideen, Lob und Kritik 22
Neu Vorlage Export Datei JTL Ameise - Eigene Exporte 10
Neu Export von Buchungsdaten zur Differenzbesteuerung als CSV Datei Schnittstellen Import / Export 0
Neu JTL Search: Full Export mit Cron ??? JTL-Search 1
Neu Sendungsnummer oder Tracking-Link auf Export-Vorlage anzeigen Gelöste Themen in diesem Bereich 6

Ähnliche Themen