<< Click to Display Table of Contents >> Объектная модель > Действия с репозиториями и сущностями > AddError, AddInformation, AddWarning – валидация AddError – добавить сообщение об ошибке |
Метод e.AddError() применяется, когда действия пользователя могут привести к нарушению целостности работы системы. Например, когда пользователь может ввести некорректное значение в поле на форме сущности или пропустить обязательные для заполнения поля. В случае ошибки метод отображает соответствующее текстовое сообщение:
Если метод вызывается в событии свойства сущности «Изменение значения контрола», то сообщение имеет вид:
Если метод вызывается в серверном событии, то прекращаются все дальнейшие операции после завершения текущего обработчика события. Например, если в событии вызвать метод e.AddError() до сохранения сущности, то сохранение не произойдет, но код события выполнится до конца.
Если метод вызывается в клиентском событии, то после завершения текущего обработчика события все дальнейшие операции выполняются. Например, если метод вызывается в событиях «Показ формы», «Обновление формы» или в событии действий «Выполнение», то операции не прекращаются, их нужно прекратить вручную. Для этого в коде после валидации проверьте состояние сущности с помощью свойства IsValid или метода Validate(). Затем принудительно завершите операцию, например, сразу после метода e.AddError() поставьте оператор Return.
Метод доступен в событиях:
Наименование события |
Тип сущности, где вызывается событие |
Серверные события |
|
«До сохранения», «До удаления» |
Все типы сущностей |
«До подписания» |
Документ |
«До старта», «До рестарта», «До прекращения» |
Задача |
«До выполнения», «До принятия», «До отправки на доработку» |
Задание, задание на приемку и уведомление |
Клиентские события |
|
«Показ формы», «Обновление формы» |
Все типы сущностей |
События свойств типа сущности |
|
«Изменение значения контрола» |
Все типы сущностей |
События действия типа сущности |
|
«Выполнение» |
Все типы сущностей |
В зависимости от того, в каком событии вызывается метод, количество его перегрузок может отличаться:
Перегрузки
AddError(string message) |
Добавить сообщение об ошибке. Текст сообщения задается в коде |
AddError(LocalizedString message) |
Добавить сообщение об ошибке. Текст сообщения задается в виде строки локализации |
AddError(IPropertyInfo propertyInfo, string message, params IPropertyInfo[] relatedPropertiesInfo) |
Добавить сообщение об ошибке для свойства. Текст сообщения задается в коде |
AddError(IPropertyInfo propertyInfo, LocalizedString message, params IPropertyInfo[] relatedPropertiesInfo) |
Добавить сообщение об ошибке для свойства. Текст сообщения задается в виде строки локализации |
AddError(string message, params IActionInfo[] actions) |
Добавить сообщение об ошибке для действия. Текст сообщения задается в коде |
AddError(LocalizedString message, params IActionInfo[] actions) |
Добавить сообщение об ошибке для действия. Текст сообщения задается в виде строки локализации |
AddError(IChildEntity childEntity, string message) |
Добавить сообщение об ошибке для дочерней сущности. Текст сообщения задается в коде |
AddError(IChildEntity childEntity, LocalizedString message) |
Добавить сообщение об ошибке для дочерней сущности. Текст сообщения задается в виде строки локализации |
AddError(IChildEntity childEntity, IPropertyInfo propertyInfo, string message, params IPropertyInfo[] relatedPropertiesInfo) |
Добавить сообщение об ошибке для свойства дочерней сущности. Текст сообщения задается в коде |
AddError(IChildEntity childEntity, IPropertyInfo propertyInfo, LocalizedString message, params IPropertyInfo[] relatedPropertiesInfo) |
Добавить сообщение об ошибке для свойства дочерней сущности. Текст сообщения задается в виде строки локализации |
Синтаксис
C# |
public void AddError(string message); public void AddError(LocalizedString message); public void AddError(IPropertyInfo propertyInfo, string message, params IPropertyInfo[] relatedPropertiesInfo); public void AddError(IPropertyInfo propertyInfo, LocalizedString message, params IPropertyInfo[] relatedPropertiesInfo); public void AddError(string message, params IActionInfo[] actions); public void AddError(LocalizedString message, params IActionInfo[] actions); public void AddError(IChildEntity childEntity, string message); public void AddError(IChildEntity childEntity, LocalizedString message); public void AddError(IChildEntity childEntity, IPropertyInfo propertyInfo, string message, params IPropertyInfo[] relatedPropertiesInfo); public void AddError(IChildEntity childEntity, IPropertyInfo propertyInfo, LocalizedString message, params IPropertyInfo[] relatedPropertiesInfo); |
Параметры
message – текст сообщения об ошибке;
propertyInfo – свойство сущности, для которого необходимо выполнить валидацию. Если свойство изменено, то сообщение об ошибке скрывается. Например, используется для проверки корректности заполнения поля в карточке;
relatedPropertiesInfo – дополнительные свойства. В параметре указываются все свойства, которые влияют на значение свойства из параметра propertyInfo. Если хотя бы одно из дополнительных свойств изменено, сообщение об ошибке скрывается;
actions – действия, которые отображаются вместе с ошибкой. Если для устранения ошибки пользователю необходимо выполнить действие, рядом с текстом ошибки можно добавить ссылку на действие;
childEntity – дочерняя сущность. Является строкой свойства-коллекции.
Пример 1. Проверка подписи перед удалением сущности
// Отобразить сообщение об ошибке, если сущность уже подписана.
public override void BeforeDelete(BeforeDeleteEventArgs e)
{
if (_obj.IsSigned)
e.AddError("Нельзя удалять подписанный документ");
}
Пример 2. Проверка наличия вложений перед стартом задачи
// При старте задачи проверить, что документы вложены в группу «DocumentsForSign»:
public static void BeforeStart(Sungero.Workflow.Server.BeforeStartEventArgs e)
{
var attachmentsAddedHere = _obj.DocumentsForSign
.Where(d => _obj.AttachmentsInfo.Any(i => i.Target == entity && i.LinkedTo(a));
if (!attachmentsAddedHere.Any())
e.AddError("Вложите документы на подписание");
}
Actions – метаданные действия сущности Properties – метаданные свойства сущности AddError, AddInformation, AddWarning – валидация Как настроить валидацию панели фильтрации для входящих документов |
© Компания Directum, 2024 |