Freigeben über


Verwenden der CompensatableSequenceActivity-Aktivität

Bei der CompensatableSequenceActivity-Aktivität handelt es sich um eine kompensierbare Version der SequenceActivity-Aktivität, von der die ICompensatableActivity-Schnittstelle implementiert wird. Von CompensatableSequenceActivity wird die ICompensatableActivity-Schnittstelle implementiert. Durch das Implementieren der Schnittstelle kann CompensatableSequenceActivity über eine CompensationHandlerActivity als untergeordnetes Element verfügen. Diese Aktivität wird für den Fall ausgeführt, dass CompensatableSequenceActivity jemals kompensiert wird.

Eine Kompensierung erfolgt nur bei erfolgreich abgeschlossenen Aktivitäten, von denen ICompensatableActivity implementiert wird. Eine Kompensierung erfolgt entweder implizit als Ergebnis einer Ausnahme in einer übergeordneten Aktivität oder explizit durch die Verwendung der CompensateActivity-Aktivität.

CompensatableSequenceActivity ist zur Verwendung geeignet, wenn Nicht-Transaktionsaufgaben ausgeführt werden müssen, die möglicherweise aufgrund von Fehlerbedingungen später rückgängig gemacht werden müssen. Falls z. B. von einem Workflow eine E-Mail-Nachricht gesendet wurde und aufgrund eines späteren Fehlers eine Widerrufs-E-Mail gesendet werden muss, kann dies erreicht werden, indem die Aktivität, von der die erste E-Mail gesendet wird, in der CompensatableSequenceActivity-Aktivität platziert wird, und die Aktivität, von der die Widerrufs-E-Mail gesendet wird, in der entsprechenden CompensationHandlerActivity platziert wird. Die Kompensationslogik wird von der Laufzeit nur dann ausgeführt, wenn die erste CompensatableSequenceActivity erfolgreich abgeschlossen wird (d. h., falls die erste E-Mail gesendet wurde).

Informationen über das Verhalten einer SequenceActivity-Aktivität finden Sie unter Verwenden der SequenceActivity-Aktivität.

Informationen zur Kompensierung finden Sie unter Verwenden der CompensateActivity-Aktivität und unter Verwenden der CompensationHandlerActivity-Aktivität.

Ein Codebeispiel, in dem die Verwendung der Kompensierung veranschaulicht wird, finden Sie unter Compensation Sample.

Siehe auch

Referenz

SequenceActivity
CompensateActivity
CompensationHandlerActivity
ICompensatableActivity
CompensatableSequenceActivity
CompensatableTransactionScopeActivity

Konzepte

Verwenden der SequenceActivity-Aktivität
Verwenden von Kompensierung in Workflows
Verwenden der CompensateActivity-Aktivität
Verwenden der CompensationHandlerActivity-Aktivität
Verwenden der CompensatableTransactionScopeActivity-Aktivität
Übersicht über die Kompensierung

Weitere Ressourcen

Compensation Sample
Windows Workflow Foundation-Aktivitäten

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.