2009-07-24 6 views
3

Je suis nouveau sur SharePoint mais j'apprends vite.Comment déclencher un flux de travail SharePoint en mettant à jour UNIQUEMENT une valeur dans un élément de liste (approuvé, non approuvé)?

Je veux déclencher un flux de travail uniquement lorsqu'une valeur est mise à jour dans un élément de liste, mais pas à chaque fois que l'élément est modifié. Par exemple j'ai une colonne pour approuver/ne pas approuver et je veux que ce soit le déclencheur pas les autres valeurs dans l'article. Donc, si quelque chose d'autre est changé, le workflow ne commencera pas à moins que la valeur 'approval' ne soit.

Toute aide est appréciée!

Merci,

Répondre

3

Si vous souhaitez accomplir ce programme ...

  1. Créer un gestionnaire d'événements ItemUpdating et le joindre à votre liste cible. Je voudrais créer une fonctionnalité et un récepteur de fonctionnalité pour faire l'attachement.

  2. Dans le gestionnaire d'événements ItemUpdating, il y a deux valeurs que vous voulez regarder: properties.ListItem [ « approbation »], cela vous donnera la valeur d'origine properties.AfterProperties [ « approbation »] c'est la mise à jour valeur

Vérifiez si les deux valeurs ne sont pas égales et si la valeur mise à jour est égale à "approuver". Si les deux sont vraies, commencer à un flux de travail sur l'élément de liste programmatically- voici quelques liens pour vous aider à cela:

http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx

Bonne programmation!

7

Vous pouvez le faire dans SharePoint Designer.

  • Ouvrir votre site dans SharePoint Designer
  • Cliquez sur Fichier Nouveau WorkFlow
  • Choisissez votre liste/Bibliothèque
  • Ajouter une condition: Comparer ListName (vous pouvez comparer les valeurs du champ dans votre cas votre approbation colonne)

Espérons que cela aide.

+0

Ali, Merci, mais c'est quelque chose que je l'ai déjà mis en place. Le problème est qu'après la mise à jour de la valeur, chaque fois que l'élément est modifié (autres colonnes que celle qui déclenche le workflow), le workflow redémarre et, dans mon cas, envoie à nouveau un e-mail (Actions: envoyer un e-mail). D'autres suggestions? Merci, – Marius

1

Vous devez probablement deux flux de travail, un champ caché et un « Démarrer une autre activité de workflow » (qui se trouve sur CodePlex)

Flux de travail 1 est un flux de travail d'aide qui est configuré pour démarrer quand un élément est modifié: il vérifie si l'état est égal au champ caché Si elle est la sortie Sinon, commencer flux de travail 2 et régler champ caché à la valeur actuelle de l'état

flux de production 2 est alors le véritable flux de travail qui fait ce que vous voulez quand Status est modifié

1
  1. d'abord créer un champ numérique caché appelé « Etat workflow » Définir la valeur par défaut « 0 »

  2. Créer un flux de travail qui initiera à la fois la création et l'article et modifier

  3. la première étape dans le flux de travail est d'augmenter le champ Etat de flux de travail de « 1 »

  4. la deuxième étape consiste à vérifier est la valeur 2 qui doit indiquer la première fois le flux de production a été modifie ré.

Juste pour indiquer le statut. Statut de flux de travail = 1: L'article a été créé 2: L'article a été modifié pour la première fois 3: L'article a été modifié une deuxième fois.

1

@Marius: La première étape du workflow doit consister à comparer la valeur du champ et à fournir une branche logique. Si la valeur est égale à ce que vous voulez, exécutez le worlflow. Si ce n'est pas le cas, arrêtez le flux de travail ou faites autre chose. Si l'e-mail est reçu avec une modification, votre flux est erroné.

La solution de Martin est très simple, mais vous pouvez également développer cette fonctionnalité en utilisant des types de contenu pour permettre un processus d'approbation qui effectue une autre action.

Questions connexes