Сопроводительная документация [MD34]: Объединение почты и документов

Введение

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

Предварительные соглашения

«Документ» в терминах Arta Synergy представляет собой контейнер, который содержит два набора файлов - «Приложения» и «Прочие», а также метаинформацию — карточку документа (в общем виде). Электронное письмо — также контейнер, содержащий метаинформацию о письме (заголовки), тело письма и вложения. Таким образом, эти две сущности можно считать идентичными, различаются только состав метаинформации и набор действий, который с ними можно производить.

Будем далее называть «документом» как документ Synergy, так и электронное письмо.

Соответственно, нам необходимо:

  • способ доставки документа Synergy до произвольного пользователя Synergy;

  • документы на основе реестров;

  • способ представления полученных электронных сообщений;

  • частичная трансляция понятий, связанных с электронным письмом, в понятия Synergy, и наоборот;

  • единый способ просмотра документа Synergy и электронного письма;

  • (опциональное) отображение остальных данных по электронному письму;

  • вариабельный набор действий с документом (в зависимости от типа).

Основная идея описываемой в этом документе функциональности Synergy — использование реестров Synergy в качестве универсального способа формировать и отправлять различные типизированные документы.

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

Изменения по модулям
Функциональность «Интеграция с почтой»
Упразднение раздела «Почта» модуля «Хранилище»

Отдельный раздел «Почта», находящийся в модуле «Хранилище», упраздняется. Электронные письма, которые забирает Arta Synergy из почтовых ящиков, указанных в настройках пользователя, преобразуются в документы — записи соответствующего реестра (см. Реестр для входящей электронной почты) и отображаются в разделе «Полученные» модуля «Документы» (см. Просмотр списка документов). Письма забираются из всех папок почтового ящика.

Из-за проблем с производительностью и надёжностью решено отказаться от поддержки протокола POP3, теперь поддерживается только IMAP.

Реестр для входящей электронной почты

В конфигураторе вводится новая настройка «Настройки электронной почты» (раздел «Настройки системы»). Эта настройка включает следующие опции:

  • «Активировать интеграцию с электронной почтой» - да/нет. Если опция неактивна, почта не будет собираться с ящиков, указанных в настройках пользователей. Заменяет соответствующую настройку в mail.xml;

  • «Реестр, используемый для электронной почты» — необходимая настройка при активации предыдущей — выбор из списка имеющихся реестров;

  • «Сопоставление полей документа и почты» - таблица следующего вида:

От

[выбор одного варианта из списка email-заголовков]

Кому

[выбор одного варианта из списка email-заголовков]

Тема (краткое содержание)

[выбор одного варианта из списка email-заголовков]

«Сопоставление полей почты и формы реестра» - таблица следующего вида с возможностью добавления и удаления строк:

[выбор одного варианта из списка id полей формы реестра]

[выбор одного варианта из списка email-заголовков]

...

...

Один вариант из списка id полей формы реестра можно выбрать только один раз, email-заголовок может быть выбран несколько раз (например, subject может быть помещен в несколько полей формы).

Список обрабатываемых email-заголовков фиксирован:

  • From;

  • Date;

  • To;

  • Subject;

  • CC: (Carbon Copy);

  • BCC: (Blind Carbon Copy);

  • Тело сообщения (технически, не заголовок).

Вложения электронного письма оформляются как вложения («Приложения») документа этого реестра. Для случая, когда в письмо вложено другое письмо или несколько писем (в которые, в свою очередь, могут быть вложены ещё письма, и т. д.) необходимо поступать следующим образом: содержимое тел вложенных в письмо сообщений добавляется к телу исходного сообщения, все вложения attachments внутренних писем помещаются в «Приложения».

Если тело главного сообщения содержит HTML, то оно перед помещением в Synergy преобразовывается в простой текст.

Если вложения имеют одинаковые имена, то в порядке обработки к ним добавляется счётчик следующего вида:

  • name;

  • name (1);

  • name (2);

и так далее.

Добавляется настройка «Блокировать «Приложения» от изменений» - да/нет. При активации этой настройки контент полученного электронного письма (который находится в «Приложениях»), нельзя будет изменить.

Потоки работ
Новый результат работы — документ

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

  • дочерний по отношению к документу соответствующей работы — да/нет;

  • зарегистрирован — да/нет;

  • относится к реестру — выбор реестра из списка.

