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.




Workflow nur bei echten Änderungen starten

Geprüfte Antwort Dieser Beitrag hat 6 Antworten

Ohne Rang
35 Beiträge
GabrielLohre erstellt 22 Mai 2014 13:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe einen Workflow, der den Inhalt einer Spalte in eine andere überträgt (grob gesagt). Dabei wird die Datei zuerst ausgecheckt, der Inhalt übertragen und die Datei dann wieder eingecheckt. Soweit so gut, das funktioniert, wie es soll.

Das Problem ist: Der Workflow startet immer, wenn die Datei geändert wird. Auch ok. Das soll ja auch immer geprüft werden. Allerdings wird jedesmal die Datei workflowgemäß aus- und wieder eingecheckt, was einen Versionssprung verursacht. Dies passiert auch, wenn die Datei an einer ganz anderen Stelle verändert wurde (etwa ein anderes Meta-Datum oder der Datei-Inhalt). Zudem gibt es mehr als einen Workflow, der bei Dateiänderungen Meta-Daten prüft und ändert ... jedesmal mit einem Aus-/Einchecken verbunden. 

Man kann sich vorstellen, dass sich die Workflows dabei gegenseitig hochschaukeln.

Meine Frage wäre daher: Kann man durch irgendeine Abfrage zu Beginn des Workflows feststellen, ob sich an den relevanten Feldern etwas geändert hat? 

Mir würde hierzu gerade nur einfallen, dass ich den Workflow zuerst einmal die Änderungen, die vorgenommen werden soll, in zwei Variablen geschrieben werden, diese werden dann mit dem Inhalt der bisherigen Felder verglichen und nur, wenn es hier Unterschiede gibt, wird die Datei ausgecheckt, der Inhalt der Variablen in die Felder geschrieben und dann wieder eingecheckt. Wenn ich mir das so vor meinem geistigen Auge vorstelle ist das allerdings ein ziemlicher Aufwand (der Workflow ist natürlich erheblich komplexer als oben dargestellt)für eine eigentlich kleine Abfrage

Mögliche Erstellung des Workflows kann per Designer oder (bevorzugt) per Nintex Workflow 2010 erfolgen. Das Nintex Forum erscheint mir leider erheblich zu wenig besucht, weshalb ich es lieber gleich hier versuchen möchte.

Ich danke schon mal vorab für potentielle Hilfe/Tipps

 

Gruß, Gabriel 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Mai 2014 13:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="GabrielLohre"]Kann man durch irgendeine Abfrage zu Beginn des Workflows feststellen, ob sich an den relevanten Feldern etwas geändert hat?[/quote]

Nein, das geht per Workflow grundsätzlich nicht. Auch nicht mit Nintex.

Vielleicht kannst Du das Workflowdesign grundsätzlich ändern. So daß es nur einen Workflow gibt, der auch nur bei Neuanlage startet und dann auf relevante Änderungen wartet. Mit dem State Machine Workflow von Nintex und ein paar parallelen Aktionen sollte sich das machen lassen.

Ansonsten ist sowas ein klassischer Fall für einen EventReceiver. Der kann nämlich prüfen, was sich geändert hat. Muß aber programmiert werden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
35 Beiträge
GabrielLohre Als Antwort am 23 Mai 2014 08:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe noch mal ein bisschen gestöbert und dabei bei Nintex WF die Option des Bedingten Starts eines WF nach Änderung gefunden.

Zu findenist diese Option in den jeweiligen Workflow-Einstellungen und dann bei "Starten wenn Elemente bearbeitet wurden". Hier wählt man "Bedingt" und kann bei den Bedingungen dann auswählen, wann der Workflow tatsächlich starten soll. Hier habe ich Feld1 (vorheriger Wert) mit Feld 1 verglichen und die Logik-Verknüpfung auf "Ungleich" gesetzt.

Erste Tests zeigen, dass der Workflow wirklich nur startet, wenn hier eine Änderung auftrat, genauer kann ich dies aber erst sagen, wenn ich einen anderen Workflow, der mir hier noch querschießt, debugged habe.

