<< Click to Display Table of Contents >> Разработка > Примеры разработки > Обработчики событий Передача данных между событиями разных сущностей |
Ситуация
Необходимо передать данные между событиями разных сущностей. Например, в событии До сохранения документа не выводить ошибки, если оно вызвано из задачи на согласование.
Решение
1.Добавьте константу с названием параметра для обозначения того, что сохранение документа выполняется из задачи.
public const string DontShowIntegrationErrors = "DontShowIntegrationErrors";
2.В обработчиках схемы задачи, в которых происходит сохранение документа, перед выполнением базовой логики добавьте в документ параметр:
var document = _obj.DocumentGroup.OfficialDocuments.First();
((Sungero.Domain.Shared.IExtendedEntity)document).Params[Constants.Module.DontShowIntegrationErrors] = true;
// Вызов базового обработчика события.
base.CompleteAssignment27(assignment, e);
3.В обработчике события До сохранения документа используйте ранее вычисленный параметр:
//Contains() – проверка наличия параметра.
if (!e.Params.Contains(Constants.Module.DontShowIntegrationErrors))
e.AddError(sendingResult);
После сохранения параметр очищается.
© Компания Directum, 2024 |