Attachments – работа с вложениями
<< Click to Display Table of Contents >> Объектная модель > Workflow – управление бизнес-процессами Attachments – работа с вложениями |
Вложение представляет собой ссылку на объект системы, которая отображается в области вложений карточки задачи, задания или уведомления. Область вложений можно разделить на группы. Для этого в узле «Форма» редактора типа задачи или задания, задания на приемку или уведомления задаются необходимые настройки. При необходимости можно также добавить обработчики событий создания, добавления или удаления вложений.
Для программной работы с вложениями используются свойства задач, заданий или уведомлений.
Имя |
Тип |
Описание |
---|---|---|
AllAttachments |
IEnumerable<IEntity> |
Все вложения семейства задачи, включая ее задания и подзадачи. Свойство доступно только для чтения. Добавлять или удалять вложения через это свойство нельзя |
IChildEntityCollection<IWorkflowEntityAttachmentDetails> |
Детальная информация о вложениях конкретной задачи. Является свойством-коллекцией. Свойство можно использовать для поиска по вложениям |
|
ICollection<IEntity> |
Вложения задачи, задания или уведомления. Например, документы, папки, справочники. Свойство позволяет добавлять или удалять вложения |
|
AttachmentsInfo |
IEnumerable<IAttachmentInfo> |
Информация о вложениях задания. Свойство используется для доступа к служебной информации о том, когда, где и кем было добавлено вложение и к какой группе оно принадлежит |
ICollection<IEntity> |
При работе с группой вложений, кроме свойств AllAttachments и Attachments, доступны автогенерируемые свойства |
Пример 1. Получение списка вложений всего семейства задач
var docs = task.AllAttachments.ToList();
Пример 2. Добавление документа вложением в задачу
var task = Sungero.Workflow.SimpleTasks.Create();
task.Attachments.Add(document);
Пример 3. Поиск по вложениям
// Получить список поручений по совещаниям.
IQueryable<RecordManagement.IActionItemExecutionTask> GetMeetingActionItemExecutionTasks()
{
var minuteses = Minuteses.GetAll(m => m.Meeting != null);
var groupId = Docflow.PublicConstants.Module.TaskMainGroup.ActionItemExecutionTask;
return RecordManagement.ActionItemExecutionTasks.GetAll(a => a.AttachmentDetails.Any(d => d.EntityTypeGuid == Minutes.ClassTypeGuid &&
d.GroupId == groupId && minuteses.Any(m => Equals(m.Id, d.AttachmentId))));
}
В примере groupId – это идентификатор группы вложения, который присваивается автоматически при добавлении группы вложений на форму:
Этот идентификатор сохраняется в константе модуля.
Пример 4. Проверка того, что документ вложен в задачу
// При старте задачи проверить, что документы вложены в группу «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("Вложите договор на подписание");
}
Assignment, Notice – задания и уведомления ReviewAssignment – задание на приемку Attachments – состояние групп вложений задач, заданий, уведомлений |
© Компания Directum, 2024 |