Was auch auffällt ist, dass der Workflow recht lange benötigt, um abzulaufen. Woran das liegt, kann ich aktuell noch nicht sagen. Der Start erfolgt sofort, doch wirklich was tuen, dafür brauchts eine Weile.

Ich sag Bescheid, wenn ich hier noch weitere Informationen zu habe.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Mai 2014 08:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="GabrielLohre"] Nintex WF die Option des Bedingten Starts [/quote]

Stimmt, die hatte ich ganz vergessen. Wenn es nur um ein Feld geht, kannst Du das verwenden.

[quote user="GabrielLohre"]Was auch auffällt ist, dass der Workflow recht lange benötigt, um abzulaufen[/quote]

Das ist normal und Du kannst nichts dagegen tun. Workflows können nicht für zeitkritische Prozesse verwendet werden. Sie laufen mit sehr niedriger Priorität im Hintergrund und wenn der Server etwas Besseres zu tun hat, werden sie auch mal zurückgestellt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
35 Beiträge
GabrielLohre Als Antwort am 23 Mai 2014 11:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So ganz scheint es leider nicht zu funktionieren mit dem automatischen Vergleich. 

Ich habe daher jetzt den Umweg über ein Hilfsfeld gemacht, welches in dem Workflow mit dem aktuellen Wert gefüllt wird. Beim Start des WF wird geprüft, ob der Inhalt des Feld1 mit dem Hilfsfeld_Feld1 identisch ist. Falls ja, wird der Workflow nur protokolliert, wenn nicht, wird er durchlaufen. 

Leider erscheinen die beiden Felder nun auch im Upload-Dialog zu jeder Datei, was natürlich eher unschön ist. Vielleicht findet sich hierzu ja auch noch eine Lösung, um "unerwünschte" Felder, die also nur der internen Verwendung dienen, aus solchen Formularen komplett fernzuhalten.

Zudem prüfe ich noch, ob es sich irgenwie verhindern lässt, dass sich die Version beim Durchlaufen von solchen Workflows immer erhöht.

Aja ... das mit der Zeit hatte ich mir schon gedacht. Ist auch ein recht ausführlicher WF. Die kürzeren dauern bei weitem nicht so lange. Zeitkritisch ist es nur bei der Erstellung/Konfiguration des WF ... ich bin doch so ungeduldig :D

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Mai 2014 11:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="GabrielLohre"]Leider erscheinen die beiden Felder nun auch im Upload-Dialog zu jeder Datei, was natürlich eher unschön ist[/quote]

Gehe in die Listeneinstellungen und dann auf den Inhaltstyp. Wenn die Inhaltstypen nicht angezeigt werden, schalte sie unter Versionierungseinstellungen zuerst ein. Klicke dann innerhalb des Inhaltstyps auf eine Spalte und Du kannst auswählen, ob sie Erforderlich, Optional oder Ausgeblendet sein soll. Ausgeblendet ist das, was Du suchst.

[quote user="GabrielLohre"]Zeitkritisch ist es nur bei der Erstellung/Konfiguration des WF ... ich bin doch so ungeduldig :D[/quote]

Das kenne ich ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
35 Beiträge
GabrielLohre Als Antwort am 26 Mai 2014 13:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

[quote user="GabrielLohre"]Leider erscheinen die beiden Felder nun auch im Upload-Dialog zu jeder Datei, was natürlich eher unschön ist[/quote]

Gehe in die Listeneinstellungen und dann auf den Inhaltstyp. Wenn die Inhaltstypen nicht angezeigt werden, schalte sie unter Versionierungseinstellungen zuerst ein. Klicke dann innerhalb des Inhaltstyps auf eine Spalte und Du kannst auswählen, ob sie Erforderlich, Optional oder Ausgeblendet sein soll. Ausgeblendet ist das, was Du suchst.

[/quote]

Super ... genau, was ich gesucht habe.

Ein Feld (ein aus einem anderen Feld berechneter Wert) lässt sich zwar nicht ausblenden, da diese Option hier ausgegraut ist, drei andere Felder hab ich aber schon mal aus dem Blickfeld der Benutzer gebannt. Sehr hilfreich.