SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Email zur Fristenkontrolle

Unbeantwortet Dieser Beitrag hat 26 Antworten

Ohne Rang
150 Beiträge
CptGreenwood erstellt 14 Aug. 2013 09:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

wir haben für unsere recht einfache SP2010-Dokumentablage eine neue Anforderung von unseren Anwendern und bevor ich die Kiste "Finde jemand, der für SharePoint programmieren kann" aufmache, wollte ich fragen, ob sich das vielleicht auch mit Bordmitteln realisieren lässt:

Eine Liste "Verträge" hat ein Datumsfeld "Frist". Unsere Anwender möchten gerne vom SharePoint eine Erinnerungsmail geschickt bekommen, wenn die Zeit bis zur Frist 2 Wochen unterschreitet und eine weitere, wenn sie 1 Woche unterschreitet.

Lässt sich das mit dem Designer und Workflows realisieren?

Viele Grüße,
Ralf

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2013 09:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn sich die Fristen nicht dauernd ändern, kann man das problemlos mit einem SharePoint Designer Workflow umsetzen.

Prinzip:
Workflow startet für neue Dokumente automatisch und wartet dann, bis im Feld Frist ein Datum steht.
Workflow wartet bis zwei Wochen vor diesem Datum und verschickt eine Mail.
Workflow wartet nochmal sieben Tage und verschickt eine Mail.
Workflow wartet bis Fristablauf und ...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 14 Aug. 2013 09:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Als Ergänzug (je nachdem welche SharePoint Version ihr einsetzt).

Eine Ablaufrichtlinie definieren, die einen normalen SharePoint Designer Workflow startet (Email versenden...). Es aus meiner Sicht sauberer, als den Workflow anzuhalten, denn was passiert wenn sich die Frist endet (z.B. nach vorne verschiebt. Das bekommt der angehaltene Workflow dann nicht so wirklich mit).

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 14 Aug. 2013 11:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für eure Antworten. Hinweis: Habe noch nie einen Workflow erstellt (Noob).

Habe mich gerade an den Designer gesetzt und einen Listenworkflow für die Vertragsliste hinzugefügt. Im Editor habe ich zunächst die Bedingung "Wenn ein Elementfeld einen bestimmten Wert hat" hinzugefügt, als Element das Fristfeld der Vertragsliste ausgewählt, als Operator "kleiner oder gleich" und wollte dann als Wert mal "[Heute]+14" angeben, um die 14-Tages-Frist zu spezifizieren. Allerdings nimmt er diese Angabe nicht. Was mache ich (schon im ersten Schritt :-( ) falsch?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2013 11:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du müßtest eine Datumsvariable anlegen und die mit der Aktion "Workflowvariable festlegen" erstmal auf [Heute] setzen. Dann mit der Aktion Datumsberechnung 14 Tage abziehen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 14 Aug. 2013 12:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das mit der Datumsvariable hat geklappt. Ich habe eine lokale Variable "VarHeute" angelegt, ihr das aktuelle Datum zugeordnet und zusätzlich noch eine Variable "VarGrenze" definiert, die dann das Ergebnis von VarHeute + 14 bekommen soll. Dann geht es aber schon los: Ich finde keine passende Aktion, um zu VarHeute die 14 Tage hinzu zu addieren. Ich habe mehrere Aktionen gefunden, die passen könnten (Berechnung ausführen, Zeit zu Datum hinzufügen, Intervall zwischen Daten) aber bei deren Parameter "Wert" kann ich nicht auf VarHeute zugreifen. Tippe ich VarHeute ein, verschwindet es nach ENTER wieder, klicke ich auf die drei Punkte kann ich ein Datum vorgeben oder das aktuelle Datum nehmen, klicke ich auf "fx", kann ich nur die Datenfelder meiner Liste auswählen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2013 13:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

"Zeit zu Datum hinzufügen" ist das Richtige. Um an eine Variable zu kommen, klickt man auf den Button mit den drei Punkten (oder je nach Kontext auf das Formelsymbol). Im Dialog ist standardmäßig oben das "Aktuelle Element" ausgewählt und man kann auf dessen Felder zugreifen. Ändere "Aktuelles Element" einfach in "Workflowdaten" und Du kannst auf die Variablen zugreifen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 14 Aug. 2013 14:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, sieht erstmal gut aus. Rechnung wird ausgeführt, dann habe ich ein "Wenn Frist kleiner oder gleich berechnete Variable schicke Email".

Die Frage, die sich mir jetzt stellt: Wenn ich den Workflow speichere und veröffentliche, wann wird er denn ausgeführt? Ich habe ja noch gar kein Ereignis angegeben, wann das Ding starten soll. Prinzipiell wäre es optimal, wenn er in regelmäßigen Abständen (täglich einmal) alle Verträge prüft und wenn nötig die Mail verschickt. Ich geb's zu, die erste Antwort mit dem Workflow anhalten und irgendwann weiterführen habe ich nicht ganz durchblickt. Ich sehe das wahrscheinlich durch die Perspektive eines Windows-Tasks, den ich täglich um die gleiche Uhrzeit ausführe...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2013 14:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Du den zuvor gespeicherten Workflow wieder öffnest, landest Du zuerst auf einer Seite, wo Du rechts die Startbedingungen angeben kannst: automatisch bei Neuanlage, automatisch bei jeder Änderung oder manuell starten.

Regelmäßig starten geht nicht - zumindest nicht ohne Programmierung.

Ich habe in meiner ersten Antwort ja schon geschrieben "wenn sich das Datum nicht dauernd ändert" und Christian hat nochmal explizit auf genau dieses Problem hingeqwiesen (mit der Möglichkeit Ablaufrichtlinien zu verwenden).

Das mit dem Workflow anhalten geht so: es gibt eine Aktion "Anhalten bis". Damit kannst Du den Workflow warten lassen bis Fristende (oder 14 Tage vorher). Er bekommt es aber nicht mit, wenn sich die Frist in der Zwischenzeit geändert hat!

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 14 Aug. 2013 15:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Gute: Die Frist ändert sich nicht, nachdem sie einmal eingetragen worden ist. Allerdings könnte es durchaus sein, dass ein Vertrag keine Frist hat (ist ein optionales Feld) oder dass die Frist nicht beim Anlegen des Vertrags eingetragen wird, sondern erst später.

Zu deinem Vorschlag:
Welche Startart wähle ich aus? Wahrscheinlich beim Ändern des Vertrags... (Beinhaltet das auch das Anlegen?)
Dann halte ich den Workflow an, bis zum errechneten Datum. (Habe ich dann für jeden angelegten Vertrag einen "wartenden" Workflow?)
Muss der Workflow dann eigentlich die "Wenn"-Bedingung enthalten? Wenn das Datum erreicht ist, d.h. das Anhalten aufhört, ist die Bedingung doch sowieso erfüllt.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Aug. 2013 15:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Haber ich doch alles oben beschrieben ;-)

