Gelöst Tagesbericht per Workflow

LFU

Gut bekanntes Mitglied
26. Januar 2017
152
17
Düsseldorf
Ich möchte gerne einen Tagesbericht der erfolgten Sendungen als Datei per Workflow ausgeben. Irgend wie bekomme ich die Bedingungen nicht so hin, dass ein Gesamtbericht vom aktuellen Tag Zeitgesteuert ausgegeben wird. Mich beschleicht der Gedanke, dass scheint so generell nicht zu gehen. Oder habe ich etwas übersehen und es gibt doch eine Chance?
 

maydo

Sehr aktives Mitglied
28. März 2011
2.133
85
DE-Fulda
Ich möchte gerne einen Tagesbericht der erfolgten Sendungen als Datei per Workflow ausgeben. Irgend wie bekomme ich die Bedingungen nicht so hin, dass ein Gesamtbericht vom aktuellen Tag Zeitgesteuert ausgegeben wird. Mich beschleicht der Gedanke, dass scheint so generell nicht zu gehen. Oder habe ich etwas übersehen und es gibt doch eine Chance?

einen generellen "cron" Trigger gibt es derzeit nicht.

Was nimmst du als auslösendes Ereignis ?

Eine Möglichkeit wäre, einen manuellen Workflow erstellen und diesen über wawi_extern.dll per cron antriggern.
 

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
Hi @LFU,

erst einmal hat @maydo Recht, was Du willst ist eine Art "cron" basierten, automatisch zu einer bestimmten Zeit aufrufbaren Trigger und den gibt es aktuell nicht. Grundsätzlich geht aber schon was, nur die automatische Auslösung musst Du Dir klemmen.

Den Vergleich, ob ein bestimmter Lieferschein z.B. Heute erstellt wurde, geht über eine "Erweiterte Eigenschaft" in den Workflows. Die findest Du ganz unten in der Liste der Bedingungs-Variablen, Du würdest Dir dort eine neue Erweiterte Eigenschaft anlegen, ihr einen "sprechenden" Namen geben und folgenden Code in das Fenster eingeben ...
Code:
{% assign DatumVersand = Vorgang.Erstelldatum | Date:'ddMMyyyy' -%}
{% assign DatumHeute = Datum.Jetzt | Date:'ddMMyyyy' -%}
{% if DatumVersand == DatumHeute -%}
1
{% else -%}
0
{% endif -%}

Nach Bestätigung mit OK, kannst Du dann im Bedingungs-Auswahlfenster unter dem Punkt "Erweiterte Eigenschaften" Deinen sprechenden Namen auswählen und den Rückgabewert dann mit dem Operator "Gleich" auf den Wert "1" prüfen und dann unten eine Aktion auslösen, weil dieser Lieferschein von Heute stammt.

Das ist aber ziemlich suboptimal, denn das musst Du für alle Lieferscheine von Hand oder nach Markieren aller Lieferschein für alle gemeinsam ausführen und der Workflow wird dann im Zweifel für ALLE Deine Versandaktivitäten bis zurück zum Sankt Nimmerleinstag separat ausgeführt. - Zeit für eine Kaffeepause ... :confused:

Eleganter wird es, wenn Du zwar wie oben eine "Erweiterte Eigenschaft" anlegst, aber statt dem Code von oben die Arbeit eine SQL Abfrage machen läßt, die direkt in der Datenbank aus der Versandliste diejenigen raussucht, die von Heute stammen und sie mitsamt ein paar nützlichen Infos in einer Tabelle zurückliefert. Dann muss man nur noch in einer Schleife über die Tabellenzeilen laufen und die Infos ausgeben. Das sähe dann so aus...
Code:
{% capture query -%}
SELECT t2.cLieferscheinNr AS 'LieferscheinNr', t4.cKundenNr AS 'KundenNr', t3.cBestellNr AS 'BestellNr',
        CASE WHEN t1.cIdentCode = '' THEN '<Kein IdentCode>' END AS 'IdentCode',
        CASE WHEN t1.cHinweis = '' THEN '<Kein Hinweis>' END AS 'Hinweis'
        FROM tVersand AS t1
    INNER JOIN tLieferschein AS t2 ON t2.kLieferschein=t1.kLieferschein
    INNER JOIN tBestellung AS t3 ON t3.kBestellung=t2.kBestellung
    INNER JOIN tkunde AS t4 ON t4.kKunde=t3.tKunde_kKunde
    WHERE CONVERT(DATE,t1.dVersendet)=CONVERT(DATE,GETDATE())
{% endcapture -%}
{% assign VersandListe = query | DirectQuery -%}
LieferscheinNr;KundenNr;BestellNr;IdentCode;Hinweis
{% for item in VersandListe.Daten -%}
{{ item.LieferscheinNr }};{{ item.KundenNr }};{{ item.BestellNr }};{{ item.IdentCode }};{{ item.Hinweis }}
{% endfor -%}

