Μήνυμα λάθους κατά τη διαγραφή μιας καρτέλας στο Microsoft Dynamics CRM: "σφάλμα: υπηρεσία διαγραφής απέτυχε η εκκαθάριση ορισμένων πινάκων"


Συμπτώματα


Όταν διαγράφετε μια καρτέλα στο Microsoft Dynamics CRM, ενδέχεται να καταγραφεί το ακόλουθο μήνυμα λάθους στο αρχείο καταγραφής εφαρμογής:
Τύπος συμβάντος: σφάλμα
Προέλευση συμβάντος: MSCRMDeletionService
Κατηγορία συμβάντος: καμία

Το Αναγνωριστικό συμβάντος: 16387
Ημ/νία: ημερομηνία
Ώρα: ώρα
ΕΊΜΑΙ χρήστη: δ/υ

Υπολογιστής: όνομα_υπολογιστή
Περιγραφή:
Σφάλμα: Υπηρεσία διαγραφής απέτυχε να εκκαθαρίσετε Ορισμένοι πίνακες.

Αιτία


Αυτό το ζήτημα παρουσιάζεται επειδή υπάρχει ένας περιορισμός στον πίνακα "οντότητα" της καρτέλας που διαγράφεται. Επιπλέον, ο χρήστης που διαγράφει την εγγραφή ίσως δεν έχετε τα δικαιώματα για να διαγράψετε όλες τις σχετικές εγγραφές.

Για παράδειγμα, ας υποθέσουμε ότι έχετε δικαιώματα για να διαγράψετε μόνο τις επαφές. Προσπαθείτε να διαγράψετε μια επαφή που σχετίζεται με τρεις περιπτώσεις. Στο Microsoft Dynamics CRM, τη σχέση σε επικάλυψη μεταξύ της επαφής οντότητας και η οντότητα "υπόθεση" έχει οριστεί σε "Διαδοχική διαγραφή όλων." Επομένως, η καρτέλα επαφής έχει οριστεί σε κατάσταση διαγραφής της βάσης δεδομένων του Microsoft Dynamics CRM. Ωστόσο, δεν έχετε δικαιώματα για να διαγράψετε τις περιπτώσεις. Επομένως, η κατάσταση της διαγραφής δεν έχει οριστεί στις καρτέλες υποθέσεων. Όταν η υπηρεσία διαγραφής προσπαθεί να διαγράψετε την καρτέλα επαφής, έναν περιορισμό αποκλείει αυτήν τη διαγραφή, επειδή υπάρχουν τρεις υπάρχουσες υποθέσεις που έχουν εκχωρηθεί στην επαφή. Για να διαγράψετε με επιτυχία αυτήν την καρτέλα, πρέπει να διαγράψετε τις εγγραφές που προκαλούν τη διένεξη περιορισμών.

Προτεινόμενη αντιμετώπιση


Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα.

Σημείωση Πριν να ακολουθήσετε τις οδηγίες σε αυτό το άρθρο, βεβαιωθείτε ότι έχετε πλήρη αντίγραφο της βάσης δεδομένων που μπορείτε να επαναφέρετε εάν προκύψει κάποιο ζήτημα.

Για να προσδιορίσετε τον πίνακα όπου η υπηρεσία διαγραφής αποτυγχάνει, ακολουθήστε τα εξής βήματα:
  1. Στο διακομιστή του Microsoft Dynamics CRM, κάντε κλικ στο κουμπί Έναρξη, κάντε κλικ στο κουμπί
    Εκτέλεση, πληκτρολογήστε cmdκαι στη συνέχεια κάντε κλικ στο κουμπί
    OK.
  2. Στη γραμμή εντολών, πληκτρολογήστε crmdeletionservice.exe – runonce καταλόγουκαι, στη συνέχεια, πιέστε το πλήκτρο ENTER.

    Σημείωση Από προεπιλογή, το αρχείο Crmdeletionservice.exe βρίσκεται στη μονάδα δίσκου: \program files\Microsoft Dynamics CRM\server\bin καταλόγου.

    Στη συνέχεια, λαμβάνετε ένα μήνυμα παρόμοιο με το ακόλουθο μήνυμα:
    Δεν είναι δυνατό να καθαρίσετε τους παρακάτω πίνακες: εκστρατείας
    Σημείωση Ο πίνακας που επιστρέφεται στο μήνυμα είναι ο πίνακας για τον οποίο η υπηρεσία διαγραφής απέτυχε.
Το ακόλουθο παράδειγμα παρουσιάζει τον τρόπο για να επιλύσετε αυτό το ζήτημα για τον πίνακα της εκστρατείας.

Για να επιλύσετε το ζήτημα για τον πίνακα Καμπάνια, ακολουθήστε τα εξής βήματα:
  1. Εκτελέστε μια εντολή στο SQL Query Analyzer. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Κάντε κλικ στο κουμπί Έναρξη, τοποθετήστε το δείκτη σε Όλα τα προγράμματα, στην Microsoft SQL Serverκαι, στη συνέχεια, κάντε κλικ στο κουμπί Ανάλυση ερωτημάτων.
    2. Εκτελέστε το παρακάτω ερώτημα προς το
      Βάση δεδομένων _MSCRM Όνομα οργανισμού.

      Σημείωση Όνομα οργανισμού είναι ένα σύμβολο κράτησης θέσης για το όνομα πραγματικό οργανισμό.
      delete from Campaign where DeletionStateCode = 2
      Αυτό το ερώτημα επιστρέφει ένα μήνυμα παρόμοιο με το ακόλουθο μήνυμα:
      ΔΙΑΓΡΆΨΤΕ την πρόταση που είναι σε διένεξη με τον περιορισμό ΑΝΑΦΟΡΆ σε ΣΤΉΛΗ 'campaign_leads'. Παρουσιάστηκε η διένεξη στη βάση δεδομένων'OrganizationName_MSCRM', πίνακα 'LeadBase' στήλη 'CampaignId'. Η πρόταση έχει τερματιστεί.
  2. Διορθώστε τις εγγραφές που προκαλούν τη διένεξη περιορισμών, χρησιμοποιώντας μια εντολή παρόμοια με την ακόλουθη δήλωση.
    Update LeadBase set CampaignId=null WHERE CampaignId IN (SELECT CampaignId FROM CampaignBase WHERE DeletionStateCode = 2)
    Σημείωση Ο πίνακας και τα πεδία που μπορείτε να χρησιμοποιήσετε στην πρόταση εξαρτώνται από το μήνυμα που λάβατε στο βήμα 1b παραπάνω σε αυτήν την ενότητα. Σε αυτό το παράδειγμα, καθορίζετε το πεδίο CampaignId στον πίνακα LeadBase στην τιμή null, εάν η εκστρατεία έχει μαρκαριστεί για διαγραφή.
  3. Εκτελέστε την ακόλουθη εντολή για να βεβαιωθείτε ότι όλοι οι πίνακες έχουν διορθωθεί.
    crmdeletionservice.exe –runonce 
    Εάν εξακολουθείτε να αντιμετωπίζετε πρόβλημα, επαναλάβετε τα βήματα 1 έως 3 παραπάνω σε αυτήν την ενότητα για να διορθώσετε τους άλλους περιορισμούς.