<< Click to Display Table of Contents >> Объектная модель > Базовое решение Directum RX > Docflow – документооборот > Задача на продление срока DeadlineExtensionTask – запрос на продление срока |
![]() ![]() ![]() |
Наследник от Sungero.Workflow.Task. Задача на продление срока позволяет добавить в любой тип задания возможность запросить продление срока исполнителю.
Создается только как подзадача из задания, для которого необходимо продлить срок. Для задания возможна только одна задача на продление срока со статусом «В работе». Перед отправкой обязательно необходимо указать причину продления срока.
Для основных типов задач помимо продления срока задания реализована дополнительная логика:
•для задания на исполнение поручений продливается срок задачи. Также обновляется срок соответствующего пункта в таблице для составного поручения, а для поручений с соисполнителями обновляется срок заданий соисполнителей;
•для задачи на согласования по регламенту пересчитывается ожидаемый срок;
•для задания на свободное согласование документа продляется срок задачи, если новый срок больше установленного;
•для задания на ознакомление обновляется срок задачи, если новый срок больше установленного;
•для задания на контроль возврата документа от контрагента обновляется срок на вкладке «Выдача» документа;
•для задания запрос отчета исполнения поручений продляется срок задачи;
•для задания на возврат документа обновляется срок на вкладке «Выдача» документа.
При добавлении действия по продлению срока в новом типе задания, при необходимости нужно самостоятельно реализовать дополнительную логику:
1.В задании реализовать серверные функции:
•GetAssigneesForDeadlineExtension(): получение списка возможных сотрудников, которые могут продлевать срок. Если функция не реализована, то продлевать срок могутинициатор задачи или его руководитель;
•ExtendAssignmentDeadline(): логика продления срока в задании. Если функция не реализована, то установится новый срок в задании, из которого продлили срок;
•GetPerformersForDeadlineExtensionNotification(): получение списка сотрудников, которых нужно уведомить о продлении срока. Если функция не реализована, то уведомление придет только инициатору задачи на продление срока;
•GetNewDeadlineForDeadlineExtensionNotification(): вычисление нового срока для конкретного получателя уведомления. Например, для поручений срок соисполнителя отличается от срока исполнителя. Если функция не реализована, то новый срок для уведомления вычисляется из задачи на продление срока.
2.В задаче реализовать серверную функцию:
•ExtendTaskDeadline(): продление срока в задаче. Если функция не реализована, то срок задачи не изменяется.
Вариант процесса и схема в среде разработки
С версии 4.10 схема задачи настраивается в проводнике системы, в ней можно создавать и настраивать варианты процессов. Таким образом задачи, запущенные до обновления системы, пойдут по схеме, настроенной в среде разработки, а новые запустятся по новому варианту процесса, настраиваемому в веб-клиенте.
Схема варианта процесса продления срока:
Схема в среде разработки
Имя свойства |
Отображаемое имя |
---|---|
Кому |
|
Текущий срок |
|
Конечный срок |
|
Новый срок |
Assignee (Кому): Sungero.CoreEntities.User
Исполнитель задания на продление срока. Заполняется программно при создании задачи.
Список сотрудников при выборе не ограничивается настройками видимости оргструктуры.
NewDeadline (Новый срок): Дата и время
Желаемый срок задания. Новый срок должен быть больше CurrentDeadline (Текущий срок), а также больше или равен текущей дате.
CurrentDeadline (Текущий срок): Дата и время
Срок текущего задания. Поле скрыто на форме. Добавлен для программной проверки нового срока.
MaxDeadline (Конечный срок): Дата и время
Срок задачи на продление срока. Поле скрыто на форме. Срок устаналивается программно до старта задачи – один рабочий день.
GetPerformersForNotification (Получатели уведомления о продлении срока)
Возвращает получателей уведомления о продлении срока.
Логика определения получателей уведомления реализуется в функции GetPerformersForDeadlineExtensionNotification() ведущего задания. Если функция не реализована, то уведомление получает инициатор задачи.
GetDeadlineExtensionSubject (Тема уведомления о продлении срока)
Возвращает тему уведомления о продлении срока.
© Компания Directum, 2024 |