In der Summe bräuchtest Du also eine Workflow-Bedingung, die prüft, ob Heute zumindest ein Versand stattgefunden hat und eine Aktion, die dann und nur dann die Versanaktivitäten sammelt und übergibt/ausgibt, hier also Schritt für Schritt ...

1. Workflow Bedingung anlegen, neue "Erweiterte Eigenschaft" anlegen, "Anzahl Heute Versendet" nennen und folgenden Code reinkopieren ...
Code:
{% assign result = 'SELECT COUNT(dVersendet) FROM tVersand WHERE CONVERT(DATE,dVersendet)=CONVERT(DATE,GETDATE())' | DirectQueryScalar -%}
{{ result }}
2. Eine Ebene höher als Vergleichsoperator "Ungleich" und als Wert "0" setzen. Damit wird die Workflow-Aktion nur dann ausgelöst, wenn "nicht kein" Versand stattgefunden hat.
>> Diesen umständlichen Vergleich wähle ich, weil die Wawi aktuell noch keine echten "größer als" und "kleiner als" Zahlenvergleiche macht, sondern immer nur String-Vergleiche. Das ändert sich bald und dann testet man auf "Größer als" und "0".
3. Workflow Aktion anlegen, als Aktion z.B. Email schreiben, An, Betreff, etc. ist alles Deins, aber bei "Text" klickst Du auf den "..." Button und kommst wieder in eine Art "Erweiterte Eigenschaft".
4. Dort kopierst Du dann den längeren Code von oben rein.
5. Ok, ok klicken, fertsch!

Da es aber auch nach dieser Odysee ja immer noch keinen automatisch zeitgetriggerten Workflow gibt, löst Du diesen Versandaktivitäten Workflow aus, indem Du abends einmal in Deine Versandliste gehst, irgendeinen Lieferschein anklickst, damit die Box mit den manuellen Workflows rechts unter der Liste aktiv wird, wählst Deinen "Heute Versendet" Workflow aus und voilá "You have mail !" ... :)

Gruß,
Ingmar
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.243
1.508
Hallo @LFU
Je nach dem was du genau ausgegeben haben möchtest könnte man es auch recht simpel lösen:

Du machst unter Lieferschein versendet einen zeitversetzten Workflow um 1 Minute der die von dir gewählten Daten in eine Datei schreibt.
Als Dateiname lässt du das heutige Datum setzen.
Zum Ende wählst du aus: "an vorhandene Datei anhängen"!!!

Was passiert dadurch?
- sobald der erste Lieferschein des Tages versendet wird, erstellt der Workflow eine Datei mit dem heutigen Datum und den von dir gewünschten Daten.
- nun kommt der nächste Lieferschein und der Workflow erkennt, dass es für heut schon eine Datei gibt.
- er erweitert nun die vorhandene Datei um die Daten von dem zweiten Lieferschein.
- dies passiert bis 23:59:59 Uhr - danach erkennt der Workflow dass es für das neue Datum noch keine Datei gibt und erstellt wieder eine und fängt von neuem an.

Somit hast du von jedem Tag die Infos gesammelt in einer Datei inkl. Datum des Tages als die Lieferscheine versendet wurden.
 
  • Gefällt mir
Reaktionen: maydo und gutberle

gutberle

Sehr aktives Mitglied
29. März 2011
1.292
395
Super Idee, Rico! - @LFU: Falls Du bestimmte Variablen nicht im Baum der verfügbaren Variablen findest, kannst Du immer noch auf eine SQL Abfrage ausweichen, um die nötigen Daten zusammenzubekommen. Ich habe jetzt beim Durchschauen des Baums zum Beispiel keinen IdentCode gefunden, kann aber auch sein, dass ich einfach nur blind bin.

Aber falls so etwas fehlt, kann man sich das ja leicht in der DB besorgen. Der für Rico's Vorschlag modifizierte SQL Code von oben sähe zum Beispiel so aus...
Code:
{% capture query -%}
SELECT t3.cBestellNr AS 'BestellNr', t2.cLieferscheinNr AS 'LieferscheinNr', t4.cKundenNr AS 'KundenNr',
        CASE WHEN t1.cIdentCode = '' THEN '<Kein IdentCode>' END AS 'IdentCode',
        CASE WHEN t1.cHinweis = '' THEN '<Kein Hinweis>' END AS 'Hinweis'
        FROM tVersand AS t1
    INNER JOIN tLieferschein AS t2 ON t2.kLieferschein=t1.kLieferschein
    INNER JOIN tBestellung AS t3 ON t3.kBestellung=t2.kBestellung
    INNER JOIN tkunde AS t4 ON t4.kKunde=t3.tKunde_kKunde
    WHERE t1.kLieferschein={{ Vorgang.InterneLieferscheinNummer }}
{% endcapture -%}
{% assign VersandListe = query | DirectQuery -%}
{% for item in VersandListe.Daten -%}
{{ item.LieferscheinNr }};{{ item.KundenNr }};{{ item.BestellNr }};{{ item.IdentCode }};{{ item.Hinweis }}
{% endfor -%}
... es werden also nicht mehr die Infos für alle heutigen Lieferungen, sondern nur die Infos für den an den Workflow übergebenen Liefervorgang geholt und als Text aufbereitet.
Die Formatierung ist dann natürlich Deine Sache, aber der Text würde dann nach Rico's Anleitung immer hinten an die bestehende Tagesdatei angehängt werden.
 

