В этой статье я хочу рассказать о возможностях ветвления задач на согласование по регламенту.
Cначала немного о кейсах.
На двух проектах перехода с Directum 5 на DirectumRX столкнулись с бизнес-процессами, не вписывающимися в привычную канву регламента согласования. В первом случае, в маршруте согласования есть возможность на разных этапах отправить задание Инициатору с вопросами по документу (Уточнить). Требуется, чтобы в случае, когда на этапе несколько исполнителей, задание на уточнение отправлялось инициатору сразу же, и не влияло на выполнение параллельных заданий, а главное, чтобы задание, по которому потребовались уточнения, не было просрочено из-за долгого ожидания ответа. После выполнения заданий на уточнение требуется “разбудить” регламент для согласующего и продолжить маршрут.
Так как регламенты у заказчика достаточно объемные, а сроки проекта сжатые (но когда и кого это останавливало?), реализовывать свой тип задачи слишком долго и затратно, ввиду того, что, маршрутов много и разрабатывать придется далеко не одну задачу. Хотелось бы перенести маршруты 5-ки в задачи на согласование по регламенту, но как же реализовать эти требования? Если отправлять задание на уточнение подзадачей, то тут мы не можем обеспечить требование по просроченным заданиям отправляющего. Если мы для уточнения будем использовать задание на доработку, то не сможем реализовать требование по независимой работе нескольких исполнителей по этапу.
Кусочек схемы из Д5 выглядит примерно так:
Кейс, описанный выше, очень похож на другой, встреченный нами случай - «Запрос мнений». Требуется на любом этапе маршрута иметь возможность отправить задание одному или нескольким сотрудникам для запроса их мнений, при этом, избегая ситуации, когда задание исполнителя по согласованию будет просрочено. И, конечно, на этапах с несколькими исполнителями отправка такого запроса не должна влиять на другие задания блока.
Покрутив разные варианты, мы пришли к выводу что нам требуется создавать подзадачу для уточнения/сбора мнений, при этом «поставить на паузу» задание согласующего и вернуть его в работу после выполнения подзадачи.
Было принято решение разработать свой тип задачи для отправки заданий на уточнение, который и будет использовать в подзадаче. Наша задача состоит всего из двух блоков: задание для уточнения/запроса, и скрипт, возвращающий родительское задание в работу.
Для того, чтобы «поставить на паузу» задание согласующего нам потребовалось доработать три типа заданий - ApprovalAssignment, ApprovalCheckingAssignment и ApprovalSimpleAssignment. Во-первых, в свойство Status (перечисление) было добавлено новое значение.
Во-вторых, в этих типах заданий разработали действие, создающее подзадачу нужного нам типа, и изменяющее состояния задания (Status) на новое значение. Срок в исходном задании просто очищается. В случае с уточнением мы запрашиваем в диалоге только текст вопроса для уточнения (исполнитель – инициатор задачи). В случае с запросом мнений, где пользователь сам определяет кому отправить задание, добавлен диалог с указанием сотрудников, сроком и последовательностью отправки заданий. Для того чтобы управлять доступностью этого действия в задании, перекрыли Этапы согласования и добавили логическое значение «Доступна отправка на уточнение/запрос мнения».
На любом этапе с заданием или согласованием можно включить возможность отправки на уточнение/запрос мнения.
В задании пользователя есть действие для отправки подзадачи.
После отправки подзадачи на уточнение, задание у согласующего переходит в статус «На уточнении». Это не влияет на параллельные задания по этапу, остальные согласующие могут выполнить свои задания независимо от запроса мнения. У самого исполнителя после отправки на уточнение кнопки для выполнения задания становятся недоступными.
По завершении задачи на уточнение, задание согласующего (запросившего мнение) снова возвращается в работу: заданию устанавливается статус «В работе», оно отмечается как непрочитанное, срок пересчитывается. При необходимости дату создания задания можно изменить. Пользователь видит свое задание в списке входящих, как новое, может открыть его и выполнить.
Схема решения по второму кейсу отличается только тем, что заданий в задаче за запрос мнения может быть отправлено несколько, пользователь сам управляет последовательностью отправки заданий (последовательно/параллельно) и сроками. В остальном схема остается прежней: создается подзадача, задание согласующего получает новый статус, срок очищается, а по завершении подзадачи родительское задание возвращается в работу.
Это решение позволило нам реализовать требования заказчиков с минимальными затратами и избежать разработки новых типов задач при переходи с Directum 5 на RX.
Добрый день! Мне кажется довольно популярный кейс, спасибо за описанный вариант решения.
У меня появилось пара вопросов:
1. Как-то учитывается, что если запрос мнения долго не выполняется, то по факту затягивается все согласование? Предусматриваются ли какие-то напоминания или возможность автовыполнения задания? Что произойдет если инициатор запроса мнения прекратит задачу?
2. Стандартные отчеты по исполнительской дисциплине никак не модифицировали в связи с изменениями?
Елена, добрый день. Обсуждали разные варианты с заказчиками, исходя из требований легко можно реализовать и прекращение задания на уточнений и возвращать эстафетную палочку согласующему, но в этих конкретных случаях мы этого не делали. Просто потому что в Д5 выполнение заданий было на совести тех у кого мнение запрашивают и они к этому привыкли. В статье хотела сделать упор именно на концепцию решения, дальше можно развивать и усложнять.
Стандартные отчеты не модифицировали.
Алена, спасибо за ответ
Добрый день! Интересный кейс, для более глубокого понимания можете уточнить несколько вопросов.
1. Почему просроченность задания была настолько критичной? Это жесткие внутренние правила, или наоборот, нежесткие? Срок согласования исходный - это инструмент организации работы исполнителя и возможность соблюдать общие итоговые нормативы по согласованию документов. Если исполнителю нужны уточнения, пусть запрашивает, но не в последний день, к примеру. И найдет способ получить ответы в установленный ему (исполнителю) срок.
2.Если заказчик запросил такую фичу, значит потребность частая, опять же почему? А может в процессах проблема, сроки этапов нереально короткие, информации на вход согласующим недостаточно? Появление в отчете по исп. дисциплине просроченных заданий - это же не только инструмент "карания", но и анализа эффективности процессов?
3.Как то думали над разграничением ситуаций, когда сроки уточнений объективно и субъективно затягиваются, чтобы это не превратилось в инструмент манипуляции и искусственного улучшения отчетов по дисциплине?
Светлана, для понимания общей картины поможет факт, что решение сделано в рамках кейса Экстремальное внедрение Directum RX в группе «Интеррос».
Авторизуйтесь, чтобы написать комментарий