2009-04-17 12 views
0

Ich schreibe einen Workflow, der bestimmte Aktionen ausführen muss, abhängig davon, welche Felder geändert werden, wenn jemand ein Element bearbeitet. Wenn ein Benutzer beispielsweise eine Rolle (einen Job) aus einem Element (Mitarbeiter) eingibt und entfernt, muss der Workflow erkennen, dass das Rollenfeld geändert wurde, welche Rolle entfernt wurde (oder möglicherweise hinzugefügt wurde) und dann den Benutzer benachrichtigen Manager dieser Rolle und andere notwendige Aufgaben. Ein anderes Beispiel wäre, wenn die Adressfelder in einem Artikel geändert werden, dann muss die entsprechende Personalabteilung über die Änderung informiert werden.Workflow, der weiß, welche Felder geändert wurden

Um dies zu tun, werde ich einen Code-Block versuchen, wenn der Workflow gestartet wird, vergleicht die oberen beiden Verlaufseinträge und alle anderen Felder werden als geändert markiert und ich werde die entsprechenden Aktionen abhängig von jedem Feld ergreifen .

Könnte mir bitte jemand sagen, was die anderen Optionen für diese Funktionalität sind, wie ich gerne wissen würde, ob es einen besseren Weg gibt. Danke

Antwort

0

Mit SPD-Workflows wäre es nicht so schwer, abhängig von der Anzahl der Rollen.

Erstellen Sie eine Spalte und gehen Sie dann in den Inhaltstyp und verstecken Sie ihn. Erstellen Sie einen SPD-Workflow, der bei neuen oder Änderungen ausgeführt wird. Vergleichen Sie die ausgeblendete Spalte mit derjenigen, die der Benutzer eingegeben hat, wenn Sie die Werte mit einem Rollennamen vergleichen und tun, was zu tun ist. Wenn dies geschehen ist, kopieren Sie die vom Benutzer eingegebene Spalte in die ausgeblendete Spalte.

Hässlich und lang, aber wenn Sie nicht die Möglichkeit haben, Workflow-Code auf dem Server implementiert, dank Corporate IT, dann ist es eine Option.

0

I Versionierung auf der Liste ermöglichen würde, und dann verwenden:

SPListItem currentItem = workflowProperties.Item; 
SPListItemVersion previousItemVersion = currentItem.Versions[1]; 
//Compare the fields in currentItem and previousItemVersion 

Aber wenn ich Ihre Frage richtig verstanden hat, das ist, was Sie sind schon zu tun.

Verwandte Themen