none
Zurückkehren zum Anfang des Workflows

    Frage

  • Ich habe ein Workflow erstellt der in der ersten Sequenz parallel auf 10 mögliche Feldänderungen wartet und dementsprechend in den jeweiligen Step fällt.

    Im Kontext zu dem Workflow steht ein InfoPath Formular, das beim Erstellen sowie bei Änderungen den Workflow startet.

    Angenommen es tritt die erste Feldänderung auf und die nachfolgenden Aktionen werden durchgeführt. Falls dann das Formular geändert wird und eine weitere Feldänderung (mit anderem Wert) auftritt wird dank dem neu getriggerten Workflow wieder der entsprechende Fall getriggert und es folgen wieder die in dem Schritt enthaltenen Aktionen.

    So weit so gut, allerdings falls ein Fall durchlaufen wurde und nach einer Änderung wieder der erste Fall auftritt, werden nicht die für den Schritt entsprechenden Aktionen durchgeführt. Wie kann ich diese Problematik lösen?

    Freitag, 24. Februar 2012 10:40

Antworten

  • Hallo Peter,

    verstehe.
    In dem Fall hast Du allerdings leider nur zwei Möglichkeiten (bzw. drei, weil einmal a und b):

    Die absolut saubere Variante wäre ein Workflow mit Visual Studio. Mit diesem könntest Du das erreichen, da Du hier Schleifen zur Verfügung hast.

    Soll es beim Designer bleiben (der dergleichen nicht kann), dann muss Du Dir ein Hilfsfeld schaffen. Dieses kann entweder direkt auf der Bibliothek mit dem Workflow sein (Variante a) oder in einer eigenen (Hilfs-)Liste (Variante b). In diesem Feld musst Dir am Ende eines Durchlaufs dann den aktuellen Werte merken und kannst dann beim nächsten Start diesen zum Vergleich heranziehen.

    Ist ein wenig durch die Brust ins Auge, aber anders geht das mit Bordmitteln nicht.

    Ich habe noch mal kurz gesucht und einen Artikel/Blog gefunden, auf dem es eine eigene Activity gibt, die Loops zur Verfügung zu stellen scheint (http://nickgrattan.wordpress.com/2010/12/14/while-loops-in-sharepoint-designer-workflows/). Habe ich aber  nicht getestet und Designer-Workflows sind dafür am Ende auch nicht ausgelegt. Wirklich empfehlen kann ich es also nicht, aber es wäre eine weitere Alternative.

    HTH,
      Daniel


    --
    Daniel Wessels
    MVP SharePoint Server: Architecture

    • Als Antwort markiert Petewhore Mittwoch, 29. Februar 2012 09:12
    Mittwoch, 29. Februar 2012 09:10

Alle Antworten

  • Kannst du einen Screenshot deines Workflows posten? Glaube das macht es einfacher :)
    Freitag, 24. Februar 2012 12:33
  • Freitag, 24. Februar 2012 12:56
  • Ich vermute mal der Workflow wird nicht neu gestartet, weil er auf die weiter ausstehenden parallelen Feldänderungen wartet. Allerdings bin ich bisher noch nicht drauf gekommen wie ich das gleich Verhalten anders abbilden kann.

    Grüße,

    Peter

     
    Freitag, 24. Februar 2012 12:58
  • Hi,

    leider kann man nicht wirklich was erkennen, aber wenn Du wirklich in jeder Aktion ein "warte auf Änderung" drin hast, dann wartet der in der Tat auf die restlichen Aktivitäten.

    Die "Warte"-Aktivität ist hier der falsche Ansatz, denn der Workflow, würde genau an der Stelle fortsetzen, wo er wartend ausgestiegen ist. Alles was davor passiert, wird nicht erneut durchgeführt. Deshalb würde auch ein bereits durchlaufener Step nicht nochmal ausgeführt.

    Um immer wieder den passenden Fall durchlaufen zu lassen, musst Du den Workflow bei jeder Änderung neu starten lassen und statt explizit auf eine neue Änderung zu warten (durch die entsprechende Aktivität) den Workflow einfach beenden lassen. Er startet bei der nächsten Änderungen dann von alleine erneut.

    HTH,

      Daniel


    --
    Daniel Wessels
    MVP SharePoint Server: Architecture

    Dienstag, 28. Februar 2012 20:39
  • Hi Daniel,

    vielen Dank für deine Antwort. Das Problem mit dem immer neugestarteten Workflow stellt sich aber als solches, dass ich eine Veränderung in einem Feld beobachten muss. Das heißt ich sollte im Optimalfall wissen, welchen Status das Felditem vorher hatte.

    Angenommen ich würde nach Beendigung des Workflows ihn neu starten und der gleiche Fall tritt zwei oder mehrere male hintereinander auf würde der selbe Fall hintereinander durchlaufen werden (was so nicht gewünscht ist).

    Das heißt es sollte immer nur dann ein Fall (auch falls er schon mal augelöst wurde)getriggert werden, wenn eine Veränderung im Feld beobachtet werden konnte.

    Ich hoffe ich konnte es deutlich veranschaulichen.

    Liebe Grüße,

    Peter

    Mittwoch, 29. Februar 2012 07:55
  • Hallo Peter,

    verstehe.
    In dem Fall hast Du allerdings leider nur zwei Möglichkeiten (bzw. drei, weil einmal a und b):

    Die absolut saubere Variante wäre ein Workflow mit Visual Studio. Mit diesem könntest Du das erreichen, da Du hier Schleifen zur Verfügung hast.

    Soll es beim Designer bleiben (der dergleichen nicht kann), dann muss Du Dir ein Hilfsfeld schaffen. Dieses kann entweder direkt auf der Bibliothek mit dem Workflow sein (Variante a) oder in einer eigenen (Hilfs-)Liste (Variante b). In diesem Feld musst Dir am Ende eines Durchlaufs dann den aktuellen Werte merken und kannst dann beim nächsten Start diesen zum Vergleich heranziehen.

    Ist ein wenig durch die Brust ins Auge, aber anders geht das mit Bordmitteln nicht.

    Ich habe noch mal kurz gesucht und einen Artikel/Blog gefunden, auf dem es eine eigene Activity gibt, die Loops zur Verfügung zu stellen scheint (http://nickgrattan.wordpress.com/2010/12/14/while-loops-in-sharepoint-designer-workflows/). Habe ich aber  nicht getestet und Designer-Workflows sind dafür am Ende auch nicht ausgelegt. Wirklich empfehlen kann ich es also nicht, aber es wäre eine weitere Alternative.

    HTH,
      Daniel


    --
    Daniel Wessels
    MVP SharePoint Server: Architecture

    • Als Antwort markiert Petewhore Mittwoch, 29. Februar 2012 09:12
    Mittwoch, 29. Februar 2012 09:10
  • Vielen Dank!

    Ich bin gerade schon dabei ein weiteres Feld zur Zwischenspeicherung zu verwenden um das gewünschte Verhalten zu erzielen. Am Ende sollte es dann meinen Anforderungen genüge tun..

    Herzliche Grüße,

    Peter

    Mittwoch, 29. Februar 2012 09:14
  • Da hast Du aber schnell getestet. ;-)

    /Daniel


    --
    Daniel Wessels
    MVP SharePoint Server: Architecture

    Mittwoch, 29. Februar 2012 09:17
  • Dein Vorschlag ist mir heute morgen auch klar geworden nachdem ich deine vorherige Antwort gelesen hab :D
    Mittwoch, 29. Februar 2012 09:47