Симптоми
Получавате едно от следните съобщения за грешка, когато работите с отчети в business Portal, в зависимост от това дали използвате Microsoft Dynamics GP 9.0 или Microsoft Dynamics SL 6.5.
Microsoft Dynamics GP
Когато щракнете върху Управление на каталога заотчети , получавате следното съобщение за грешка:
Грешка в сървъра в "/" приложение.
-------------------------------------------------------------------------------- стойност
е твърде голяма или твърде малка за Int16.
Описание: Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Прегледайте проследяването на стека за повече информация за грешката и къде е възникнала в кода.
Подробности за изключението: System.OverflowException: Стойността е била твърде голяма или твърде малка за Int16.
Грешка източник:
Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Информацията относно произхода и местоположението на изключението може да бъде идентифицирана с помощта на проследяването на стека на изключението по-долу.
Проследяване на
стека: [OverflowException: Стойността е била твърде голяма или твърде малка за Int16.] System.Int16.Parse(String s, Стил "Числостил", доставчик на IFormatProvider) +129 Microsoft.BusinessPortal.ReportsPages.VS.ReportRolesAssignments.FillRoles() +186 Microsoft.BusinessPortal.ReportsPages.VS.ReportRolesAssignments.RoleRptID_TextChanged(Подател на обект, EventArgs e) +32 System.web.UI.WebControls.TextBox.OnTextChanged(EventArgs e) +108 System.Web.UI.WebControls.TextBox.System. Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +26 System.web.UI.page.raiseChangedEvents() +115 system.web.UI.page.processRequestMain() +1099
--------------------------------------------------------------------------------
информация за версията: Microsoft .NET Framework (платформа) version:1.1.4322.2032; ASP.NET Версия:1.1.4322.2032
ЛА на Microsoft Dynamics
Когато подадете отчет, получавате следното съобщение за грешка:
Неуспешно подаване наReportRequest. Стойността е била твърде голяма или твърде малка за Int16.
Причина
Този проблем възниква поради една от следните причини в зависимост от това дали използвате Microsoft Dynamics GP 9.0 или Microsoft Dynamics SL 6.5.
Microsoft Dynamics GP
Полето DEX_ROW_ID в таблицата ReportCatalog има стойност, която е по-голяма от максималната разрешена стойност от 32767.
ЛА на Microsoft Dynamics
Таблицата ReportRequest, която се използва от планировчика на отчети, включва полето ИД на AppSrvRequest. Полето ИД на AppSrvRequest има стойност, която е по-голяма от максималната разрешена стойност от 32767.
Решение
За да разрешите този проблем, следвайте съответната процедура в зависимост от това дали използвате Microsoft Dynamics GP 9.0 или Microsoft Dynamics SL 6.5.
Microsoft Dynamics GP
Нулирайте DEX_ROW_ID поле. За да направите това, изпълнете следните стъпки:
-
Следвайте съответната стъпка в зависимост от това дали използвате Microsoft SQL Server или SQL Server работен плот (известен още като MSDE 2000):
-
Ако използвате 2000 Microsoft SQL Server 2000, стартирайте SQL анализатор на заявки. За да направите това, щракнете върху Старт, посочете Програми, посочете Microsoft SQL Serverи след това щракнете върху Анализатор на заявки.
-
Ако използвате Microsoft SQL Server 2005, стартирайте SQL Server Management Studio. За да направите това, щракнете върхуСтарт , посочете Програми ,посочете Microsoft SQL Server 2005и след това щракнете върху SQL ServerManagement Studio.
-
Ако използвате MSDE 2000, стартирайте конзолата на администратора на поддръжката. За да направите това, щракнете върху Старт, посочете Програми, посочете Конзолата на администратора на Microsoftи след това щракнете върху Конзола на администратора на поддръжката.
-
-
Изпълнете следната команда в базата данни на фирмата.
DBCC CHECKIDENT ('ReportCatalog', RESEED, 1)
-
Изчистете таблицата ReportCatalog, като използвате SQL анализатор на заявки или SQL Server Management Studio. Услугата за интегриране на FRx ще пренасочи таблицата с правилната стойност в DEX_ROW_ID поле. За да направите това, изпълнете следната команда спрямо фирмената база данни.
DELETE AppSrvRequest
ЛА на Microsoft Dynamics
Нулиране на полето ИД на AppSrvRequest. За да направите това, изпълнете следните стъпки:
-
Следвайте съответната стъпка в зависимост от това дали използвате Microsoft SQL Server или SQL Server работен плот (известен още като MSDE 2000):
-
Ако използвате 2000 Microsoft SQL Server 2000, стартирайте SQL анализатор на заявки. За да направите това, щракнете върху Старт, посочете Програми, посочете Microsoft SQL Serverи след това щракнете върху Анализатор на заявки.
-
Ако използвате Microsoft SQL Server 2005, стартирайте SQL Server Management Studio. За да направите това, щракнете върхуСтарт , посочете Програми ,посочете Microsoft SQL Server 2005и след това щракнете върху SQL Server Management Studio.
-
Ако използвате MSDE 2000, стартирайте конзолата на администратора на поддръжката. За да направите това, щракнете върху Старт, посочете Програми, посочете Конзолата на администратора на Microsoftи след това щракнете върху Конзола на администратора на поддръжката.
-
-
Изпълнете следната команда спрямо системната база данни.
Delete from AppsrvRequest
Delete from Scheduler
DBCC CHECKIDENT('AppSrvRequest',RESEED, 0)Забележка: Следването на тези стъпки изтрива всички планирани искания. Трябва да създадете отново планираните искания.
-
Изчистете таблицата ReportCatalog, като използвате SQL анализатор на заявки или SQL Server Management Studio. Услугата за интегриране на FRx ще пренасочи таблицата с правилната стойност в полето ИД на AppSrvRequest. За да направите това, изпълнете следната команда спрямо фирмената база данни.
DELETE ReportCatalog