Ознаки
Є нотатки, які дублюються або перехресні зв'язані в 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 Accounting. ** ** Цей сценарій має виконуватися з компанією, у якій нотатки неправильні.** програма автоматично оновить SY01500 до правильного індексу наступної нотатки.** */ якщо файл існує (виберіть * з tempdb. sysobjects where name = "##GPSMaxNote") drop table dbo.##GPSMaxNote установити кількість створити таблицю ##GPSMaxNote (MaxNoteIndex numeric(19,5) null) Йти----------------------- оголосити @cStatement varchar(255) /* значення з t_cursor */ оголосити @noteidx числові(19,5) оголосити @database як varchar(5) set @database = cast(db_name() as 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")/* Ok, у нас є список таблиць. Тепер отримайте максимальне значення NOTEINDX з кожної таблиці. */відкрити T_cursor віддалений доступ від T_cursor до @cStatement в той час як (@@fetch_status <> -1) Почати exec (@cStatement) віддалений доступ від T_cursor до @cStatement Кінці deallocate T_cursor/* Display Maximum Note Index */ виберіть "Max Note Index:", max(MaxNoteIndex) from ##GPSMaxNote where MaxNoteIndex is not null/* Update Next Note Index */ використовувати DYNAMICS set @noteidx = (select max(MaxNoteIndex) from ##GPSMaxNote where MaxNoteIndex is not null) оновлення SY01500 встановити NOTEINDX = (@noteidx + 1,0), де INTERID =@database вимкнути для параметра nocount-------------------------------------------------------------------------- Це дасть змогу знайти максимальний індекс нотаток для всіх компаній, а потім оновити таблицю SY01500, щоб переконатися, що нотатки не будуть пов'язані між собою в майбутньому.3. Повторіть крок 2 для кожної бази даних компанії з міжз'єднаними індексами нотати. Ця стаття була TechKnowledge Document ID: 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 |
|
• |
Системний диспетчер |