maydo

Sehr aktives Mitglied
28. März 2011
2.133
85
DE-Fulda
Hallo @LFU
Je nach dem was du genau ausgegeben haben möchtest könnte man es auch recht simpel lösen:

Du machst unter Lieferschein versendet einen zeitversetzten Workflow um 1 Minute der die von dir gewählten Daten in eine Datei schreibt.
Als Dateiname lässt du das heutige Datum setzen.
Zum Ende wählst du aus: "an vorhandene Datei anhängen"!!!

Was passiert dadurch?
- sobald der erste Lieferschein des Tages versendet wird, erstellt der Workflow eine Datei mit dem heutigen Datum und den von dir gewünschten Daten.
- nun kommt der nächste Lieferschein und der Workflow erkennt, dass es für heut schon eine Datei gibt.
- er erweitert nun die vorhandene Datei um die Daten von dem zweiten Lieferschein.
- dies passiert bis 23:59:59 Uhr - danach erkennt der Workflow dass es für das neue Datum noch keine Datei gibt und erstellt wieder eine und fängt von neuem an.

Somit hast du von jedem Tag die Infos gesammelt in einer Datei inkl. Datum des Tages als die Lieferscheine versendet wurden.


sehr gute Idee :)
 

LFU

Gut bekanntes Mitglied
26. Januar 2017
152
17
Düsseldorf
Vielen Dank für die vielen guten Ideen. Ich habe das Problem jetzt über einen Workflow gelöst:
Versand > Lieferscheine Versendet
Bedingung > Versendet gleich true > Auftrag.Kunde.Kunde.Adrtesse.Nachnahme enthält "XXXX"
Aktion > Datei Schreiben > Dateiname Datum > an Vorhandene Datei anhängen

das funktioniert so super
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu shopapotheke per Anbindung eBay-Anbindung - Fehler und Bugs 1
Neu Umlagerung per Ameisen-Import JTL-Wawi - Fehler und Bugs 1
Neu In einen Portlet-Container im Frontend per Ajax Datennachladen (weitere anzeigen) Technische Fragen zu Plugins und Templates 1
Neu eBay Plus Angebote per Ameise steuerbar ? Eigene Übersichten in der JTL-Wawi 6
Neu Zugang zu Kategorien nur per Kennworteingabe Plugins für JTL-Shop 3
Neu Eigene Felder (Kunde) in csv-Datei per Ausgabe (Auftrag oder Lieferschein) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Lieferadresse / Rechnungsadresse im Auftrag per Doppelklick wählbar machen JTL-Wawi - Ideen, Lob und Kritik 0
Datenbank-Abfrage per SQL nach Lagermenge pro Artikel & Warenbereich (WMSLager) JTL-Wawi 1.8 1
Neu Lieferantenbestellung als CSV mit selbst festgelegten Spalten per Mail senden Arbeitsabläufe in JTL-Wawi 1
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Neu Weiterleitungen direkt per Datenbank einfügen aufgrund Größe bzw. Anzahl? Betrieb / Pflege von JTL-Shop 9
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Variationen per Ameise umbenennen JTL-Wawi 1.8 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Neu Ist es möglich per Ameise Kunden zu löschen? Arbeitsabläufe in JTL-Wawi 2
Neu LS-Pos Kundenrechnung per Email Fragen rund um LS-POS 1
Neu Warenkorb per Link teilen Allgemeine Fragen zu JTL-Shop 6
Ausgabe per E-Mail geht plötzlich nicht mehr, Testmail aus Wawi aber schon JTL-Wawi 1.6 22
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Datenbankebene per SQL löschen Eigene Übersichten in der JTL-Wawi 6
Neu Consent Status per Smarty Var abfragen Technische Fragen zu Plugins und Templates 2
Nur noch sporadischer Versand per Mail von Rechnungen, Lieferscheinen und Mahnungen nach Update auf Version 1.8. JTL-Wawi 1.8 0
Neu Kinderartikel per Ameise vom Vater lösen Arbeitsabläufe in JTL-Wawi 6
Neu Probleme bei Aufgabenplaner (Export-Manger) per Cronjob JTL-Shop - Fehler und Bugs 1
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu per Workflow: WhatsApp oder ähnliches senden User helfen Usern - Fragen zu JTL-Wawi 0
Preise per Artikel Funktionsattribut bei einzelnen Artikeln ausblenden Einrichtung JTL-Shop5 0
Neu Vorschlag: Per Workflow Tickets erstellen Servicedesk (Beta) 1
Label per Import bedienen JTL-Wawi 1.8 0
Neu Artikeländerung per Artikelnummer mit Wildcard? JTL-Ameise - Ideen, Lob und Kritik 1
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 0
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 5
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 8
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
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
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
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

Ähnliche Themen