Работа с заданиями — это, пожалуй, наиболее часто используемая функция системы электронного документооборота. Казалось бы, что может быть проще — доставить документ исполнителю и получить реакцию на его обработку, но практика показывает, что задание — один из самых сложных объектов в СЭД. Российские СЭД имеют мощные средства управления заданиями. Расскажем, как реализованы задания в Docsvision, и какие есть особенности их реализации.

В отличие от других приложений корпоративной системы (ERP, CRM, PDM и пр.), в которых пользователь работает постоянно и выполняет активную роль при взаимодействии с программой, большинство пользователей СЭД работают в ней периодически, по мере возникновения необходимости обработки того или иного документа в рамках регламентов. Например, необходимо согласовать договор или заявку, утвердить распоряжение по входящему документу и пр. Большая часть процессов даже функцию инициации обработки документа реализует автоматически на основании стандартных процедур регламентов. Сценарий работы в СЭД отличается от работы в других приложениях: система должна уведомить пользователя о необходимости выполнения тех или иных действий и предоставить ему все необходимые данные в удобном интуитивно понятном интерфейсе для их выполнения, т.к. он может обрабатывать этот вид задания раз в год или вообще единственный раз. Уведомление и «доставка» документов и необходимого контента пользователю в нужное время реализуется как раз через механизм заданий. Задание обеспечивает также необходимый интерфейс для обработки документа, предлагая различные варианты завершения, форму для заполнения и пр., а иногда и краткую инструкцию о том, что необходимо сделать.
Как мы уже отметили, задание — достаточно сложный объект. Эта сложность – следствие разнообразия сценариев, которые приходится реализовать разработчикам приложений СЭД с использованием заданий. При всей сложности оно должно быть интуитивно понятным, чтобы сотрудник быстро сориентировался, что и как нужно сделать.

Базовые функции задания


Задание Docsvision базируется на том же объекте, что и карточка документа Docsvision (см. статью habrahabr.ru/company/docsvision/blog/263263) – соответственно, к ней применимы те же возможности кастомизации. Это возможность изменить структуру данных, интерфейс, логику обработки, машину состояний, ролевую модель и пр. Однако задание имеет предопределенную логику обработки, которая не может быть изменена. Задание имеет такие поля, как исполнитель, контролер, плановый и реальный сроки исполнения, плановую и фактическую трудоемкость и прочие, характерные именно для задания. Базовая логика обработки подразумевает маршрутизацию задания и уведомлений исполнителей, возможность для исполнителя видеть задание в соответствующих папках (Входящие) и завершить с помощью соответствующей кнопки.


Рис. 1. Интерфейс работы с заданием позволяет реализовать разнообразные операции по его обработке с помощью кнопок ленты.

Возможности маршрутизации заданий


Задание имеет разнообразные варианты маршрутизации в базовой функциональности: исполнитель может делегировать его (при наличии соответствующих прав) заместителю вручную, либо передав ему полностью права на исполнение, либо потребовав возврата по завершении. Задание может иметь шаг контроля: в этом случае после завершения задания оно будет передано контролеру на подтверждение исполнения. Задание может быть декомпозировано, т.е. по нему могут быть созданы подчиненные задания, которые, в свою очередь, могут быть декомпозированы — таким образом, формируется иерархия подчиненных заданий – это своего рода процесс исполнения задания, который может контролировать исполнитель. Помимо ручной маршрутизации, реализуются сценарии автоматического замещения: если сотрудник оказался, по тем или иным причинам, недоступен, то задание будет автоматически переправлено заместителям на исполнение.

Способы инициализации заданий в приложениях


