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 ...
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