Симптоми
Имате бележки, които са дублирани или кръстосани в 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 задаване на брой на create table ##GPSMaxNote (MaxNoteIndex numeric(19,5) null) Отидете----------------------- declare @cStatement varchar(255) /* Value from the t_cursor */ деклариране @noteidx число(19;5) деклариране @database като varchar(5) set @database = cast(db_name() as varchar(5))/* Get the tables that have a column name of NOTEINDX. */declare T_cursor cursor for изберете "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 fetch next from T_cursor into @cStatement докато (@@fetch_status <> -1) Започне exec (@cStatement) извличане от T_cursor в @cStatement Края deallocate T_cursor/* Display Maximum Note Index */ изберете "Max Note Index:", max(MaxNoteIndex) from ##GPSMaxNote където MaxNoteIndex не е Null/* Update Next Note Index */ използване на DYNAMICS set @noteidx = (select max(MaxNoteIndex) from ##GPSMaxNote where MaxNoteIndex is not Null) update SY01500 зададете NOTEINDX = (@noteidx + 1.0), където INTERID=@database задаване на брой изкл.-------------------------------------------------------------------------- Така ще се намери максималният индекс на бележките за всички фирми и след това ще се актуализира таблицата 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 |
|
• |
System Manager |