La déclaration automatique d’éléments en tant qu’enregistrements entraîne des doublons dans SharePoint Server

Numéro de la ko d’origine :   2905419

Symptômes

Vous créez une collection de sites à l’aide du modèle Centre des enregistrements Microsoft SharePoint Server 2010 ou Microsoft SharePoint Server 2013. Lorsque vous mettez à jour le nouveau contenu vers la bibliothèque de mise à jour 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é, car il est en attente ou est un enregistrement qui bloque la suppression.

Microsoft SharePoint Server 2013 :
Désolé, un problème s’est passé.
Cet élément ne peut pas être supprimé, déplacé ou renommé, car il est en attente ou est un enregistrement qui bloque la suppression.

L’élément téléchargé est automatiquement déclaré comme enregistrement et copié dans l’une des bibliothèques de destination selon la configuration des règles d’organisateur de contenu. Vous voyez également cette erreur si vous essayez de supprimer ces éléments copiés de la bibliothèque de suppressions 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 la conformité. Si vous modifiez cet élément dans la bibliothèque de listes d’envoi, même sans aucune modification et envoi, un nouvel élément en double est créé dans la bibliothèque d’enregistrement. Le nom de cet élément en double est appendé avec un ID unique auto-régénéré.

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 de suppression peuvent être supprimés. Toutefois, les éléments de la bibliothèque d’enregistrement restent en tant que doublons qui ne peuvent pas être supprimés.

Cause

Cela se produit car l’opération de déplacement d’un élément d’une bibliothèque à une autre se termine en deux phases. Tout d’abord, il est copié de la source vers la destination, puis supprimé de la source. Dans ce cas, la source est la bibliothèque de transfert et déclare les éléments en tant qu’enregistrements dès qu’ils sont chargés. Comme les éléments sont déclarés en tant qu’enregistrements dans une bibliothèque de suppression, ils ne peuvent pas être supprimés. Après le chargement, les règles d’organisateur de contenu s’exécutent pour déplacer l’élément vers sa destination. Cela termine l’opération de copie correctement et l’élément est disponible à la destination. Toutefois, étant donné qu’il est déclaré, l’élément ne peut pas être supprimé dans la bibliothèque de suppression. Si vous essayez de supprimer cet élément, l’erreur mentionnée précédemment se produit.

Si vous modifiez les propriétés de l’élément, les règles de l’organisateur s’exécutent à nouveau, répétant la procédure. Cette fois, étant donné que le document est déjà présent dans la destination, le nom de l’élément est suffixe avec un ID unique.

Lorsque la bibliothèque de suppression est modifiée pour permettre la déclaration manuelle des enregistrements, ces éléments peuvent être supprimés une fois que vous les avez supprimés. Lorsqu’un élément d’une bibliothèque d’enregistrement est modifié, il 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 : Corriger les doublons de bibliothèque de la bibliothèque

Mettez à jour la bibliothèque de mise à jour afin qu’elle ne déclare pas automatiquement les éléments en tant qu’enregistrements. La bibliothèque de congés permet de déposer les documents dans un emplacement qui peut être soumis à de nombreuses règles d’organisateur de contenu.

Cela permet de s’assurer que les nouveaux éléments chargés dans la bibliothèque de mise en place ne provoquent pas de duplication ou ne provoquent pas d’erreur. Activez la déclaration manuelle des enregistrements dans la bibliothèque de suppression afin que vous pouvez supprimer des documents existants après les avoir supprimés et nettoyer la bibliothèque de suppression.

Étape 2 Corriger les doublons de la bibliothèque d’enregistrement

Pour corriger les doublons existants dans la bibliothèque d’enregistrement, suivez les étapes suivantes :

  1. Supprimez le récepteur d’événements qui s’exécute pendant l’action de suppression d’élément.
  2. Supprimez les enregistrements en double.
  3. Ajoutez de nouveau le récepteur d’événements.

La section suivante répertorie les étapes en détail :

Important

La suppression du récepteur d’événements qui s’exécute pendant la tentative de suppression permet la suppression de n’importe quel document. Cela inclut tous les documents légitimes qui ne doivent pas être supprimés. Testez d’abord ces étapes dans un environnement de test. Prenez des précautions extrêmes en vous assurez que le site n’est pas disponible pour les utilisateurs au cours de cet exercice afin que les utilisateurs ne suppriment aucun autre document.

  1. Dans SharePoint Management Shell, exécutez le script suivant sur tous les récepteurs d’événements et ré répertoriés :

    $problemweb = Get-SPWeb http://<Your Site Collection>
    $problemlist = $problemweb.Lists["<Record Library Name>"]
    $problemlist.EventReceivers | select type, name
    

    Notes

    Vous devez remplacer <YourSiteCollection> et avec la valeur <Rocrdr Listbrayt name> correcte.

    Dans cette sortie, calculez la position du type de récepteur d’événements en commençant par le haut en tant que numéro de position 0 tout en incrémentant la séquence du récepteur d’événements ItemDeleting suivant.

    Par exemple, dans la sortie suivante, le récepteur d’événements se trouve en ItemDeleting deuxième position dans le tableau. Ainsi, le numéro de position est 1 car les tableaux commencent par 0 :

    Type Name
    ---- ----
    ItemUpdating ECM_RecordEventReceiver
    ItemDeleting ECM_RecordEventReceiver
    ItemFileMoving ECM_RecordEventReceiver
    ItemAdded Document ID Generator
    ItemAdded ECM_RecordEventReceiver
    ItemUpdated Document ID Generator
    ItemUpdated ECM_RecordEventReceiver
    ItemCheckedIn Document ID Generator
    ItemCheckedIn ECM_RecordEventReceiver
    ItemUncheckedOut Document ID Generator
    
  2. Assurez-vous que la position du tableau pointe vers le récepteur ItemDeleting d’événements :

    $problemev = $problemlist.EventReceivers[Position of the "ItemDeleting" event receiver]
    

    Par exemple :

    $problemev = $problemlist.EventReceivers[1]
    
  3. Supprimez le récepteur d’événements ItemDeleting :

    $problemev.Delete()
    
  4. Mettez à jour la liste :

    $problemlist.update()
    
  5. Supprimez les doublons de la bibliothèque d’enregistrement à l’aide du navigateur.

  6. Exécutez le script suivant pour re-créer le récepteur ItemDeleting d’événements :

    $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()
    

Plus d’informations

Le récepteur ItemDeleting d’événements est de type SPEventReceiver . En fournissant le récepteur d’événements et en utilisant cette méthode, vous receiverType pouvez créer le récepteur Assembly className d’événements.