Доброго времени суток.
Воникла проблема с BPMonline Service Desk. Заходя во вкладку Инструменты - Администрирование - Пользователи портала, система выдает сообщение ошибки:
В работе приложения BPMonline возникла ошибка.
Exception Message: Невозможно получить экземпляр схемы типа "Terrasoft.Configuration.SysSSPUserQSchema"
Exception Type: Terrasoft.Common.NullOrEmptyException
Exception Source: Terrasoft.Core
Нравится
Стандартно в конфигурации нет схемы с названием «SysSSPUserQSchema». Возможно это какая-то доработка?
Что пишет в полном тексте сообщения?
Какая у Вас используется версия системы?
Exception Stack Trace: at Terrasoft.Core.SchemaManager`1.InitializeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly) at Terrasoft.Core.SchemaManagerItem`1.get_Instance() at Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid) at Terrasoft.UI.WebControls.Controls.EntityDataSource.get_Schema() at Terrasoft.UI.WebControls.Controls.DataSourceStructure.TryAddColumnByMetaPath(String schemaColumnMetaPath) at Terrasoft.WebApp.PortalUsersGridPageSchema.UpdateDataSource() at Terrasoft.WebApp.BaseGridPageSchema.InitializeControls() at Terrasoft.WebApp.PortalUsersGridPageSchema.InitializeControls() at Terrasoft.UI.WebControls.PageSchema.get_TopLevelControl() at Terrasoft.UI.WebControls.PageSchema.InitializeLocalizableValues(String resourceManagerName, String resourceGroupName) at Terrasoft.Core.SchemaManager`1.InitializeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly) at Terrasoft.Core.SchemaManagerItem`1.get_Instance() at Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid) at Terrasoft.UI.WebControls.Controls.PageContainer.LoadFromAssembly() at Terrasoft.UI.WebControls.Controls.PageContainer.LoadUserControl() at Terrasoft.UI.WebControls.Controls.PageContainer.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at Terrasoft.UI.WebControls.PageControl.AddedControl(Control control, Int32 index) at Terrasoft.UI.WebControls.Controls.Container.AfterItemAdd(Component item) at Terrasoft.UI.WebControls.Utilities.ItemsCollection`1.Add(T item) at Terrasoft.UI.WebControls.Controls.PageContainer.LoadFromAssembly() at Terrasoft.UI.WebControls.Controls.PageContainer.LoadUserControl() at Terrasoft.UI.WebControls.Controls.PageContainer.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.AddedControl(Control control, Int32 index) at Terrasoft.UI.WebControls.PageControl.AddedControl(Control control, Int32 index) at Terrasoft.UI.WebControls.Controls.Container.AfterItemInsert(Int32 position, Component item) at Terrasoft.UI.WebControls.Utilities.ItemsCollection`1.Insert(Int32 index, T item) at Terrasoft.WebApp.MainPageEventsProcessSchema`1.InitScriptTaskExecute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context) at Terrasoft.WebApp.MainPageEventsProcessSchema`1.ProcessQueue(ProcessExecutingContext context) at Terrasoft.WebApp.MainPageEventsProcessSchema`1.OnExecuted(Object sender, ProcessActivityAfterEventArgs e) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context) at Terrasoft.WebApp.MainPageEventsProcessSchema`1.ProcessQueue(ProcessExecutingContext context) at Terrasoft.WebApp.MainPageEventsProcessSchema`1.ThrowEvent(ProcessExecutingContext context, String message) at Terrasoft.UI.WebControls.PageSchemaUserControl.ThrowEvent(String message) at Terrasoft.UI.WebControls.Controls.PageContainer.LoadFromAssembly() at Terrasoft.UI.WebControls.Controls.PageContainer.LoadUserControl() at Terrasoft.UI.WebControls.Controls.PageContainer.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Application Version: 5.4.0.1315
А у Вас в разделе «Конфигурация» есть схема, называющаяся «SysSSPUserQSchema» или «SysSSPUserQ»?
Судя по коду, логика системы обращается к схеме по имени и не находит. Возможно, она не перенесена в корневую конфигурацию из другой или на основной сервер с сервера разработки.
Или где-то в коде портальной страницы допущена опечатка, вместо «SysSSPUser» написали «SysSSPUserQ».
При попытке открыть метаданные SysSSPUserQ выдало ошибку. (см. скриншоты)
Exception Message: Невозможно получить экземпляр схемы типа "Terrasoft.Configuration.SysSSPUserQSchema" Exception Type: Terrasoft.Common.NullOrEmptyException Exception Source: Terrasoft.Core Exception Stack Trace: at Terrasoft.Core.SchemaManager`1.InitializeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly) at Terrasoft.Core.SchemaManagerItem`1.get_Instance() at Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid) at Terrasoft.Core.SchemaManager`1.GetReadableSchemaMetaData(Guid schemaUId, UserConnection userConnection) at Terrasoft.WebApp.SolutionExplorerModule.OnViewMetaDataMenuItemClick(Object sender, AjaxEventArgs e) at Terrasoft.UI.WebControls.Controls.ScriptManager.RaisePostBackEvent(String eventArgument) at Terrasoft.UI.WebControls.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) Form: submitAjaxEventConfig: {"config":{"viewStateMode":"include","extraParams":{"tag":""}}} __EVENTTARGET: ScriptManager __EVENTARGUMENT: ViewMetaDataMenuItem|event|Click __VIEWSTATEFIELDCOUNT: 13 __VIEWSTATE0: /wEPGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYWBQ1TY3JpcHRNYW5hZ2VyBRlTeXNTY2hlbWFGb2xkZXJEYXRhU291cmNlBRNTeXNTY2hlbWFEYXRhU291cmNlBQlNYWluUGFuZWwFCUxlZnRQYW5lbAUPQWN0aW9uc1RhYlBhbmVsBQdGb.....................
Возможно, стандартную схему «SysSSPUser» кто-то пытался доработать и переименовать и сломал.
Посмотрите у неё значения «Изменено» и «Изменил».
Можно накатить схему, взятую с тестового (или наоборот, основного) сайта.
Ещё можно удалить самую свежую запись в таблице SysSchemaInSolution, где SysSchemaId равно Id этой схемы. Это вернёт предыдущую версию.
Exception Message: Элемент коллекции с идентификатором "{2BCBE4B8-FD0E-4CC6-A979-93574A377150}" не найден Exception Type: Terrasoft.Common.ItemNotFoundException Exception Source: Terrasoft.Core
Часто бывает и такое.
Это означает что не найден элемент с определенным идентификатором. Как пример, удалили поле в объекте, затем его добавили, но ранее уже была выполнена привязка к полю.
В таких случаях можно попробовать выполнить очистку профиля пользователя или выполнить отладку кода.