<< Click to Display Table of Contents >> Разработка > Элементы разработки > Разработка задач и заданий > Настройка блоков бизнес-процессов Блок «Задание» |
«Задание» (AssignmentBlock). Блок предназначен для создания заданий. Выход из блока происходит при выполнении или прекращении всех заданий, созданных в рамках блока.
Свойства блока
Свойство |
Описание |
---|---|
Заголовок (Title) |
Заголовок блока, который видит разработчик в схеме задачи |
Инициатор (Author) |
Инициатор задания |
Исполнители (Performers) |
Список исполнителей. Для выбора доступны роли и наследники от групп. Sid (идентификатор субъекта прав) можно узнать в таблице Sungero_Core_Recipient |
Тема (Subject) |
Тема задания, которую видят пользователи в системе |
Тема в переписке (ThreadSubject) |
Тема задания в переписке |
Текст (Text) |
Текст задания, который видят пользователи в системе |
Инструкция (Instruction) |
|
Результат отсутствия исполнителей (NoPerformersResult) |
Результат отсутствия исполнителей – это результат выполнения блока, если по нему не было создано ни одного задания. Возможные значения: •Не задан; •результат выполнения для задания, которое указанно в параметре *Тип задания. Например, Выполнить, На доработку, Отложить; •Результат: Нет исполнителей. Используйте, если нужно добавить переход из блока в виде отдельной стрелки в случае отсутствия исполнителей. На схеме появится возможность указать значение Нет исполнителей для исходящей из блока стрелки; •Иначе |
Параллельные задания (IsParallel) |
Признак, определяющий будут ли задания по блоку создаваться параллельно или последовательно. Возможные значения: •True – параллельно; •False – последовательно. Значение по умолчанию False (флажок не установлен) |
Срок выполнения (RelativeDeadline) |
Срок выполнения задания. При необходимости с помощью свойств RelativeDeadlineDays и RelativeDeadlineHours в программном коде можно указать срок выполнения в рабочих днях или в часах |
Срок прекращения (RelativeStopAssignmentsDeadline) |
Срок принудительного прекращения задания. При необходимости с помощью свойств RelativeStopDeadlineDays и RelativeStopDeadlineHours в программном коде можно задать срок прекращения в днях или в часах |
События блока
Событие |
Назначение |
Аргументы события |
---|---|---|
Старт блока (<Имя блока>Start) |
Заполнение свойств выполняемого блока. Событие выполняется на сервисе выполнения блоков схем задач (WorkflowBlockService) при старте обработки блока |
_obj – задача, в рамках которой обрабатывается блок; _block – блок, в рамках которого выполняется событие |
Старт задания (<Имя блока>Start<Тип задания>) |
•заполнение свойств, которые должны иметь разные значения у разных заданий. Например, разные сроки выполнения задания у разных исполнителей в составном поручении; •заполнение свойств задания, которые нельзя заполнить через свойства блока. Например, свойства типа Текст, Картинка, Бинарные данные. Событие выполняется на сервисе выполнения блоков схем задач (WorkflowBlockService) до старта задания (после создания и заполнения свойств задания) и до сохранения в базу данных. Событие выполняется для каждого задания, созданного в рамках блока. |
_obj – задача, в рамках которой обрабатывается блок; assignment – задание, созданное в рамках блока; _block – блок, в рамках которого выполняется событие |
Выполнение задания (<Имя блока>CompleteAssignment) |
Актуализация свойств задачи или других заданий в зависимости от свойств выполненного задания. При выполнении каждого из заданий в рамках блока код обработчика события выполняет сервис выполнения блоков схем задач (WorkflowBlockService). |
_obj – задача, в рамках которой обрабатывается блок; assignment – выполненное задание; _block – блок, в рамках которого выполняется событие |
Конец блока (<Имя блока>End) |
Актуализация свойств задачи при завершении всех заданий, созданных по блоку. Событие выполняется на сервисе выполнения блоков схем задач (WorkflowBlockService) при завершении обработки блока |
_obj – задача, в рамках которой обрабатывается блок; _block – блок, в рамках которого выполняется событие; createdAssignments – список заданий, созданных в рамках блока |
Пример. Актуализация свойств задания в зависимости от результата его выполнения
public virtual void
MyAssignmentBlockCompleteAssignment(Sungero.Docflow.IMyAssignment assignment)
{
// Переадресовать задание, если оно выполнено с результатом «Переадресовать».
if (assignment.Result == Sungero.MyModule.MyAssignment.Result.Forward)
{
assignment.Forward(assignment.ForwardPerformer, ForwardingLocation.Next);
}
else if (assignment.Result == Sungero.MyModule.MyAssignment.Result.Approve)
{
// В список исполнителей добавить сотрудников, которые выполнили задание
// результатом «Утверждено».
_obj.ApprovedPerformers.Add(assignment.Performer)
}
}
© Компания Directum, 2024 |