2009-05-07 7 views
0

J'ai un workflow sharepoint avec un état où j'attends de voir les modifications apportées par l'utilisateur à l'élément de la liste auquel le workflow est attaché .Flux de travail Sharepoint: Comment obtenir le "BeforeProperties" dans un gestionnaire d'événements WorkflowItemChanged

Mon état a une activité "OnWorkflowItemChanged". Sur cette activité, je suis lié les « AfterProperties » et « BeforeProperties » qui ont créé les membres suivants du code derrière:

public Hashtable m_listItemBefore = new System.Collections.Hashtable(); 
public Hashtable m_listItemAfter = new System.Collections.Hashtable(); 

J'ai ensuite ajouté une méthode pour l'événement Invoqué sur l'activité et pensé que je serais bien. Toutefois, lorsque le code atteint ma fonction Invoked, l'objet m_listItemAfter contient toutes les nouvelles informations, mais le m_listItemBefore est vide.

De même, si j'accéder à l'élément de liste directement par:

this.workflowProperties.Item["field name"] 

Je suis aussi obtenir les nouvelles valeurs.

La logique de mon flux de travail nécessite que je vois ce qu'ils ont modifié les données FROM ainsi que les nouvelles valeurs. Des idées sur ce que je fais mal ici?

Répondre

1

Je crois que BeforeProperties est uniquement disponible dans les événements synchrones (ItemAdding, ItemUpdating) et non dans les événements asynchrones (ItemAdded, ItemUpdated).

Ceci est assez décevant et m'a un peu dérangé dans le passé, mais je suis sûr que c'est vrai. Donc, si vous devez vraiment avoir les BeforeProperties, vous devez recourir à un événement synchrone.

+0

D'accord. Je pense que Clyde a besoin d'un gestionnaire d'événements au lieu d'un workflow. –

Questions connexes