WF startet automatisch bei Neuanlage. WF wartet, bis das Feld Frist einen Wert enthält. WF wartet bis Frist erreicht ist. Usw.

[quote user="CptGreenwood"](Beinhaltet das auch das Anlegen?)[/quote]

Ändern beinhaltet auch die Neuanlage (bei Dokumenten), aber das halte ich hier nicht für sinnvoll.

[quote user="CptGreenwood"] (Habe ich dann für jeden angelegten Vertrag einen "wartenden" Workflow?)[/quote]

Ja, aber das belastet das System überhaupt nicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 15 Aug. 2013 11:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich beginne es zu durchblicken.

Da von Anfang an das Frist-Feld nicht unbedingt einen Wert haben muss, habe ich zu Beginn des Workflows eine "Auf Feld ist gleich Wert warten"-Aktion gesetzt. Hier will ich so lange warten, bis das Frsit-Feld nicht mehr leer ist. Das Feld konnte ich auswählen, als Operator habe ich "ist ungleich" gewählt aber als "Wert" schaffe ich es nicht "Leer", "Null" oder ähnliches einzugeben. Wie mache ich das denn?

--> Danke im Voraus für deine Geduld... :-)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Aug. 2013 11:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="CptGreenwood"]Ich beginne es zu durchblicken.[/quote]

Schön. Und Du siehst wahrscheinlich auch, daß es gar nicht so schwer ist :-)

[quote user="CptGreenwood"] als "Wert" schaffe ich es nicht "Leer", "Null" oder ähnliches einzugeben[/quote]

Das ist ein Standardproblem in den Workflows. Einfach eine weitere String-Variable anlegen und ihr niemals einen Wert zuweisen. Man kann dann diese Variable immer für Leer-Abfragen benutzen. Und auch wenn man z.B. ein Feld auf leer setzen will.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 6 Sept. 2013 08:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

hat eine Zeit gedauert, bis ich mich wieder mit dem Problem beschäftigen konnte. Ich hatte aber nach deinem letzten Post einen Vetrag angelegt dessen Frist am 3.9. ablaufen sollte. Somit hätte ich 14 Tage vorher und 7 Tage vorher eine Mail bekommen müssen, was aber leider nicht geschehen ist.

