Symptômes
Vous créez une collection de sites en utilisant le modèle Records Center dans Microsoft SharePoint Server 2010 ou Microsoft SharePoint Server 2013. Lorsque vous mettez à jour le nouveau contenu de la bibliothèque Drop Off par défaut dans cette collection de sites, vous recevez le message d'erreur suivant :
Microsoft SharePoint Server 2010: Erreur Cet élément ne peut pas être supprimé, déplacé ou renommé parce qu'il est soit en attente ou est un enregistrement qui bloque la suppression. Microsoft SharePoint Server 2013:Désolé, quelque chose s'est mal passé. Cet élément ne peut pas être supprimé, déplacé ou renommé parce qu'il est soit en attente ou est un enregistrement qui bloque la suppression.
L'élément téléchargé est automatiquement déclaré enregistrement et est copié dans l'une des bibliothèques de destination selon la configuration des règles de l'organisateur de contenu. Vous voyez également cette erreur si vous essayez de supprimer ces éléments copiés de la bibliothèque de Drop Off ou d'enregistrement respective. L'état de déclaration de cet élément ne change pas même si vous essayez de le déclarer dans la section Détails de conformité. Si vous modifiez cet élément dans la bibliothèque Drop Off même sans modifications et soumettez, un nouvel élément en double est créé dans la bibliothèque d'enregistrements. Le nom de cet élément en double est assilié d'un ID unique généré auto. Si vous désactivez la déclaration automatique des éléments et activez la déclaration manuelle des éléments, les éléments de la bibliothèque Drop off peuvent être supprimés. Toutefois, les éléments de la bibliothèque d'enregistrements restent des doublons qui ne peuvent pas être supprimés.
Cause
Cela se produit parce que l'opération de déplacement d'un élément d'une bibliothèque à l'autre est complétée en deux phases. D'abord, il est copié à partir de la source à la destination, puis il est supprimé de la source. Dans ce cas, la source est la bibliothèque Drop Off, et il déclare les éléments comme des enregistrements dès qu'ils sont téléchargés. Comme les éléments sont déclarés comme enregistrements dans une bibliothèque Drop Off, ils ne peuvent pas être supprimés. Après le téléchargement, les règles de l'organisateur de contenu s'exécutent pour déplacer l'élément vers sa destination. Cela termine l'opération de copie avec succès et l'article est disponible à la destination. Toutefois, parce qu'il est déclaré, l'élément ne peut pas être supprimé dans la bibliothèque Drop Off. Si vous essayez de supprimer cet élément, il provoquera l'erreur mentionnée précédemment à se produire. L'édition des propriétés de l'élément provoque l'exécution des règles de l'organisateur à nouveau, répétant la procédure. Cette fois, parce que le document est déjà présent dans la destination, le nom de l'article est rempli d'un ID unique. Lorsque la bibliothèque Drop Off est modifiée pour permettre la déclaration manuelle des enregistrements, ces éléments peuvent être supprimés après que vous les déconfiriez. Lorsqu'un élément d'une bibliothèque d'enregistrement est modifié, l'élément ne peut pas être supprimé, car la bibliothèque ne modifie pas l'état de déclaration de cet élément.
Résolution
Étape 1 Fix Drop Off bibliothèque doublons
Mettre à jour la bibliothèque Drop Off afin qu'elle ne déclare pas automatiquement les éléments comme enregistrements. La bibliothèque Drop Off est utilisée pour déposer les documents en un seul endroit qui peut être soumis à de nombreuses règles d'organisateur de contenu. Cela permet de s'assurer que les nouveaux éléments téléchargés sur la bibliothèque Drop Off ne causent pas de duplication ou ne jettent pas d'erreur. Activez la déclaration manuelle des enregistrements dans la bibliothèque Drop Off afin que vous puissiez supprimer les documents existants après les avoir dédéclarés et nettoyer la bibliothèque Drop Off.
Les doublons de la bibliothèque Fix De l'étape 2
Pour corriger les doublons existants dans la bibliothèque d'enregistrements, suivez les étapes suivantes :
-
Supprimer le récepteur d'événement qui s'exécute pendant l'action de suppression d'élément.
-
Supprimer les enregistrements en double.
-
Rajoutez le récepteur d'événements.
La section suivante énumère les étapes en détail : la suppressionimportante du récepteur d'événement qui s'exécute pendant la tentative de suppression permettra la suppression de tout document. Cela inclut tous les documents légitimes qui ne devraient pas être supprimés. Testez d'abord ces étapes dans un environnement de test. Prenez des précautions extrêmes en vous assurant que le site n'est pas disponible pour les utilisateurs pendant cet exercice afin que les utilisateurs ne suppriment pas d'autres documents.
-
Dans SharePoint Management Shell, exécutez le script suivant et répertorier tous les récepteurs d'événements :
$problemweb = Get-SPWeb http://<Your Site Collection>$problemlist = $problemweb.Lists["<Record Library Name>"]$problemlist.EventReceivers | select type, name
Remarque Vous devez remplacer le nom de lt;YourSiteCollection et le nom de Listbrayt avec la valeur correcte. Dans cette sortie, calculez la position du type de récepteur d'événement ItemDeleting en commençant par le haut en tant que position numéro 0 tout en incrémentant la séquence du récepteur d'événement suivant. Par exemple, dans la sortie suivante, le récepteur d'événement ItemDeleting est en deuxième position dans le tableau. Ainsi, le numéro de position est de 1 car les tableaux commencent avec 0:Type Name---- ----ItemUpdate ECM_RecordEventReceiverItemDeleting ECM_RecordEventReceiverItemFileMoving ECM_RecordEventReceiverItemAdded Document ID GeneratorItemAdded ECM_RecordEventReceiverItemUpdated Document ID GeneratorItemUpdated ECM_RecordEventReceiverItemCheckedIn Document ID GeneratorItemCheckedIn ECM_RecordEventReceiverItemUncheckedOut Document ID Generator
-
Assurez-vous que la position du tableau indique le récepteur de l'événement ItemDeleting :
$problemev = $problemlist.EventReceivers[Position of the "ItemDeleting" event receiver]
Par exemple :
$problemev = $problemlist.EventReceivers[1]
-
Supprimer le récepteur d'événements ItemDeleting :
$problemev.Delete()
-
Mettre à jour la liste:
$problemlist.update()
-
Supprimez les doublons de la bibliothèque d'enregistrements à l'aide du navigateur.
-
Exécutez le script suivant pour recréer le récepteur d'événement ItemDeleting :
$problemevadded = $problemlist.EventReceivers.Add([Microsoft.SharePoint.SPEventReceiverType]::ItemDeleting,"Microsoft.Office.Policy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c","Microsoft.Office.RecordsManagement.Internal.HoldEventReceiver")$problemlist.update()
Informations supplémentaires
Le récepteur d'événements ItemDeleting est de type SPEventReceiver. Fournir le récepteurType, l'assemblage et le nom de classe en utilisant cette méthode vous permet de créer le récepteur d'événement. SpEventReceiverDefinitionCollection.Add method (SpEventReceiverType, String, String)http://msdn.microsoft.com/en-us/library/ms475442.aspxHoldEventReceiver.ItemDeleting Method (Microsoft.Office.RecordsManagement.Internal)http://msdn.microsoft.com/en-us/library/microsoft.office.recordsmanagement.internal.holdeventreceiver.itemdeleting.aspx