Συμπτώματα
Έχετε σημειώσεις που είναι διπλότυπες ή συνδεδεμένες μεταξύ τους στο Microsoft Dynamics GP.
Αυτό το άρθρο παρέχει μια δέσμη ενεργειών που μπορεί να χρησιμοποιηθεί για τον προσδιορισμό του υψηλότερου ευρετηρίου σημειώσεων που έχει εκχωρηθεί σε μια δεδομένη εταιρεία. Μπορείτε επίσης να το χρησιμοποιήσετε για να επαναφέρετε την επόμενη τιμή ευρετηρίου σημειώσεων στον επόμενο υψηλότερο αριθμό. Αυτό θα αποτρέψει τη διασταύρωση ή την εσφαλμένη διασταύρωση των ευρετηραμάτων σημειώσεων στο μέλλον.
Αυτό δεν θα διορθώσει τα ευρετήρια σημειώσεων που είναι ήδη εσφαλμένα.
Αιτία
Το επόμενο ευρετήριο σημειώσεων στον κύριο πίνακα της εταιρείας (SY01500) έχει οριστεί πολύ χαμηλά, με αποτέλεσμα οι νέες εγγραφές να λαμβάνουν ευρετήρια σημειώσεων που είναι ίδια με άλλα.
Ανάλυση
1. Δημιουργήστε ένα αντίγραφο ασφαλείας του DYNAMICS και όλων των εταιρικών βάσεων δεδομένων.
2. Εκτελέστε την ακόλουθη πρόταση σε σχέση με τη βάση δεδομένων της εταιρείας που έχει τις διπλότυπες ή διασταυρούδετες σημειώσεις.
Σημείωση Εάν χρησιμοποιείτε την "Ανάλυση ερωτήματος", εκτελέστε την πρόταση SQL "Ανάλυση ερωτήματος". Για να ανοίξετε την "Ανάλυση ερωτήματος", κάντε κλικ στην επιλογή "Έναρξη", τοποθετήστε το δείκτη του ποντικιού στην επιλογή "Προγράμματα", τοποθετήστε το δείκτη του ποντικιού στην επιλογή Microsoft SQL Server και, στη συνέχεια, κάντε κλικ στην επιλογή "Ανάλυση ερωτήματος". Εάν χρησιμοποιείτε το Microsoft SQL Server Management Studio, εκτελέστε την πρόταση σε Microsoft SQL Server Management Studio. Για να ανοίξετε Management Studio, κάντε κλικ στην επιλογή "Έναρξη", τοποθετήστε το δείκτη του ποντικιού στην επιλογή "Προγράμματα", τοποθετήστε το δείκτη του ποντικιού στην επιλογή Microsoft SQL Server 2005/2008/2012 και, στη συνέχεια, κάντε κλικ στην επιλογή SQL Server Management Studio. Για να εκτελέσετε μια δέσμη ενεργειών, κάντε κλικ στην επιλογή "Νέο ερώτημα".
---------------------------------------------
/*
** FindMaxNoteIndex.SQL
**
** Σκοπός:
**
** Βρείτε τη μέγιστη τιμή της συνάρτησης NOTEINDX από όλους τους πίνακες, συμπεριλαμβανομένης της Project Λογιστικής.
**
** Αυτή η δέσμη ενεργειών πρέπει να εκτελείται κατά της εταιρείας στην οποία οι σημειώσεις είναι εσφαλμένες.
** θα ενημερώσει αυτόματα το SY01500 για εσάς στο σωστό ευρετήριο επόμενης σημείωσης.
**
*/
εάν υπάρχει (επιλέξτε * από tempdb..sysαντικείμενα όπου όνομα = '##GPSMaxNote')
drop table dbo.##GPSMaxNote
ορισμός nocount σε
δημιουργία πίνακα ##GPSMaxNote (MaxNoteIndex numeric(19;5) null)
μετάβαση
-----------------------
δηλώστε @cStatement varchar(255) /* Τιμή από το t_cursor */
δηλώστε @noteidx αριθμός(19;5)
δήλωση @database ως varchar(5)
ορισμός @database = cast(db_name() ως varchar(5)) /* Λήψη των πινάκων που έχουν ένα όνομα στήλης
του NOTEINDX. */
δήλωση T_cursor δρομέα για
επιλέξτε "declare @NoteIndex numeric(19;5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)"
από sysobjects o, syscolumns c
όπου o.id = c.id
και o.type = 'U'
και (c.name = 'NOTEINDX' ή c.name όπως '%noteidx%' ή c.name όπως '%niteidx%' ή c.name ='NOTEINDX2') /* Εντάξει, έχουμε τη λίστα των
πινάκων. Τώρα λάβετε τη μέγιστη τιμή της συνάρτησης NOTEINDX από κάθε πίνακα. */
άνοιγμα T_cursor
λήψη στη συνέχεια από T_cursor σε @cStatement
ενώ (@@fetch_status <> -1)
έναρξη
exec (@cStatement)
λήψη στη συνέχεια από T_cursor σε @cStatement
τέλος
deallocate T_cursor
/* Εμφάνιση μέγιστου ευρετηρίου σημειώσεων */
επιλέξτε "Max Note Index:", max(MaxNoteIndex) από ##GPSMaxNote όπου το MaxNoteIndex δεν είναι null
/* Ενημέρωση ευρετηρίου επόμενης σημείωσης */
χρήση του DYNAMICS
ορισμός @noteidx = (επιλέξτε max(MaxNoteIndex) από ##GPSMaxNote όπου το MaxNoteIndex δεν είναι null)
ενημέρωση SY01500 που NOTEINDX = (@noteidx + 1,0) όπου INTERID=@database
ορισμός της απενεργοποίησης nocount
--------------------------------------------------------------------------
Αυτό θα βρει το μέγιστο ευρετήριο σημειώσεων για όλες τις εταιρείες και, στη συνέχεια, θα ενημερώσει τον πίνακα SY01500 για να εξασφαλίσει ότι οι σημειώσεις δεν θα συνδεθούν στο μέλλον.
3. Επαναλάβετε το βήμα 2 για κάθε εταιρική βάση δεδομένων που έχει διασταυρούδετα ευρετήρια σημειώσεων.
Αυτό το άρθρο ήταν Αναγνωριστικό εγγράφου TechKnowledge: 4837
ΙΣΧΎΕΙ ΓΙΑ
• |
Microsoft Dynamics GP 9.0 |
• |
Microsoft Business Solutions–Great Plains 8.0 |
• |
Microsoft Business Solutions–Great Plains 7.5 |
• |
Microsoft Great Plains eEnterprise 7.0 |
• |
Microsoft Great Plains Dynamics 7.0 |
• |
Great Plains eEnterprise 6.0 |
• |
Great Plains Dynamics 6.0 |
• |
Διαχείριση συστήματος |