Проблемы
У вас есть заметки, которые дублируются или перекрестно связаны в 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..sys, где имя = '##GPSMaxNote')
drop table dbo.##GPSMaxNote
set nocount on
создать таблицу ##GPSMaxNote (MaxNoteIndex число(19,5) null)
перейти
-----------------------
объявить @cStatement varchar(255) /* Значение из t_cursor */
declare @noteidx число(19,5)
объявлять @database как varchar(5)
set @database = cast(db_name() as varchar(5))
/* Get the tables that have a column name of NOTEINDX. */
объявите T_cursor для
select 'declare @NoteIndex numeric(19,5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)'
from sysobjects o, syscolumns c
где o.id = c.id
и o.type = "U"
и (c.name = 'NOTEINDX' или c.name like '%noteidx%' или c.name like '%niteidx%' или c.name ='NOTEINDX2')
/* Итак, у нас есть списоктаблиц. Теперь получите максимальное значение 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) из ##GPSMaxNote где MaxNoteIndex не null
/* Update Next Note Index */
использование DYNAMICS
set @noteidx = (select max(MaxNoteIndex) from ##GPSMaxNote where MaxNoteIndex is not null)
обновление SY01500 set NOTEINDX = (@noteidx + 1,0), где INTERID=@database
set nocount off
--------------------------------------------------------------------------
Это позволит найти индекс заметок для всех компаний, а затем обновить таблицу SY01500, чтобы гарантировать, что заметки не будут перекрестно связаны друг с другом.
3. Повторите шаг 2 для каждой базы данных компании, в которой есть индексы заметок с перекрестной связью.
Эта статья была посвящена ИД документа TechKnow это: 4837
ОТНОСИТСЯ К
• |
Microsoft Dynamics GP 9.0 |
• |
Microsoft Business Solutions — отличные простые 8.0 |
• |
Microsoft Business Solutions — отличные простые 7.5 |
• |
Microsoft Great Plains eEnterprise 7.0 |
• |
Microsoft Great Plains Dynamics 7.0 |
• |
Great Plains eEnterprise 6.0 |
• |
Great Plains Dynamics 6.0 |
• |
System Manager |