Все дополнительные параметры типа — необязательны.

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

Кнопки действий с работой (в просмотре «документ») при наличии требования результата работы типа «документ» или «зарегистрированный документ»

В описанном в заголовке случае приоритетной («зелёной») кнопкой будет являться новая кнопка «Создать ответ», которая:

  • в случае, если форма завершения требует создания документа по реестру (см. Новый результат работы — документ), создаёт новый документ по этому реестру.

  • в других случаях повторяет поведение старой кнопки «Создать дочерний документ».

Реестры
Создание документов по реестру

При создании новой записи реестра (с любым статусом) необходимо создавать документ. Файл по форме реестра помещается в «Приложения» документа и становится его главным файлом. На этапе создания документа по реестру в нем не будет доступен стандартный набор действий по документу без работ («Резолюция», «Отправить»), а будет только одно действие по документу реестра, о котором см. Разделение сохранения файла по форме и активации маршрутов.

Настройка «Отображать документы по реестру в разделе «Мои»

Вводится настройка «Отображать документы по реестру в разделе «Мои» - да/нет, которая определяет, будет ли добавляться документ, созданный пользователем по реестру, в разделе «Мои» документов этого пользователя.

Настройка «Значащее содержимое»

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

Разделение сохранения файла по форме и активации маршрутов

При создании записи реестра вводим разделение:

  1. понятия сохранения файла по форме реестра;

  2. непосредственное попадание файла по форме в реестр (и следующую за этим активацию соответствующего маршрута, если таковой имеется).

В первом случае используется кнопка «Сохранить» в редакторе файла по форме реестра и при этом

  • валидируются данные файла по форме, и в случае успешной валидации;

  • в реестр добавляется соответствующая запись со статусом «подготовка».

Во втором случае используется поименованная кнопка действия по документу реестра, по нажатию которой:

  • если в файле по форме имеются несохранённые изменения, то предлагать их сохранить, в случае отказа дальнейших действий не выполнять;

  • валидируются данные файла по форме, и в случае успешной валидации;

  • в реестр добавляется соответствующая запись со статусом «подготовка»;

  • запускается соответствующий маршрут.

К настройкам реестра добавляется «Название действия по документу реестра» - произвольная текстовая строка.

Валидация данных, введённых в файл по форме, остаётся за настройками формы — т. е., например, при проектировании реестра, использующего Новый процесс «Отправка документа пользователю», в форме необходимо указать поле адресата обязательным к заполнению.

Статусы записей реестра

Статусы записей реестра принимают следующий вид:

  • подготовка — запись с этим статусом не является «полноценной» записью реестра, так как по ней ещё не запущено маршрута по созданию записи.

  • в маршруте — означает, что маршрут по данной записи реестра ещё находится на выполнении. В случае его успешного завершения статус записи меняется на «активная», в случае неуспешного завершения статус опять меняется на «подготовка» (новый документ при этом не создаётся).

  • активная - «полноценная» запись реестра. Означает запись реестра, маршрут по которой завершён успешно.

Если для реестра не назначено маршрутов — считается, что мы имеем «пустой маршрут», результат выполнения которого всегда успешен.

Событие реестра «Изменение» (изменение файла по форме) действует только для записей реестра со статусом «активная».

Переименование события по реестру «Создание» в «Активация»

В связи с обновлением списка и таблицы переходов между статусами (см. Статусы записей реестра), а также разделением создания файла по форме и запуска маршрута (см. Разделение сохранения файла по форме и активации маршрутов) название события «Создание» потеряло прежний смысл и должно быть переименовано в «Активация».

Отображение частей маршрута при активации записи реестра

Необходимо реализовать опцию «Отображать при сохранении» - да/нет для каждой из трех (предварительные этапы, действия, последующие этапы) групп этапов маршрута по реестру.

Новый процесс «Отправка документа пользователю»

Вводится составная операция «Отправка документа пользователю» как процесс, который может быть как участником маршрута реестра (процесс действия), так и участником обычного маршрута. В первом случае этот процесс принимает в качестве входных данных из файла по форме либо как параметр один или несколько id пользователей Synergy и/или адресатов электронной почты (в формате «Произвольный Текст Например ФИО email@domain.com»). Во втором случае пользователи либо email-адреса указываются в маршруте только как параметр. Далее происходит следующее: процесс отправляет адресатам документ реестра:

