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.




Lokale Variabeln im Designer

Unbeantwortet Dieser Beitrag hat 9 Antworten

Ohne Rang
31 Beiträge
dapa5077 erstellt 12 März 2014 15:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

habe gerade einen simplen Workflow geschrieben, der bestimmte Personen beim Erstellen eines Element informiert.

Kurz zum Ablauf:

  • Element wird erstellt
  • Info an Person
  • Workflowvariabel "MailVersand" (bool) = Yes festgelegt

Nun findet eine Änderung statt und es soll NICHT nochmals eine Mail versandt werden, daher steht eine Condition:

  • "Wenn Variabel: MailVersand gleich No"

soll er in den weiteren Workflowschritten springen. Er springt aber trotzdem rein und verschickt die Mails trotzdem, obwohl beim Letzten Durchlauf die Variabel am Ende auf "Yes" gesetzt wurde.

Hat jemand eine Idee, an was das liegen könnte, oder wie ich es besser machen könnte?

Grüße

dapa

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 März 2014 17:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Verstehe ich das richtig, daß derselbe Workflow bei später bei einer Änderung neu gestartet wird? Dann klappt das nämlich nicht. Das ist eine neue Workflowinstanz, die keinerlei Informationen über vorherige Zustände hat.

Entweder Du speicherst das in einem (versteckten) Feld beim Element oder Du arbeitest nur mit einer Workflowinstanz. Der Workflow muß dann nach dem Versand der ersten Mail einfach warten. Entweder eine bestimmte Zeit oder bis zu einem festen Datum oder bis ein bestimmtes Feld einen bestimmten Wert enthält oder ...

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

Hi Andi,

also der Workflow startet automatisch, sobald etwas geändert wurde - genau!

Könnte ich das nicht anhand des Workflow-Status realisieren? In den Step, in dem die Mail verschickt wird, wird nämlich ein die Variabel des Workflowstatus auf "Gesendet" gesetzt. Nach dieser könnte ich doch arbeiten?

z.B. dass der Workflow nur in diesem Step fließt, wenn die Workflow-Variabel != 'Gesendet' ist?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 März 2014 08:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wie gesagt: die Variable kannst Du nicht verwenden, weil sie für jede neue Workflowinstanz auch neu intialisiert wird. Beim Status dürfte es ähnlich sein: ich glaube er wird beim nächsten Start auch wieder auf In progress gesetzt, aber Du kannst es ja versuchen. Ansonsten siehe meine Antworten oben.

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

Klar, hast recht! Die Variabel wird wieder auf "In Bearbeitung" gesetzt.

Bevor ich nun ein verstecktes Feld erstellte - theoretisch würde es doch funktionieren, wenn ich bei diesem Step - sobald eine Mail verschickt worden ist - in die Workflow-Verlaufsliste "Wurde versendet" protokolliere und dann als Condition, bevor ich in diesem Step gehe, sage, dass wenn ein Eintrag mit "...wurde versendet" drin steht, er da gar nicht reinspringt? Wenn ja, wäre das für einige Workflows eine Lösung! :-)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 März 2014 09:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Du es schaffst, diesen Eintrag im Workflowverlauf später wieder auszulesen. Ich wüßte nicht, wie das gehen könnte...

Schreibe es einfach in ein Feld der Liste und gut ist. Noch besser fände ich den Weg, daß der Workflow gar nicht erst neu startet, sondern die ganze Zeit am Leben bleibt. Aber das erfordert wahrscheinlich etwas mehr Konzeptänderung und Umbau.

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

Ich glaub auch nicht - es wird nämlich, sobald der Workflow neu gestartet wird, die History geleert. Ist ja normal oder?

Mit dem Feld funktioniert es einwandfrei.

Wie meinst du, dass der Workflow wartet? Mit welchen Funktionen kann man hier arbeiten?

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

[quote user="dapa5077"]sobald der Workflow neu gestartet wird, die History geleert[/quote]

Das nicht, aber jede Workflowinstanz hat ihre eigene History.

[quote user="dapa5077"]Wie meinst du, dass der Workflow wartet? Mit welchen Funktionen kann man hier arbeiten?[/quote]

Wie oben beschrieben. Je nachdem, was für die Anforderungen am sinnvollsten ist. Der Workflow kann eine bestimmte Zeit warten (das können auch Tage, Wochen oder Monate sein) oder der Workflow kann warten, bis ein bestimmtes Feld einen bestimmten Wert annimmt.

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

Ok, dann hätte ich ja in meinem Fall sagen können - "dann auf Feld = Wert warten" bevor der Workflow abgeschlossen wird. Dann würde immer die gleiche Instanz laufen und es würde kein neuer Workflow gestartet.

Welche Funktion könnte man nutzen, wenn ich z.B. im Zyklus von 4 Wochen prüfen möchte, ob ein Element einen bestimmten Status hat?

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

"Für Dauer anhalten" oder "Bis Datum anhalten"

Viele Grüße
Andi
af @ evocom de
Blog