Разберем жизненный цикл наших заявок более подробно. В нем прослеживаются следующие этапы:
- Создание. Заявка только что создана автором, она может быть отредактирована и оставлена на неопределенный срок в таком состоянии. До тех пор, пока пользователь не воспользуется действием Отправить в техподдержку.
- Ожидание. Отправляем заявку в службу поддержки и ждем, когда один из сотрудников поддержки возьмет заявку в работу. При помощи кнопки Взять в работу, которая должна быть доступна всем специалистам службы поддержки.
- Исполнение. По заявке выполняются все необходимые работы. По завершении мероприятий исполнитель (тот самый сотрудник, который взял заявку в работу) нажимает кнопку Закрыть заявку.
- Выполнена. При необходимости заявитель может вернуть заявку на доработку при помощи соответствующего действия.
Описанный жизненный цикл документа в СЭД Detrix именуется маршрутом. А перечисленные этапы — точками маршрута. Маршрут выполняет следующие задачи:
- Однозначно идентифицирует состояние документа (этап жизненного цикла) в любой момент времени.
- Определяет набор действий, доступных пользователям в зависимости от их отношения (ролей) к документу и состояния документа.
- Определяет набор действий для выполнения системой самостоятельно и время их исполнения.
Переходим к реализации.
Открываем страницу Маршрута, нажимаем на кнопку Добавить точку.
В атрибут Название вводим значение Создание. Нажимаем на кнопку Делегировать и выбираем Название действия — Редактировать, Тип — Переменная, Значение — АВТОР.
А теперь разберем чего же мы там понажимали. Если коротко и по существу, мы делегировали автору документа право на выполнение действия Редактировать, которое добавили ранее на странице Действия. В списке Название, как вы могли убедиться, находятся все действия, которые ранее мы добавляли на странице Действия. Список Тип позволяет определить кому мы делегируем действие (проще говоря, кому покажем кнопку на панели действий документа). Тут возможны варианты: Структура, Группы, Переменная, Поле. Если выбрать Структура, то нужно будет выбрать сотрудника (сотрудников) и/или подразделение (подразделения), которому (которым) будет доступно действие, непосредственно из Структуры. Вариант Группы позволяет указать группу сотрудников, которым будет делегировано действие (мы рассмотрим подробнее этот вариант чуть позже). В качестве Переменной выступает АВТОР документа (у каждого документа он свой, потому и Переменная). Ну, а если выбрать Поле, то действие будет делегировано тем сотрудникам, которые будут находиться в соответствующем поле документа.
Итак, тот, кто создаст заявку (он же Автор) сможет отредактировать документ. Ему же нужно предоставить возможность отправки заявки в работу. А для этого необходимо делегировать действие Отправить в техподдержку. Кому? Конечно, Автору. Делегируйте.
А теперь представляем себе ситуацию, когда наступает благословенный момент, и автор отправляет заявку в техподдержку. Наступление этого момента ожидали система, бизнес-процесс, желающие поработать в поддержке… Detrix позволяет описать такое ожидание посредством размещения действия в контексте ожидания. Для этого нажмите Ожидать. В списке Название будут находиться те действия, исполнение которых система теоретически может дождаться от пользователей, т.е. действия, которые вообще в принципе могут быть выполнены пользователями и были ранее кому-либо делегированы. Выберите Отправить в техподдержку. Тип укажите Переменная, а Значение — АВТОР. Такое положение вещей предписывает системе ожидать выполнение автором документа действия Отправить в техподдержку. Если автор вдруг выполнил иное действие (например, Редактировать) — ничего не случится. Если вдруг действие было делегировано не только автору, но и другим сотрудникам, которые начали дружно нажимать на заветную кнопочку — также ничего не произойдет. И только тогда, когда автор выполнит действие — система переместит документ на следующую точку маршрута. Которую нужно добавить. Но перед этим еще раз взглянем на то, что у нас получилось. А получиться должна вот такая картинка:
Добавляем новую точку посредством кнопки Добавить точку. Вводим Название — Ожидание. Именно на этой точке окажется документ, после того как его автор выполните действие Отправить в техподдержку. Если оставить все как есть, то пользователь, открывший документ на этой точке, не увидит ни одной кнопки, поскольку контекст делегирования пуст. Нас, конечно, такое положение вещей не сильно устраивает, поэтому займемся делом. Нажимаем Делегировать. Название действия — Взять в работу. Кому будем делегировать? Сотрудникам техподдержки. Указать таких сотрудников можно несколькими способами. Первый способ — выбрать из Структуры. Но далеко не факт, что в соответствующем подразделении собраны именно те, кто занимаются заявками. И захламлять почтовые ящики сотрудников, непричастных процессу, уведомлениями на заявки не совсем хорошая идея. Поэтому выбрать полностью организационную единицу может не получиться и тогда придется выбирать сотрудников поименно. А в случае расширения / сокращения штата техподдержки придется открывать маршруты документов (у нас может быть не одна такая заявка) и вносить изменения вручную. Поэтому мы пойдем другим путем, а именно воспользуемся Группами. Группы — это по сути недоразвитый вариант ролей. А фактически это справочник, по умолчанию находящийся в меню Справочники / Системные. Открываем его и создаем новую группу Техподдержка, в которой указываем всех сотрудников службы поддержки. Теперь в случаем изменения структуры, достаточно будет обновить эту группы, и все маршруты и действия получат новый список автоматически. А теперь делегируем нашу Взять в работу созданной группе Техподдержка.
Что мы имеем на текущий момент? Мы имеем такую ситуацию, что если вдруг какой-то сотрудник техподдержки, имея соответствующие права доступа, вдруг откроет заявку, то он сможет взять ее в работу. Но он может и не догадаться о том, что ему нужно куда-то заходить и что-то открывать. Поэтому, не полагаясь на случай, мы, как порядочные проектировщики бизнес-процесса, просто обязаны его и всех его коллег уведомить о том, что есть документ (заявка), требующих их внимания. Для таких целей служит действие Уведомление. Оно отправляет указанным адресатам почтовое сообщение (в собственный почтовый модуль системы, откуда сообщение может быть отправлено на внешний почтовый сервер, если настроен соответствующим образом профиль пользователя). Осталось решить, кто это Уведомление запустит. Раз других желающих при текущем раскладе дел не наблюдается запускать придется системе самостоятельно. Для такого запуска предназначен контекст выполнения — все действия, которые размещаются в нем, выполняются системой в тот момент, когда документ оказывается на текущей точке. Нажимаем кнопку Выполнить. В Названии указываем тип действия Уведомление и настраиваем его вот таким образом:
- Адресат: Группы / Техподдержка.
- Текст: Поступила заявка, откройте ее по ссылке и возьмите в работу.
- Сохранить.
Читайте внимательно, что теперь произойдет. После того как автор документа нажмет на делегированную ему кнопку Отправить в техподдержку, документ переместится на точку маршрута Ожидание. И выполнится действие Уведомление, размещенное в контексте выполнения маршурта. Которое уведомит о наличии заявки всех сотрудников поддержки. Которые откроют документ и увидят делегированное им действие Взять в работу. Которое самый шустрый из них выполнит. Система же будет ждать этого самого выполнения. Подскажем ей, что она должна это делать, нажав на Ожидать и указав Название — Взять в работу. От кого будем ожидать выполнение действия? Ведь сотрудников поддержки может быть неизвестное количество людей. Собственно, нам нет никакой разницы, кто из них начнет работу по заявке, поэтому мы можем ожидать выполнения действия от любого из них. Вот и выбираем Тип — Переменная, Значение — Любой. Ну и неплохо было бы этого любого куда-то записать, чтобы в будущем иметь возможность работать с ним персонально. Для этого установим переключатель Записать в поле и в появившемся списке полей структурного типа выберем поле Исполнитель. Все сохраняем и любуемся:
И еще один момент. В нашем сценарии был вот такой пункт:
Заявки должны получать уникальные номера, чтобы проще было ссылаться на них при разборе полетов.
Конечно, присваивать эти номера должна также сама система и лучший момент для того, чтобы это сделать — сразу после того как пользователь отправит заявку в поддержку. Т.е. в контексте выполнения точки Ожидание. А поэтому нажимаем еще раз на Выполнить и выбираем действие Регистрация. Данный тип действия позволяет присваивать документам уникальные регистрационные номера в соответствии с нумераторами. В новой вкладке браузера откройте Справочники / Системные / Регистрационные номера. Здесь настраиваются эти самые нумераторы. Жмем Новая запись. В открывшемся окне заполняем атрибуты:
- Категория: Разное.
- Название: Заявки в техподдержку.
- Префикс. Это первая часть регистрационного номера. Давайте сделаем наши номера вот такими: ЗТП-Счетчик/2012, которые в следующем году начнутся с ЗТП-1/2013 и т.д. Здесь ЗТП - и будет префиксом.
- Счетчик оставляем без изменений.
- Постфикс: /[ГГГГ]. При регистрации система автоматически подставит четыре цифры текущего года.
- Количество цифр счетчка. Для пущей красоты можно выбрать 3 или 4 в зависимости от прогнозируемого количества заявок в течение года. И тогда первый номер будет вот таким: ЗТП-001/2012 или ЗТП-0001/2012.
- Периодичность нумератора: Год. Раз в год счетчик будет сбрасываться, и, например, первая заявка в 2013 году будет иметь номер ЗТП-001/2013.
Итого:
Возвращаемся к нашему действию Регистрация и выбираем созданный нумератор для использования.
Далее галопом по маршруту:
- Добавить точку.
- Название: Исполнение.
- Делегировать:
- Название: Закрыть заявку.
- Тип: Поле.
- Значение: Исполнитель. Т.е. кнопка Закрыть заявку будет доступна только тому сотруднику техподдержки, который взял ее в работу на предыдущей точке маршрута, в связи с чем был записан в поле Исполнитель в контексте ожидания.
- Ожидать:
- Название: Закрыть заявку.
- Тип: Поле.
- Значение: Исполнитель.
- Добавить точку.
- Название: Выполнена.
- Делегировать:
- Название: Вернуть на доработку.
- Тип: Переменная.
- Значение: Автор. Автор сможет выполнить действие Вернуть на доработку. А, если вы помните, это действие имеет тип Перемещение с аргументом -1, т.е. оно перемещает документ на -1 точку маршрута (на Исполнение).
- Делегировать:
- Название: Взять в работу.
- Тип: Поле.
- Значение: Заявитель. Автор и Заявитель могут различаться, т.к. автор при создании заявки может изменить значение поля, где определяется заявитель (на тот случай, если создает заявку от имени недееспособного пострадавшего соседа). Можно предположить, что в таком случае заявитель сам сможет и захочет работать дальше с заявкой и вернуть ее на доработку.
Итого:
Ну что ж. В принципе, все. Заявки уже работают. О том как работают и как их собрать воедино, чтобы можно было еще и отчетную информацию получать — в следующей статье.
Огромное спасибо. все в голове встало на свои места
Добрый день.
Скажите, пожалуйста, ка организовать замену преднастроенного маршрута документа для конкретно взятого документа?
Заранее благодарю, спасибо!
Уточните вопрос.
У нас есть есть тип документа. У него маршрут: Согласование, Подпись, Резолюция, Закрытие. Создаем документ этого типа, но нужно, чтобы у конкретного документа этого типа не было Согласования и Подписи (к примеру), то есть была только резолюция и можно было его закрывать.
Измените маршрут соответствующим образом. К примеру, добавьте в документ логическое поле или перечисление, чтобы пользователь мог выбрать определенное значение, указав тем самым, что этот конкретный док не нуждается в согласовании и подписи. А затем в маршруте, используя Условие, перемещайте док сразу на точку Резолюция.
Не совсем понятно, как это реализовать, есть ли какая-либо инструкиця или не могли ли Вы описать это более детально?
Также интересен следующий момент, в рамках отдельного документа можно ли организовать маршрут вместо стандартного
Согласование, Подпись, Резолюция, Закрытие
следующий
Резолюция, Согласование, Подпись, Закрытие
?
Спасибо большое за время
См. мой предыдущий комментарий. Нужно какое-то средство для того, чтобы система могла отличить этот особый нестандартный документ. Я предложил поле. Дальше реализуйте через маршрут.
Изучите, как минимум, статью http://www.detrix.kz/2012/03/11/tipy-dokumentov-v-detrix-bystryj-start-marshrut-2, все должно встать на свои места. А вообще http://www.detrix.kz/help. Или http://www.detrix.kz/support.
Правильно ли я понимаю, что на форме добавления точки маршрута:
Выполнить — это то, что система будет выполнять самостоятельно, когда документ попадет в данную точку, при этом указанные действия идут по порядку, начиная с самого верха. При этом именно сюда надо добавить условие, о котором Вы писали выше?
Делегировать — это операции, которые пользователь может сделать с документом (по сути — кнопки на форме просмотра документа)?
Ожидать — это действия, приводящие документ в это состояние? Тут, откровенно говоря, не совсем понятно, что делать.
Спасибо Вам за время
1. Да.
2. Да.
3. В контексте Ожидания указывается действие, в результате выполнения которого заданным пользователем, система перемещает документ на следующую точку маршрута. Есть и иные средства перемещения документа по маршруту, это одно из них.
Спасибо Вам за помощь
Добрый день, у меня не появляется кнопка «редактировать», если убираю ее совсем из маршрута и действий, возникает следующая проблема: не появляются кнопка «взять в работу». на каждом этапе сохранения выдает ошибки:
‘ ‘field_ef3f3daada
field_f2750d5626
field_c50f94e2d6
field_d347bf2d68
field_c7b9567107
field_b16460d850
field_d91d266347
Подскажите с чем это связано и что с этим делать? спасибо
Здравствуйте. Опишите, пожалуйста, свою проблему подробнее. Откровенно говоря, ничего не понял.
Здравствуйте.
Выражаю Вам свою благодарность за Ваш труд.
Помощь великолепно составлена, с юмором написана, читается легко и понятно.
И чтобы она стала ещё лучше предлагаю исправь небольшую опечатку в тексте «Первый способ — выбрать их Структуры.» («их» на «из»)
ДобРа.
Готово. Спасибо.
Создал новый тип документов. Заполнил вкладки «Общие», «Поля», «Действия», «Маршрут», «Шаблон», «Безопасность». Теперь хочу попробовать создать документ, однако в пункте меня «Документы» данного типа документов нет. Как можно добавить созданный тип документов туда?
Читайте дальше http://www.detrix.kz/2012/03/13/kak-rabotayut-dokumenty-i-kak-oni-sobirayutsya-v-zhurnaly/
Прочитал. Создал журнал. Пункт появился в меню «Документы». Открываю журнал, оттуда открываю создание документа. Открывается пустой блок, в котором только одна кнопка «В журнал». Ниже — пусто. Почему ничего нет?
Шаблон создан, права на шаблон и на журнал даны.
Сам нашел причину. Оказывается, если в шаблон не добавлены пользовательские поля, то он НЕ ОТОБРАЖАЕТСЯ вообще! То есть ни сам шаблон, ни кнопки. Прошу указать данный момент в документации.