Mein Workflow sieht nun so aus:

  • Auf Frist ist ungleich Variable:Leer warten
  • dann -14 Tage zu Aktuelles Element:Frist hinzufügen (Ausgabe in Variable: VarGrenze)
  • dann -7 Tage zu Aktuelles Element:Frist hinzufügen (Ausgabe in Variable: VarGrenze2)
  • dann Bis Variable: VarGrenze anhalten
  • dann E.Mail an ......
  • dann Bis Variable: VarGrenze2 anhalten
  • dann E.Mail an ......

Ist denn da vom Prinzip her noch etwas falsch? Habe ich die Variablen korrekt eingetragen? (Mir ist aufgefallen, dass in der ersten Anweisung nur "Frist" steht, darunter dann aber "Aktuelles Element:Frist") Ist bei Workflows eine Art Debugging möglich? Ich weiß nun garnicht, ob der Workflow überhaupt losgelaufen ist und woran es hing, dass keine Mails verschickt wurden.

Ich habe den Workflow nach Fertigstellung gespeichert und veröffentlicht. War das richtig? Muss ich ihn separat irgendwo aktivieren?

Viele Grüße,
Ralf

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Sept. 2013 09:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was Du schreibst ist alles korrekt und der Workflow sieht auch gut aus. Debugging gibt es leider nicht, aber man kann sich mit "Für die Verlaufsliste protokollieren" behelfen. Baue einfach zwischen alle Aktionen (und am Anfang und Ende) eine solche Aktion ein. Du kannst Dir damit auch Variableninhalte ausgeben lassen. Dadurch siehst Du dann im Workflowverlauf, was wirklich passiert und wo Dein Workflow gerade steht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 6 Sept. 2013 09:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dass du schon mal keinen offensichtlichen Fehler siehst, ist ja schonmal positiv. Ich habe die Protokollierungszeilen hinzu gefügt und erstelle nochmal einen Testvertrag mit entsprechendem Fristdatum. Wo kann ich denn das Protokoll des Workflows einsehen?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Sept. 2013 09:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="CptGreenwood"]Wo kann ich denn das Protokoll des Workflows einsehen?[/quote]

Normalerweise hängt Dir SharePoint automatisch eine neue Spalte mit dem Namen des Workflows in die Standardansicht der Liste. Dort wird Dir der Status des Workflows angezeigt (In Bearbeitung, Abgeschlossen, Fehler usw.) und wenn man draufklickt, kommt man direkt ins Protokoll. Sonst kannst Du auch ein Element markieren und aus dem Kontextmenü oder dem Ribbon auf "Workflows" klicken. Du siehst alle bereits gelaufenen und auch noch laufende Workflows. Man kann ebenfalls draufklicken und gelangt dann ins Protokoll.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 6 Sept. 2013 10:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

OK, danke! Dann lege ich mal los...

Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 10 Sept. 2013 08:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

das sieht nun schon fast gut aus. Der Grund, warum kein Mail versendet wurde war die Tatsache, dass ich "ausgehende Emails" in der Zentraladmin noch nicht konfiguriert hatte. Nachdem ich das erledigt hatte, wurden die Mails auch korrekt versendet.

Ein Problem gibt es allerdings noch: Der Workflow funktioniert nur, wenn das Frist-Datum bereits beim Anlegen des neuen Vertrags gesetzt wurde. Im anderen Fall, wenn das Datum noch leer ist, sollte der Workflow ja anhalten, bis das Datum nicht mehr leer ist, dann die -14 und -7 Tage berechnen, us.w. Das tut er nicht. Wird ein Vertrag ohne Fristdatum angelegt, läuft der Workflow trotzdem weiter, berechnet zwei Datumsangaben (01.01.1900) und wartet dann auf das Datum. Die Anweisung "Warten bis Frist ungleich Variable: Leer" scheint nicht zu greifen. Ich habe die Variable "Leer", wie du es beschrieben hast, angelegt und nie mit einem Wert gefüllt. Habe es sowohl mit einer String- als auch mit einer Datums-Variable probiert, geht beides nicht. Hast du dazu eine Idee?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Sept. 2013 08:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Lasse Dir einfach in die History das vermeintlich leere Feld ausgeben, damit Du siehst was drinsteht. Offenbar wird es nicht als leer angesehen und enthält ein Datum wie den 01.01.1900. Setze dann einfach als Bedingung ein "Warten bis Datum größer 01.01.1900" (oder auch bis Datum größer heute).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
150 Beiträge
CptGreenwood Als Antwort am 12 Sept. 2013 11:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