В случае, если адресат — пользователь Synergy, то для отправки используется действие, описанное в Отправка произвольных документов пользователям Synergy;

В случае, если адресат — произвольный электронный адрес, то документ реестра преобразуется в электронное письмо по нижеприведенному алгоритму и отправляется по электронной почте.

Сопоставление полей с другими реестрами

Для реестра вводится новая настройка «Сопоставление полей с другими реестрами» - указание списка реестров-приёмников для данного реестра и соответствия между полями этих реестров и настраиваемого реестра. Реестр-приёмник — это такой реестр, документ по которому указан в качестве дочернего для документа исходного реестра. Реестром-приёмником может быть, в том числе, и сам исходный реестр.

Настройка имеет следующий вид:

Имеется возможность добавить либо удалить реестр-приёмник (выбирается из полного списка нескрытых реестров), для каждого добавленного реестра-приёмника появляется таблица следующего вида (строки можно добавлять или удалять):

Поле исходного реестра Поле реестра- приёмника Способ сопоставления Параметр

[выбор одного из списка, выбранное значение доступно для других строк]

[выбор одного из списка, выбранное значение недоступно для других строк]

[выбор одного из списка: полное копирование, с префиксом, с суффиксом]

[текстовая строка, может быть пустой, используется в качестве префикса или суффикса]

...

...

...

...

Применение настройки осуществляется в том случае, если определена операция создания дочернего документа по реестру (реестр-приёмник) для документа другого реестра (исходный реестр) — это Кнопки действий с работой (в просмотре «документ») при наличии требования результата работы типа «документ» или «зарегистрированный документ» и Реестр для ответа.

Реестр для ответа

В настройки реестра добавляется необязательная возможность указать, какой реестр будет использоваться для ответа на документ, созданный при помощи этого реестра. Реестр для ответа выбирается из общего списка реестров, допускается выбрать сам настраиваемый реестр.

Для документов по реестрам, у которых задан реестр ответа, вводится предпочтительная кнопка действия с документом (название которой задаётся настройкой, например, «Ответить»), нажатие на которую создает новый документ по реестру ответа (поля по форме которого могут быть предзаполнены согласно настройке Сопоставление полей с другими реестрами). Эта кнопка появляется только в том случае, если данный пользователь имеет право создания новой записи по реестру ответа.

Функциональность «Документы»
Просмотр списка документов

Для документов раздела «Все» вводится специальный вид плашек, который более удобен в сравнении со стандартным дизайном плашек для канцелярии.

Отображаемая на плашке информация:

  • Общая информация;

    • Краткое содержание документа;

    • Признак того, что происхождение документа — электронная почта («конвертик»);

    • Признак наличия вложений («скрепка»);

    • Признак контрольного документа;

    • Признак наличия резолюции;

    • Признак бракованности документа;

    • Признак, описанный в Флаг «Прочитано».

  • Раздел «Мои»:

    • Кому — может отсутствовать, заполняется адресатами, если с документом были произведены действия отправки (см. Раздел «Отправленные»);

    • Дата — заполняется датой создания документа.

  • Раздел «Полученные»:

    • От — присутствует всегда, заполняется отправителями, выполнявшими действия, описанные в Раздел «Отправленные»;

    • Кому — присутствует всегда, заполняется адресатами электронной почты;

    • Дата — заполняется датой последнего действия из набора перечисленных в Раздел «Отправленные».

  • Раздел «Отправленные»:

    • Кому — присутствует всегда, заполняется адресатами, если с документом были произведены действия отправки (см. Раздел «Отправленные»);

    • Дата — заполняется датой последнего действия из набора перечисленных в Раздел «Отправленные».

Поля «От» и «Кому» заполняются по количеству произведённых соответствующих действий, в обратном порядке; если один и тот же пользователь выполнял действие несколько раз подряд, то оставляется только одна запись.

Пример: документ отправляли последовательно Иванов, Петров, Сидоров, Сидоров, Сидоров, Иванов, Понедельский. Содержимое поля «От» будет иметь вид:

«От: Понедельский, Иванов, Сидоров, Петров, Иванов»

Для email-адреса в формате SomeText <mail@domain.com> отображается только SomeText, адрес в виде mail@domain.com (без <>) отображается во всплывающей подсказке; если SomeText отсутствует, то сразу же отображается mail@domain.com.

Если документ зарегистрирован, то на плашке появляются дополнительные поля, согласно типу журнала документа.

