2012-04-03 1 views
2

Was wird mit WorkItem.Save gespeichert? Alles, was geändert/hinzugefügt/gelöscht wurde, einschließlich neuer Anhänge, die hinzugefügt wurden, usw.?Wie funktioniert WorkItem.Save()?

Ich versuche zu bestimmen, wie es intern funktioniert. Angenommen, etwas scheitert, als ob ein Element nicht gesetzt werden kann oder ein Anhang aus irgendeinem Grund nicht hinzugefügt werden kann. Wird beim Aufruf von Save oder beim Versuch, die fragliche Eigenschaft festzulegen, ein Fehler ausgegeben?

Wenn eines dieser Elemente ausfällt, tun den Rest der Operationen sind immer noch Erfolg haben oder es Optionen wie „alles oder nichts“, usw.

Jede Führung um dies hilfreich wäre.

+0

FYI das beantwortet einige meiner Fragen http://msdn.microsoft.com/en-us/library/bb130323(v=vs.80).aspx – user1060500

Antwort

3

Ein Arbeitselement ist eine atomare Einheit. Wenn Sie save() aufrufen, wird das Arbeitselement entweder mit den Änderungen aktualisiert oder es schlägt fehl. Sie können nicht in einen Zustand versetzt werden, in dem einige der Änderungen an der Arbeitsaufgabe gespeichert wurden und andere nicht.

Wenn Sie die Felder für ein Arbeitselement festlegen, wird das Arbeitselement dann auf seine Gültigkeit ausgewertet. Arbeitselemente haben "Regeln", die durch die Prozessvorlage definiert werden, die validiert werden muss, damit der Client eine Sicherung durchführen kann. Sie können WorkItem.IsValid() aufrufen, um festzustellen, ob sich das Arbeitselement in einem gültigen Status befindet oder nicht.

Für weitere Informationen zur Gültigkeit können Sie WorkItem.Validate() anrufen, um eine Liste ungültiger Felder zu erhalten.

Wenn Sie die Gültigkeit des Workitems ignorieren und einfach WorkItem.Save(), aufrufen, wird ein ValidationException ausgelöst.