Sperren WorkflowAktivität
Die Sperren Die Aktivität verhindert, dass andere Instanzen dieses Workflows über diese Aktivität hinaus fortgesetzt werden, bis die Sperre aufgehoben wird.
Mehrere Instanzen desselben Workflows können gleichzeitig ausgeführt werden. Beispiel: Wenn ein Workflow ausgelöst wird, wenn ein Datensatz einer bestimmten Tabelle hinzugefügt wird. Dieser Workflow wird mehrmals ausgelöst, wenn mehrere Datensätze nacheinander hinzugefügt werden, einmal durch jedes Einfügen des Datensatzes. Sie können die Sperraktivität verwenden, um sicherzustellen, dass diese Instanz des Workflows eine oder mehrere Aktivitäten abgeschlossen hat, bevor eine andere Instanz des Workflows fortfahren kann.
Ein Workflow kann explizit eine Sperre mit aufheben Entsperren Aktivität. Die Sperre kann auch aufgehoben werden, wenn Max. Dauer Ist erreicht.
Wenn eine Instanz des Workflows erreicht Sperren Aktivität: Versucht, eine Sperre mit dem in der Sperraktivität angegebenen Schlüssel abzurufen. Wenn eine andere Instanz die Sperre bereits erhalten und noch nicht freigegeben hat, schlägt dieser Sperrversuch fehl. Die Instanz versucht, die Sperre bis abzurufen Max. Versuche Wurde erreicht.
Wir empfehlen, vor der Sperraktivität eine 1-Sekunden-Timer-Aktivität zu platzieren. Dies hilft, eine seltene Bedingung zu verhindern, unter der die Sperraktivität möglicherweise keine Workflow-Instanz von einer anderen unterscheiden kann. Diese Bedingung kann auftreten, da die Entität, die die Sperre besitzt, nicht die spezifische Workflow-Instanz ist, sondern der Codeausführungs-Thread, in dem diese Instanz ausgeführt wird. In den meisten Fällen wird jede Workflow-Instanz auf einem anderen Thread ausgeführt. Durch das Hinzufügen einer Timer-Aktivität wird sichergestellt, dass dies der Fall ist.
- Genehmigungsaktivitäten
- Aufgabenaktivitäten
- Timer-Aktivitäten
- Warten Sie auf Bedingungsaktivität
- Warten Sie auf WF-Ereignisaktivität
- MID-Serveraktivitäten wie ein PowerShell-Skript
Ergebnisse
| Ergebnis | Beschreibung |
|---|---|
| Erfolg | Die Aktivität hat erfolgreich eine Sperre erhalten. Diese Instanz des Workflows kann über diesen Punkt hinaus fortgesetzt werden, andere Instanzen können jedoch erst fortfahren, wenn die Sperre freigegeben wird. |
| Fehler | Nachdem versucht wurde, die Sperre zu erhalten Max. Versuche Mal, dass die Aktivität die Sperre nicht erhalten konnte. |
Eingabevariablen
Eingabevariablen bestimmen das anfängliche Verhalten der Aktivität.
| Feld | Beschreibung |
|---|---|
| Key | Ein eindeutiger Mutex-Schlüssel. Die Entsperren Sie die Aktivität Die Aktivität verwendet diesen Schlüssel, um die Sperre freizugeben. |
| Dauer | |
| Max. Dauer | Die maximale Dauer der Sperre. Die Sperre wird freigegeben, nachdem sie diese Dauer erreicht hat. Wenn Sie eine Sperre auf diese Weise freigeben, ist dies gleichbedeutend mit der Ausführung von Entsperren Aktivität. |
| Sperrversuche Geben Sie an, wie sich die Aktivität verhält, wenn der Sperrversuch abgelehnt wird. Wenn der endgültige Sperrversuch fehlschlägt, wird der Aktivitätsstatus auf „Zeitüberschreitung“ und das Aktivitätsergebnis auf „Fehlgeschlagen“ festgelegt. |
|
| Max. Versuche | Geben Sie an, wie oft die Aktivität maximal versuchen kann, die Sperre abzurufen. |
| Verzögerung zwischen Versuchen | Die Zeit, die nach einem fehlgeschlagenen Sperrversuch erforderlich ist, bevor ein weiterer Sperrversuch zulässig ist. |
Status
Der Aktivitätsstatus teilt der Workflow-Engine mit, was mit der Aktivität zu tun ist.
| Status | Beschreibung |
|---|---|
| Warten | Die Workflow-Engine wartet auf eine Sperre. |
| Fertig | Die Aktivität hat die Sperre erfolgreich erhalten. |
| Zeitüberschreitung | Die Aktivität konnte innerhalb der von angegebenen Anzahl von Versuchen keine Sperre erhalten Max. Versuche Eingabevariable. |