Макет дизайна:

Рисунок 445. Выделение раздела «Документы» - 3 непрочитанных

Выделение раздела «Документы» - 3 непрочитанных

Рисунок 446. Раздел «Полученные» - только незарегистрированные почтовые сообщения

Раздел «Полученные» - только незарегистрированные почтовые сообщения

Раздел «Отправленные»

Добавляется новый подузел «Отправленные» узла «Все» модуля «Документы», в который попадают документы, с которыми были произведены действия, описанные в Отправка документов произвольным адресатам и Реестр для ответа, а также создание работ типа согласование/утверждение/ознакомление.

Отправка произвольных документов пользователям Synergy

Вводится атомарная операция «отправить документ пользователю Synergy» - действие, входными данными которого являются:

пользователь Synergy - адресат;

отправляемый документ Synergy.

Результатом этого действия является появление соответствующего документа у адресата в разделе «Полученные» модуля «Документы». Никаких ограничений по адресатам на эту операцию не накладывается.

Отправка документов произвольным адресатам

Вводится новый пункт меню кнопки «Отправить» - «Как документ...». При выборе этого пункта появляется диалог, описанный в Компонент и диалог выбора произвольных адресатов. После выбора адресатов, в зависимости от их типа, происходят действия, описанные в Новый процесс «Отправка документа пользователю».

Макет дизайна:

Рисунок 447. Диалог отправки «Как документ...» - стандартный размер

Диалог отправки «Как документ...» - стандартный размер

Рисунок 448. Диалог отправки «Как документ...» - максимальный размер

Диалог отправки «Как документ...» - максимальный размер

Флаг «Прочитано»

Необходимо реализовать флаг «прочитано» для документов — действует для пользователя, устанавливается после выполнения отправителем (другим пользователем) действий, перечисленных в Раздел «Отправленные» и снимается после открытия этого документа пользователем.

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

Создание дочернего документа

Кнопка «Создать дочерний документ» упраздняется. Основная вариант использования этой кнопки — подготовка ответа на документ (в документообороте) теперь реализуется функциональностью, описанной в Новый результат работы — документ. Если же имеется необходимость создания дочернего документа напрямую, то это можно сделать, создав проект документа и указав его в карточке нужного документа как дочерний (кнопка «Добавить» в списке дочерних документов»).

Общая функциональность Synergy
Кросс-модульная кнопка «Создать»

Мы вводим кросс-модульную часть меню кнопки «Создать» - настраиваемый набор пунктов меню этой кнопки (например, «Написать письмо», «Написать служебную записку» и т. д.). Этот набор пунктов настраивается в конфигураторе (раздел «Документооборот» → «Создание документов»), настройка представляет собой таблицу следующего вида, строки которой можно добавлять и удалять:

Название пункта (например, «Написать письмо»)

Группа Synergy, которым будет доступен данный пункт (выбор одного или нескольких из списка)

Реестр, который будет использоваться для создания документа (выбор одного из списка)

Добавляется в «Избранное» по умолчанию? — да/нет.

...

...

...

...

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

Если в каком-либо модуле не определено действие кнопки «Создать» по умолчанию (имеется ввиду нажатие на «основную область» кнопки), то по нажатию на неё должно открываться меню с пунктами кнопки «Создать» - настраиваемыми и модулезависимыми (если таковые доступны).

Компонент и диалог выбора произвольных адресатов

Необходимо реализовать компонент формы с поиском и диалогом, способный выбирать как пользователей Synergy, так и электронные адреса из адресной книги Synergy.

Трансляция понятий Synergy ↔ электронная почта

Общие понятия перечислены в следующей таблице:

Понятие Synergy Понятие электронной почты Пояснения

Пользователь

Адресат электронной почты Some Text actual@email.com

Преобразование пользователя Synergy осуществляется следующим образом: «Имя Фамилия электронный-адрес@домен».

Обратное преобразование — при дальнейшем развитии описываемой функциональности.

Отправитель документа (пользователь)

Отправитель письма (поле From:)

В Synergy отправитель означает того пользователя, посредством которого данный документ попал к данному пользователю Synergy, может отличаться от непосредственного автора документа.

Автор документа (пользователь)

Автор электронного письма (поле Originator:)

Экспериментальное поле email, описанное в RFC 1528, при его отсутствии в письме использовать значение из From:

Получатель документа (пользователь)

Адресат сообщения (поле To:)

