Impossible de créer ou de modifier SharePoint flux de travail 2013 dans SharePoint Designer

Symptômes

Lorsque vous créez ou modifiez un flux de travail SharePoint 2013 dans SharePoint Designer, rien ne semble se produire et aucune erreur n’est signalée dans l’interface utilisateur SharePoint Designer. Vous pouvez voir apparaître une fenêtre pour le cache de construction, puis disparaître rapidement.

Si vous capturez un suivi HTTP à partir de Fiddler ou d’un outil de développement basé sur un navigateur, vous voyez l’erreur suivante :

Une exception s’est produite dans l’étendue
Microsoft. SharePoint. WorkflowServices.WorkflowDeploymentService.GetActivitySignatures. Exception=System.ArgumentException : un élément avec la même clé a déjà été ajouté.

Cause

Une fonctionnalité de la batterie SharePoint a été ajoutée deux fois avec deux ID de fonctionnalité différents.

Résolution

Pour résoudre ce problème, identifiez et supprimez la fonctionnalité avec l’ID dupliqué.

  1. Examinez le service ULS (Unified Logging Service) collecté en mode détaillée pour suivre la fonctionnalité en double à l’aide de l’une des méthodes suivantes :

    • Recherchez le message d’erreur de recherche mentionné ci-dessus.
    • Recherchez un ID de corrélation ou un SPRequestGUID, qui font tous deux partie de la réponse du serveur dans le suivi HTTP capturé dans Fiddler ou dans l’outil de développement du navigateur.
  2. Lorsque vous examinez le journal ULS, vous voyez une liste de toutes les fonctionnalités installées dans la batterie de serveurs qui ont été interrogées. Recherchez la dernière fonctionnalité qui a été interrogé avant que l’erreur ne se soit produite et notez l’ID de la fonctionnalité.

  3. Exécutez la commande Get-SPFeature'ID de fonctionnalité pour obtenir le nom de la fonctionnalité.

  4. Exécutez la commande Get-SPFeature nom de la fonctionnalité pour obtenir l’ID de la fonctionnalité. La sortie affiche deux ID de fonctionnalité associés à la même fonctionnalité. C’est la cause du problème. L’un des deux ID de fonctionnalité est un doublon.

  5. Identifiez le doublon en vérifiant les dossiers de fonctionnalités sur tous les serveurs de la batterie de serveurs. En alternative, exécutez Get-SPFeature nom de la fonctionnalité sur chaque serveur pour découvrir si un ou plusieurs serveurs ont une référence à un ID de fonctionnalité en double ou s’il en présente un. Notez l’URL du site affichée dans la sortie.

  6. Pour supprimer l’ID de fonctionnalité en double, désactivez-la avec l’ID de fonctionnalité en double, puis désinstallez-la en suivant les étapes suivantes :

    1. Pour désactiver la fonctionnalité, exécutez la commande Disable-spfeature -id Feature ID -url http://site .
    2. Pour désinstaller la fonctionnalité, exécutez la commande Uninstall-spfeature -id Feature ID.

Si le problème persiste, il est possible que le cache de configuration puisse contenir des informations d’ID de fonctionnalité en double. Vous pouvez effacer le cache de configuration sur tous les serveurs à surmonter.

Pour effacer le cache SharePoint configuration, consultez le billet de blog suivant :

Effacer le cache SharePoint configuration de l’ordinateur

Plus d’informations

Lorsque vous tentez de créer ou de modifier un flux de travail SharePoint 2013 à l’aide de SharePoint Designer, il doit d’abord créer un cache de toutes les activités de flux de travail. Cela inclut SharePoint activités intégrées et tout autre produit ou fonctionnalité installé dans la batterie de serveurs SharePoint (par exemple, Project, Nintex, etc.). Le SharePoint fournit les détails de l’activité de flux de travail à SharePoint Designer lorsque Ce dernier effectue un appel GetActivitySignatures au serveur :

Microsoft.SharePoint.WorkflowServices.StoreWorkflowDeploymentProvider.GetActivitySignatures(DateTime lastChanged).

Pour fournir toutes les activités de flux de travail disponibles dans la batterie de serveurs SharePoint (GetActivitySignatures), SharePoint doit ré lister toutes les fonctionnalités présentes dans la batterie de serveurs et créer un dictionnaire. Dans une situation où une fonctionnalité particulière est ajoutée avec un deuxième ID en double, SharePoint rencontre un problème lors de la création du dictionnaire et une erreur est « Un élément avec la même clé a déjà été ajouté ».

Notez que la valeur DateTime, lastChanged dépend du fait que le Concepteur dispose déjà d’un cache d’activités de flux de travail ou non pour un site particulier. Lorsque Designer est en train de créer un cache d’activités de flux de travail pour la première fois pour un site, la valeur du paramètre DateTime lastChanged est 0000. À partir de là, la valeur contiendra la dernière fois que le cache a été créé. À l’aide de cette méthode, le Concepteur tirera uniquement les nouvelles activités de flux de travail ajoutées.

Pour afficher le cache GetActivitySignature créé par SharePoint Designer, accédez à l’emplacement suivant sur l’ordinateur exécutant SharePoint concepteur :

%USERPROFILE%\AppData\Local\Microsoft\WebsiteCache\SharePoint Site name\SharePoint Build version\Activity.xml

Encore besoin d’aide ? Accédez au site de la Communauté SharePoint.