BITTE NICHT BEACHTEN, PROBLEM IST GELÖST, KANN POST LEIDER NICHT LÖSCHEN...

 

Ich bin jetzt in ein gruseliges Problem hineingelaufen. Nach deinem letzten Tip hat ein Test einwandfrei funktioniert, das war ersteinmal super. Heute Morgen wollte ich einen neuen Vertrag in die Liste einfügen, kam auch ganz normal auf das Eingabeformular, füllte es aus und beim Abspeichern bekam ich folgende Fehlermeldung im Browser:

Fehler beim Ausführen des Befehls zum Einfügen durch das Datenquellen-Steuerelement. adfee55a-c0ce-4a3d-b45f-d8ca570d63c0

Webpart-Wartungsseite: Falls Sie über die entsprechende Berechtigung verfügen, können Sie diese Webseite verwenden, um vorübergehend Webparts zu schließen oder die Personalisierung zu entfernen. Wenden Sie sich an Ihren Websiteadministrator, um weitere Informationen zu erhalten.

Führen Sie die Problembehandlung mit Microsoft SharePoint Foundation aus.

Korrelations-ID: adfee55a-c0ce-4a3d-b45f-d8ca570d63c0

Datum und Uhrzeit: 12.09.2013 11:12:42

Microsoft schreibt zu dem Problem:

Dieser Fehler tritt auf, wenn Sie versuchen, einen Workflow zu starten.

Ursache

  • Sie zeigen gerade die Startseite eines Workflows an, der manuell im Browser von Office SharePoint Designer 2007 gestartet wird (z. B. durch Drücken von F12), und Sie versuchen, den Workflow auf dieser Startseite zu starten. Die Startseite eines Workflows ist einfach eine Vorschau der Darstellung der Seite im Browser. Diese Seite weist in der URL nicht die erforderlichen Parameter zum Starten des Workflows auf.
  • Ein anderer Benutzer versucht gleichzeitig, denselben Workflow zu starten.

Lösung

  • Starten Sie den Workflow über die Website im Browser.
  • Starten Sie den Workflow erneut.

Ich vermutete also ein Problem mit meinem neuen Workflow und deaktivierte den Start bei Neuanlage eines Listenelements. Keine Besserung. Danach löschte ich den Workflow komplett. Keine Besserung. In meiner Hilflosigkeit führte ich dann auch einen IIS-Reset durch. Auch keine Besserung.

Jetzt bin ich am Ende mit meinem Latein. Kennst du die Fehlermeldung? Hast du eine Idee?

Ohne Rang
31 Beiträge
dapa5077 Als Antwort am 28 März 2014 13:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

wie kann man die Ablaufrichtlinie definieren? Geht das in der Foundation? :-)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 28 März 2014 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="dapa5077"]wie kann man die Ablaufrichtlinie definieren? Geht das in der Foundation?[/quote]

Nein, in Foundation gibt es keine Informationsverwaltungsrichtlinien.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
dapa5077 Als Antwort am 31 März 2014 13:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Andi,

wenn ich den Workflow ändere - z.B. die Frist - dann muss doch der Workflow nochmals neustarten und das "Anhaltedatum" überschreiben?

Somit könntest ich das in der Foundation auch lösen?

Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 31 März 2014 14:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="dapa5077"]dann muss doch der Workflow nochmals neustarten [/quote]

Genau das bekommt man aber nicht wirklich automatisiert. Man muß manuell den Workflow abbrechen und neu starten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
dapa5077 Als Antwort am 31 März 2014 14:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Okay, echt schade - ich dachte, da muss meine nur eine Workflowvariabel zurückgesetzt werden.

In diesem Fall macht es auch keinen Sinn, den Workflow bei Änderungen zu starten, oder?

Das Problem besteht dann bei allen Workflows, die man anhält? Wie kann man das umgehen? Nur mit der Richtlinie, die es bei der großen Version gibt?

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 31 März 2014 14:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="dapa5077"]Das Problem besteht dann bei allen Workflows, die man anhält? Wie kann man das umgehen?[/quote]

Ja, das ist so und man kann es nicht umgehen. Einen Workflow einfach bei allen Änderungen neu zu starten, ist auch wenig sinnvoll. Erstens wartet der dann nicht auf einen bestimmten Zeitpunkt und zweitens springt er wirklich bei jeder Änderung an und Du hast im Workflow keine Möglichkeit herauszufinden welche Änderung das war.

Viele Grüße
Andi
af @ evocom de
Blog