К обсуждению — в случаях, где доступен множественный выбор адресатов, заполнять ли поле «To:» всеми сразу, или отправлять каждому отдельное письмо с персональным To:

Краткое содержание документа

Тема письма (Subject:)

Настраиваемо.

«Ответ» + создание дочернего документа

Ответ на электронное письмо

Действие: создание документа по реестру, указанному в качестве реестра ответа для реестра электронной почты.

Отправить «Как документ» (новое действие)

Перенаправление (Forward)

Действие: отправка пользователю Synergy либо по электронной почте — отдельным диалогом .

Тело сообщения

Настраиваемо.

Варианты использования описанной функциональности
Ответ на документ

Есть два случая, когда для какого-то документа в Synergy требуется подготовить и отправить ответ:

  1. Ответ на входящий либо внутренний документ (согласно процессам документооборота);

  2. Ответ на типизированный документ Synergy, предполагающий возможность на него отвечать.

В первом случае от пользователей предполагается следующая последовательность действий:

  • Документ регистрируется в каком-либо журнале.

  • По данному зарегистрированному документу создаётся работа или дерево работ (неважно, каким способом, например, путём наложения резолюции либо прямым перепоручением). У этой работы (работ) устанавливается требование результата работы с типом «Документ» либо «Зарегистрированный документ».

  • Исходный документ с работой попадает к конечному исполнителю, который нажимает в нём кнопку «Создать ответ», создавая таким образом дочерний документ-ответ.

  • Этот дочерний документ-ответ заполняется нужными данными, проходит необходимую цепочку согласований/утверждений/ознакомлений и регистрируется.

  • Конечный исполнитель нажимает в исходном документе кнопку «Завершить» и выбирает среди дочерних документов тот документ, который был подготовлен в предыдущем пункте.

Во втором случае рассматривается документ по реестру: здесь кнопка «Ответить» в документе доступна только если для исходного реестра определён реестр ответа; при нажатии на эту кнопку создаётся специально подготовленный (например, с заполненным адресатом, темой с «RE:» и так далее) документ-ответ. Этот ответ можно сохранить в виде черновика или сразу же отправить (по маршруту реестра).

Переписка

Возьмём в качестве примера обмена (создания-ответа) типизированными документами переписку по электронной почте.

Предварительные настройки

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

  1. Создать форму с четырьмя полями: отправитель, адресат, тема и тело сообщения.

  2. Создать с этой формой два реестра: «Создание письма» и «Получение письма».

  3. В реестре «Создание письма» к событию «Активация» добавляем один процесс действия «Отправка документа пользователю», в котором указываем поле формы «адресат» для выбора адресатов. Отключаем отображение всех групп этапов маршрута. Указываем в качестве реестра ответа сам реестр «Создание письма». Настраиваем копирование поля «отправитель» в поле «адресат», копирование темы из исходного реестра в реестр ответа (с добавлением вначале «RE:»). Даем наименование «Отправить письмо» кнопке активации записи реестра.

  4. Указываем реестр «Получение письма» в качестве реестра для электронной почты, настроив соответствующим образом сопоставление полей формы реестра и заголовков электронного письма. Указываем в качестве реестра ответа реестр «Создание письма», настраиваем копирование полей аналогично предыдущему пункту.

  5. Настраиваем кросс-модульную кнопку «Создать», добавляя туда пункт меню «Написать письмо», в котором указываем группу, в которой находятся все пользователи Synergy, и реестр «Создание письма».

Создание письма

Пользователь нажимает в любом модуле системы кнопку «Создать» и выбирает там «Написать письмо». Открывается создание документа по реестру, где в файле по форме пользователь указывает нужных адресатов, заполняет отправителя, тему и тело сообщения, а также, при необходимости, прикрепляет дополнительные файлы к документу.

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

Получение письма

Электронное письмо из почтового ящика, настроенного для пользователя, попадает в «Полученные». Пользователь может как ответить на письмо (это предпочтительное действие), так и совершить стандартные действия с документом (например, отправить на регистрацию). Кроме этого, пользователь может отметить нужными тэгами письмо для удобства расположения.

Ответ на письмо

Пользователь нажимает кнопку «Ответить». Запускается создание документа по реестру, указанному в настройках реестра «Получение письма». Поля «Получатель», «Тема» автоматически заполняются нужными данными. Далее действия аналогичны созданию письма.