2009-05-28 7 views
1

Nous avons un site SharePoint qui affiche un calendrier et gère les rendez-vous, etc.Guide sur la création de non contradictoires workflows

Nous essayons d'automatiser plusieurs aspects de ce système par le biais des flux de travail.

Indvidually chaque workflow fonctionne bien.

Le problème est que nous voulons qu'ils s'exécutent automatiquement lorsqu'un élément est modifié. Mais parfois, un workflow modifie lui-même un autre élément - ce qui déclenche à son tour les flux de travail ....

Comment éviter ces conditions de course?

Répondre

2

Heads up: Je n'ai pas testé avec flux de travail spécifiquement

Pour les événements SP, vous pouvez le faire à travers le programme élément de la liste récepteur d'événements. Lorsque vous associez le récepteur d'événements à la liste, vous pouvez explicitement désactiver le déclenchement d'événement pour une séquence particulière. Cela empêche les événements suivants de se déclencher à la suite de l'événement initial.

Ce comportement doit être reporté au workflow, à condition que vous lanciez le flux de travail à partir du récepteur d'événements.

public class ListItemEventReceiver : SPItemEventReceiver 
{ 
    #region SPItemEventReceiver Interface 
    public override void ItemAdded(SPItemEventProperties properties) 
    { 
     this.DisableEventFiring(); 

     // trigger your workflow here 

     this.EnableEventFiring(); 
    } 
} 
Questions connexes