📜 Справочный архивный материал (2012 г.)

Эта статья была опубликована в блоге нашей предыдущей open-source СЭД Detrix. Мы сохранили её для истории. Обратите внимание, что публикация носит неформальный, творческий и юмористический характер, а оригинальная авторская стилистика прошлых лет сохранена полностью — это скорее живой опыт и отвлеченные размышления разработчика, нежели руководство к действию. Наша новая BPM-платформа DOC-V продолжает эти идеи на современном технологическом уровне.

Скачать DOC-V бесплатно

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

А сценарий будет таков.

Пользователь, испытывающий дикую потребность в поддержке, создает заявку, в которой указывает:

После создания заявки автору необходимо предоставить возможность отредактировать заявку и отправить ее на исполнение. После отправки на исполнение сотрудники техподдержки должны получить соответствующее уведомление. Любой из них может взять заявку в работу и превратиться в исполнителя. Соответственно, после того, как он возьмет ее в работу, остальные должны будут остаться не при делах, и ожидать следующую заявку. Исполнитель после проведения необходимых мероприятий закрывает заявку, а автор (или заявитель) может вернуть ее на доработку, если проблема не решена полностью.

Система должна обеспечить быстрый доступ к существующим заявкам. А начальство в любой момент времени должно видеть:

Ах да. Заявки должны получать уникальные номера, чтобы проще было ссылаться на них при разборе полетов.

Очертив круг задач, приступаем.

Создание типа документа

Для того чтобы в системе заработали описанные заявки, администратор должен создать соответствующий тип документа. А пользователи соответственно будут создавать экземпляры данного типа документа или просто документы. Создание типа документа осуществляется через меню Администрирование / Документооборот / Типы документов. В окне с этими самыми типами нажимаем на кнопку Добавить тип документа.  В открывшемся окне заполняем основные реквизиты:

Создание типа документа в СЭД Detrix

Заполнение описаний, конечно, можно отложить на более поздний период. Жмем Сохранить и переходим на страницу  Поля.

Поля

Работа с полями типов документов осуществляется также как и с полями справочников (см.  Справочники: Быстрый старт), поэтому подробно рассматривать процесс не будем, а просто добавляем следующие поля:

Шаблон

Создаем шаблон документа. Собственно, этот процесс практически ничем не отличается от создания шаблона в справочнике, поэтому можно проявлять творчество самостоятельно или скопировать нижеприведенный код и вставить его в редактор шаблона, предварительно открыв окно html-кода (шестая справа кнопка в нижнем ряду панели инструментов редактора):


<h2>Заявка № [РЕГИСТРАЦИОННЫЙ НОМЕР] от [ДАТА РЕГИСТРАЦИИ]</h2>
<table style="width: 85%; height: 164px;" border="0">
<tbody>
<tr>
<td colspan="2">[РЕШЕНИЕ]</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%"><strong>Заголовок</strong>:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Заголовок}&nbsp;</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%"><strong>Заявитель</strong>:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Заявитель}</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%">Категория:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Категория}&nbsp;</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%"><strong>Описание</strong>:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Описание}</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%">Автор:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">[АВТОР]&nbsp;</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%">Поступила в техподдержку:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Время поступления заявки [*]}&nbsp;</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%">Закрыта:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">{Время закрытия заявки [*]}</td>
</tr>
<tr>
<td style="background: url(none) #f5f5f5; border: #cccccc 1px solid; padding: 5pt;" width="20%">Состояние:</td>
<td style="padding: 5pt; background: #f5f5f5; border: 1px solid #cccccc;">[СОСТОЯНИЕ]&nbsp;</td>
</tr>
</tbody>
</table>

Вот что получается в итоге:
Шаблон заявки в техподдержку
Несколько моментов:
  1. Поля в шаблон, как вы могли заметить ранее, вставляются в виде названия поля в фигурных скобках. Вот так: {Название поле}. Однако в данном шаблоне встречаются поля в квадратных скобках: [АВТОР], [СОСТОЯНИЕ], [РЕГИСТРАЦИОННЫЙ НОМЕР], [ДАТА РЕГИСТРАЦИИ], [РЕШЕНИЕ]. Первые четыре из перечисленных являются так называемыми системными полями. Это поля, которые присутствуют в любом типе документа вне зависимости ни от чего (поля, которые добавляет администратор, называются пользовательскими). Системные поля вставляются в шаблон при помощи списка, находящегося на панели инструментов редактора в нижнем ряду (по счету она вторая справа), в квадратных скобках. А вот РЕШЕНИЕ — это переменная. В переменные действия могут записывать результаты своего выполнения (чуть дальше станет понятно — о чем это я). Переменные размещаются в шаблоне при помощи списка, расположенного в нижнем ряду панели инструментов справа. И также в квадратных скобках.
  2. Два поля представлены в шаблоне вот в таком виде: {Время поступления заявки [*]} и {Время закрытия заявки [*]}. Звездочка в квадратных скобках скрывает поле в режиме редактирования. Поскольку эти поля по нашему сценарию будут заполняться системой самостоятельно, предоставлять возможность их заполнения пользователю совсем необязательно. Поэтому мы их и скрыли.