Само по себе задание является отдельным приложением Docsvision. Оно может быть создано пользователем, но это далеко не единственный сценарий его инициализации. Есть несколько способов встроить задание в приложения Docsvision:
• Самый простой – использовать функцию инициализации задания в бизнес-процессе (https://habrahabr.ru/company/docsvision/blog/281959/), при этом при конструировании процесса нужно позаботиться о правильной инициализации параметров задания – назначении исполнителя, сроков, выбор вида задания, передаче в задания необходимых документов и пр.
• Для инициализации задания можно использовать специальный .Net компонент, который доступен для любой карточки. Он позволяет встраивать функции создания задач и контроля хода их исполнения для любых документов, настраиваемых с помощью конструктора или создаваемых в виде отдельных программных компонентов системы.
• И, наконец, функциональность работы с заданием может быть добавлена в любое приложение с использованием программного кода через API.

Кастомизация задания


Поведение стандартного функционала задания может быть настроено в справочнике видов объекта «Задание». Например, можно настроить правила делегирования, возможности декомпозиции, правила создания задания из карточек документов (в частности, правила автоматического заполнения полей задания из полей карточки документа).


Рис.2. Богатые возможности настройки стандартного поведения задания в справочнике видов задний без программирования

В задание можно добавлять или модифицировать произвольную функциональность с помощью конструкторов разметок, состояний, ролей и скриптов, аналогично тому, как это делается для всех других карточках документов Docsvision.

Кастомизация бизнес-логики, сбор метрик


В случае необходимости изменения бизнес-логики работы с заданиями в отдельных приложениях, например, реализуется нестандартная логика завершения. Предусмотрены так же средства настройки в справочнике видов заданий. Например, в случае специализированного задания в приложении «согласование финансовых документов» нужно не просто завершить задания, а выбрать одну из альтернатив – «Согласовать», «Отклонить» и «Дополнительное согласование», при этом в случае выбора альтернативы «Отклонить» необходимо указать причину в виде простого текста, в случае «Дополнительное согласование» — сотрудника или группу из справочника сотрудников. Подобные сценарии могут быть настроены стандартными механизмами без программирования.


Рис.3. Для кастомизации интерфейса и логики обработки задания доступны все инструменты Docsvision

Зачастую требуется более сложная обработка задания в процессе его исполнения. Один из таких сценариев – автоматический сбор информации о ходе исполнения задания для формирования метрик процесса. Например, можно сформировать программный скрипт, который будет отслеживать активность пользователя при работе с заданием и автоматически формировать отчет о фактических временных затратах на его исполнения. На практике приходится сталкиваться с самыми разнообразными сценариями работы с заданиями, что привело к необходимости реализовать все возможные механизмы кастомизации, аналогичные средствам кастомизации карточек документов.

Маршрутизируемые в задании объекты


Основная функция задания – доставлять исполнителю те или иные документы. Практика показывает, что это могут быть самые различные типы документов – обычные файлы, структурированные карточки документов, ссылки на различные внешние сущности, например, URL-ссылки, на те или иные WEB страницы, и, наконец, это могут быть объекты различных внешних систем, с которыми работает подсистема бизнес-процессов, через механизм шлюзов, про который мы говорили в предыдущей статье (https://habrahabr.ru/company/docsvision/blog/281959/).
Особенностью реализации работы заданий в Docsvision является возможность бесшовной маршрутизации внешних объектов шлюзов непосредственно в задании. Например, если пользователю необходимо на определенном этапе бизнес-процесса поработать с тем или иным документом 1С, он получит задание, в котором будет содержаться соответствующая ссылка и, инициировав ее, пользователь откроет именно тот документ, который ему необходим. У него нет нужды отдельно открывать программу 1С и искать там соответствующий объект.


Рис. 4. Задание поддерживает механизмы in-place – работу с контентом непосредственно в интерфейсе задания.

Управление задачами в бизнес-процессах


В случае если стандартных инструментов маршрутизации и обработки бизнес-логики задания для реализации функций приложения оказывается недостаточно, можно применить еще один механизм кастомизации – специальную функцию бизнес-процесса. Если задание инициировано бизнес-процессом, или бизнес-процесс каким-то образом «отыскал» задание для обработки, то можно настроить его таким образом, что он будет реализовывать логику обработки задания. Например, реализовать обработку нештатных ситуаций — автоматически завершить или отозвать задание, изменить исполнителя, сроки или текст задания, если нарушены какие-то регламенты его обработки. Это можно реализовать без программирования. И, естественно, в процессе можно применить и программную обработку задания, что делает возможности расширения логики обработки практически неограниченными.

Различные интерфейсы работы с заданиями


Задание – это объект, с которым пользователь должен взаимодействовать в любой момент времени через доступные ему средства коммуникации. Поэтому мы реализовали различные варианты работы с заданиями, через различные типы устройств. Сегодня пользователям доступны:
• Полнофункциональный клиент — Windows приложение
• Легкий клиент, работающий в HTML браузере
• Отдельное мобильное приложение для IPad или IPhone
• Почтовый клиент. Этот тип клиента позволяет обрабатывать задания прямо в стандартной программе электронной почты (например, в Gmail или почтовом клиенте мобильного телефона) без установки дополнительных компонент. Этот тип клиента, конечно, позволяет выполнить далеко не все операции, работы с заданием описанные выше. Но позволяет ознакомиться с файлом документа, внести в него изменения и сообщить о результатах обработки задания, например, согласовать или отклонить документ. Информация об этих действия будет доставлена в СЭД.
Помимо легкости такой обработки, преимуществом является возможность работы в Off-line.


Рис.5. Работа с заданием в легком клиенте


Рис. 6. Так выглядит задание в почтовом клиенте

Описанное далеко не исчерпывает возможностей задания в системе Docsvision, есть и другие возможности для реализации специфических сценариев в приложениях, но, как нам кажется, и этого достаточно, чтобы представить, насколько изощренные сценарии обработки заданий приходится реализовывать при создании приложений СЭД.
Поделиться с друзьями
-->

Комментарии (2)


  1. teifo
    13.07.2016 14:03

    Если можно взгляд просто человека со стороны. Я работаю с бумажками, но это так к слову. Дизайн мне, если честно, не очень нравится. Только на рисунке 5 более или менее. Настройки очень какие-то сложные. Вполне возможно, что любая такая система требует обучения, но мне всегда казалось, что выглядеть все должно иначе.


  1. AndreevVS
    13.07.2016 18:04

    Вы правы, обилие функций приводит к достаточно насыщенному интерфесу работы с заданиями, Но… На картинках 1 и 4 показан «полный интрерфейс» задания, в котором доступны все возможные функции, в реальных проектах, автоматизирующих конкртеный процесс большинство функций может быть скрыто, вплоть до желанной «одной кнопки». Для этого в системе и реализованы механизмы настроек, которые мы описывали в предыдущих статьях. Такая возможность есть… однкао, как показывает практика, в большинстве реальных проектов функциональность заданий все таки оказывается достаточно сложной… Но это не большая беда, так как в любых приложениях задания более менее одинаковые и отличаются только отдельными элементами интерфейса и в тексте задания может быть зафиксирована подсказка о возможных дейсвиях, так что обучатья нужно только один раз при внедрении первого контура или приложения на базе патформы…