Ошибка при вхоже "Пользователи портала"

Доброго времени суток.
Воникла проблема с BPMonline Service Desk. Заходя во вкладку Инструменты - Администрирование - Пользователи портала, система выдает сообщение ошибки:

В работе приложения BPMonline возникла ошибка.
Exception Message: Невозможно получить экземпляр схемы типа "Terrasoft.Configuration.SysSSPUserQSchema"
Exception Type: Terrasoft.Common.NullOrEmptyException
Exception Source: Terrasoft.Core

Нравится

7 комментариев

Стандартно в конфигурации нет схемы с названием «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

Часто бывает и такое.

Это означает что не найден элемент с определенным идентификатором. Как пример, удалили поле в объекте, затем его добавили, но ранее уже была выполнена привязка к полю.

В таких случаях можно попробовать выполнить очистку профиля пользователя или выполнить отладку кода.

Показать все комментарии