Действия

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

Давайте попробуем прикинуть, какие действия будут выполняться над заявкой участниками нашего мифического бизнес-процесса управления пользовательскими проблемами. Автору заявки понадобится возможность редактирования заявки. И отправки ее в техподдержку. Самому шустрому сотруднику техподдержки понадобится функция взятия заявки в работу и последующего закрытия. И наконец заявителю нужна будет возможность отправки заявки на доработку. Итого:

  • Редактировать;
  • Отправить в техподдержку;
  • Взять в работу;
  • Закрыть заявку;
  • Вернуть на доработку.

Перечисленные пять действий будут показаны пользователям системы в виде кнопок. А что будет происходить, когда пользователь нажмет на них, мы сейчас определим. Приступаем:

    • Добавить действие:
      • Название: Редактировать.
      • Описание: Нажмите на эту кнопку, чтобы изменить заявку.
      • Тип: Редактирование.
        После того как пользователь выполнит такое действие (иначе говоря, нажмет на кнопку) документ будет переведен в режим редактирования.
        Действие Редактирование
    • Добавить действие:
      • Название: Отправить в техподдержку.
      • Описание: Нажмите на эту кнопку, чтобы отправить заявку в службу поддержки.
      • Тип: Перемещение.
        Это действие перемещает документ на определенное количество точек маршрута (в нашем случае на 0, т.к. мы не заполнили атрибут Количество точек). Пока просто примите к сведению, что оно это делает. Несколько позже мы рассмотрим маршрут и его точки, и тогда придет понимание того, что означает первое предложение этого абзаца.
        Действие Перемещение
    • Добавить действие:
      • Название: Взять в работу.
      • Описание: Нажмите на эту кнопку, чтобы взять заявку в работу.
      • Тип: Перемещение.
        Не торопитесь и не спешите. Зачем мы это делаем, чего и куда перемещаем — все это очень скоро станет понятно.
    •  Добавить действие:
      • Название: Закрыть заявку.
      • Описание: Нажмите, чтобы закрыть заявку.
      • Тип: Решение.
        Представьте себе работу сотрудника службы поддержки. Он берет заявку в работу. Далее он проводит какие-то мероприятия, конечной целью которых является закрытие проблемы пользователя. В конечном итоге, наш сотрудник должен принять решение о том, что инцидент исчерпан, а проблема закрыта. Ключевое слово тут — решение. Это решение будет иметь некоторое ограниченное количество возможных вариантов. Сотруднику может понадобиться возможность  обоснования своего решения. И еще некоторые нюансы и детали, акцентировать внимание на которых сейчас мы не будем. Итак, тип действия — Решение. Вот оно, страшное:
        Действие Решение
      • Показывать окно Действия: Да. При таком значении параметра, когда пользователь нажмет на кнопку действия, он увидит перед своими светлыми очами окно действия. В котором могут быть варианты решения, поле для ввода комментария, поля для загрузки файла. А могут и не быть. Это зависит от дальнейших параметров.
      • Показывать поле для ввода комментария: Да. Предоставим нашему сотруднику технической поддержки, который будет пользоваться действием, возможность ввода каких-либо пояснений по данной заявке при ее закрытии.
      • Показывать поле файл: Да. И возможность прикрепления файла. Например, инструкцию по работе с огнетушителем для заявителя. На всякий пожарный, чтоб почитал.
      • После выполнения действия отправить автору уведомление: Да. Т.е. когда сотрудник техподдержки закроет заявку, ее автор сразу же получит сообщение по почте.
      • Заголовок окна: Закрытие заявки. Т.к. при нажатии на кнопку действия появится окно, мы можем определить его заголовок. Определили.
      • Использовать цифровую подпись для. Можно выбрать (через Ctrl) поля, которые будут включены в цифровую подпись. Цифровая подпись будет верна до тех пор, пока значения полей, включенных в подпись, будут оставаться неизменными. Если вдруг одно из этих полей изменится, то и подпись потеряет свою актуальность. Поскольку действие Решение может использоваться для подписи и согласования документов, получается достаточно полезный функционал. Но не в нашем случае, поэтому пропустим данную настройку.
      • Добавить вариант:
        • Заголовок: Закрыть заявку.
        • Текст: Заявка закрыта.
      • Добавить вариант:
        • Заголовок: Отклонить заявку.
        • Текст: Заявка отклонена.
          Что означают Заголовок и Текст мы разберем позже, когда увидим действие в работе. Пока же должно быть понятно, что у сотрудника техподдержки будет два выхода: выполнить необходимые мероприятия и закрыть заявку. Или отклонить ее по какой-либо причине (например, компьютер не включается потому, что электричество отключено).

  • Добавить действие:
    • Название: Вернуть на доработку.
    • Описание: Если вы не согласны с решением проблемы, нажмите на эту кнопку.
    • Тип: Перемещение.
    • Количество точек: -1.

Сохраняем.

Итак, мы натолкнулись на достаточное количество непонятных моментов, тайн и загадок, а также ссылок на будущее, в общем, сделали хороший задел на продолжение нашего блокбастера. В котором рассмотрим то, что в системе называется Маршрутом.