Перейдите по ссылке:
http://ip_адрес_сервера:9090/app
Отобразится форма авторизации:
Войдите в систему. Логин admin, пароль: admin.
Для работы приложения требуется добавить лицензионный ключ.
Нажмите пункт меню "Администрирование", подпункт "Свойства приложения".
В фильтре поиска вставьте имя ru.licen.
Щелкните дважды по записи и введите ключ в открывшуюся форму:
KEN9fFDUMzufuFgpI2EzCCyHkjdwT93wMC1LXu7MYRAX5JeyZL6J08fNXVtLdM+pqefODyp5tO7wYo40oI7Ovp9cZ8IAOSbXquJl0QNV5XphS0F1IaFNV/8NFBpK9xOAW/Aye04okELab+cqZXP7Gkrc3wiCQ7NnlOtx6tIDiYU=
Добавить ключ, кол-во конкурентных пользователей:
B8yA7lLZQCcmg9dhqChbKM6LDlzzEuZQ/yVhARRXtyIRJG6WAWULfOCFjbzKRi5Vf4Fm1qR/46+shOw1F8UPJ8cGbwlj/dA6AHzD1+9yHnWlMIuUgBj+7MYuMZcNegCK4tdvto7WC54yiwnPhGlP574Le9joq10mSZifo/kbOII=
После добавления ключа необходимо перезапустить приложение через терминал сервера:
sudo supervisorctl restart cuba
Ознакомится с интерфейсом приложения можно перейдя по ссылке: Описание приложения.
Ссылка на скачивание приложения и необходимых файлов:
После установки проверить время сохраняемых и изменяемых сущностей. Например добавить папку и проверить время ее создания или изменения.
Пункт меню "Администрирование", подпункт "Назначенные задания".
Подпункт меню позволяет настраивать автоматическое выполнение рутинных задач.
Например обработка документов, рассылка оповещений пользователям и т.д.
Отправка оповещений о новых задачах.
<color brown> Описание: </color>
После активации каждой задачи на нее назначается исполнитель. Исполнитель добавляется в список для рассылки оповещений о новых задачах. Рассылка осуществляется всем пользователям из списка каждые 60 секунд.
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Defined By: Bean
Bean Name: cuba_Emailer
Method Nmae: processQueuedEmails()
Sheduling Type: Period
Cron Expression: 60
Singleton: V
Отправка оповещений назначенным по задачам
<color brown> Описание: </color>
Если у пользователя нет просроченных задач, то ему отправляется весь список задач каждый понедельник.
Если есть просроченные задачи или задачи близкие к крайнему сроку, то оповещения отправляются каждое утро в 9:00.
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Defined By: Bean
Bean Name: odgassist5_TasksReportService
Method Nmae: sendTaskStatesToAllUsers
Sheduling Type: Cron
Cron Expression: 0 0 9 * * *
Пример содержимого письма:
Отправка оповещений по действиям
<color brown> Описание: </color>
В список на отправку попадают отчеты:
ru.od.notify_before_days
ru.od.notify_before_days - параметр, который хранит количество дней. (Уведомить за n дней).
Настройка производится через пункт меню "Администрирование", подпункт "Свойства приложения".
В поле "Поиск по имени свойства" ввести: ru.od.notify_before_days
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Bean Name: odgassist5_TaskReportService
Method Nmae: notifyUserAboutOverdueActions
Описание полей формы настройки "Назначенное задание":
0 0 * * * * - начало каждого часа каждого дня. */10 * * * * * - каждые 10 секунд. 0 0 8-10 * * * - в 8, 9 и 10 часов каждого дня. 0 0/30 8-10 * * * - 8:00, 8:30, 9:00, 9:30 и 10 часов каждого дня. 0 0 9-17 * * MON-FRI - каждый час с 9 до 17 по рабочим дням. 0 0 0 7 1 ? - каждое Рождество в полночь.
Start date имеет смысл указывать только для "нечастых" заданий - раз в 1 час, 1 сутки и т.п.
Для Singleton-задач в кластерном деплойменте рекомендуется всегда устанавливать таймаут в реалистичное значение. Если останавливается узел кластера, выполняющий задачу, то при стандартном значении другие узлы кластера будут ждать 3 часа перед тем, как запустить задачу снова.
Если Start date не указано, то Time frame не принимается во внимание, т.е. задание будет запущено в любое время после прохождения промежутка времени Period после предыдущего выполнения задания.
Для синглтон-заданий порядок перечисления серверов указывает их приоритет - первый имеет больший приоритет чем последний. Сервер с большим приоритетом перехватит выполнение синглтона следующим образом: если сервер с большим приоритетом обнаруживает, что предыдущий раз задание было выполнено сервером с меньшим приоритетом, то он запускает задание независимо от того, пройден ли Period или нет. Приоритет серверов работает только в случае Scheduling type равного Period и не указанного атрибута Start date. В противном случае, старт происходит в одно и то же время, и перехват невозможен.
Если задание является синглтоном, то в текущей реализации регистрация факта запуска производится в любом случае, независимо от данного признака.
Если задание является синглтоном, то в текущей реализации регистрация факта завершения производится в любом случае, независимо от данного признака.
Задание также имеет признак активности, который устанавливается в экране списка заданий. Неактивные задания не запускаются.
В приложении доступны два типа ролей:
1. Системные роли
2. Настраиваемые роли
При открытии роли в интерфейсе отображаются 5 вкладок:
1. Экраны (Screens)
Управляет доступом к:
2. Сущности (Entities)
Определяет разрешения на операции с объектами системы (документы, пользователи, события и т. д.):
Не рекомендуется давать права на удаление (Delete) без необходимости, чтобы избежать потери связей между данными и ошибок в работе процессов.
3.** Атрибуты** (Entity Attributes)
Управляет доступом к полям сущностей (например, дата создания, текстовое описание, статус):
4. Специальные права (Specific Permissions)
Настройка дополнительных разрешений, таких как:
5 Интерфейс
Разрешения на этом экране позволяют ограничивать доступ к любому компоненту экрана, включая те, которые не связаны с какими-либо данными (например, контейнер). Идентификаторы компонентов должны быть известны для создания таких разрешений, поэтому требуется доступ к исходному коду экрана.
Для упрощения редактирования ролей доступны фильтры, которые позволяет произвести настройку экрана или сущности, которые уже настроены в роли.
После фильтрации выберите необходимое и произведите настройку.
Для добавления роли нажмите пункт меню «Администрирование», подпункт «Роли».
Вы можете скопировать системную роль, если она содержит все права для необходимого вам модуля, а затем произвести редактирование скопированной роли.
Скопированная роль добавляется с тем же именем, но в конце указывается номер копии (например: Базовая роль (1)).
Или можете создать роль с "нуля". Для этого нажмите кнопку "Создать".
Далее перейдите к настройке экранов на вкладке "Экраны".
Вкладка содержит два корневых раздела:
Настройте непосредственно доступ к пунктам меню.
Обратите внимание, что доступ к дочернему экрану должен быть полным. Если не указать разрешение для вышестоящего пункта меню, доступ к подпункту не будет открыт.
Если требуется редактирование для открытого ранее пункта меню, то введите название экрана в фильтр "Экран" (поиск осуществляется по частичному совпадению имени)
В отсортированном поставьте отметку "разрешено" напротив найденного экрана. Сохраните изменения.
Настройка разрешений для сущностей.
Настройка атрибутов сущности:
Для вступления изменений в силу, пользователю, которому выдана роль необходимо перезайти в приложение.
email-templates-can-send-tem – Руководитель в области качества – Руководитель Разрешена смена пароля - Работник ChangeRequestProcessor – пустая рольLearningBasicRole – Подтверждение запроса на перепечать Специалист '' -
* Экраны: OdgAssist: «Настройка групп документов», «Управление документами» Документы: «Разработка и согласование» Обучение: «Проверка тестов»
* Сущности: нет
* ''Печать учтенных копий – позволяет печатать контролируемые копии документов. Печать временных копий - позволяет печатать временные копии документов. Печать во внешние организации - позволяет печать документы в сторонние организации. Оценщик отклонения из ООК - пустая рольИнженер по документации – добавление документов, версий документов, групп документов. Редактирование справочников odgAssist. Инженер ООК – пустая рольWebDAV migration role – WebDAV basic role - system-search-folders system-reports-minimal – system-minimal – роль минимальных настроек, обязательна к выдаче всем пользователям.system-full-access – полный доступ ко всем сущностям и экранам.system-fts-minimal – system-folders-panel – system-filter – system-filter – роль позволяет настраивать динамический фильтр в реестрах. system-file-storage-read-only - system-file-storage-read-only – роль предоставляет доступ к внешним файлам на чтение. system-file-storage – роль предоставляет полный доступ к внешним файлам. system-entity-log – роль предоставляет доступ для просмотра «Журнала изменений сущностей», но без возможности фильтрации по экземпляру сущности. Фильтрация только по интервалу дат system-email-history – роль предоставляет доступ к email сообщениям приложения. system-dynamic-attributes-read-only – роль предоставляет доступ на чтение динамических атрибутов. system-dynamic-attributes – роль предоставляем возможность добавлять динамические атрибуты. QualityEventRole QmsUserRole – Commenting – роль позволяет добавлять комментарии, ознакамливаться с комментариями.Эта роль даёт особые возможности, недоступные через обычные настройки прав, так как она вписана в код.
Где: раздел «Информация о печатях»
Без роли: кнопка «Отметить» полностью скрыта. Пользователь видит только таблицу в режиме просмотра.
С ролью: в панели кнопок появляется выпадающая кнопка «Отметить» с тремя действиями:
При попытке нажать эти кнопки без роли (если кнопка всё же доступна через другой путь) — система показывает уведомление: «Доступ запрещён — У Вас нет роли Инженер по документации».
Где: раздел «Задания на разработку документов»
Без роли: Пользователь без такой роли в реестре видит только те задания на разработку, в которых он указан как разработчик, согласующий, QA или утверждающий и у которых статус НЕ "Отклонен", "Остановлен вручную" или "Разработка завершена". Пользователь без роли видит задания на разработку документа в процессе разработке если он назначен на задачу по диаграмме
С ролью: инженер по документации видит все задания системы без фильтрации по участнику и без исключения завершённых/отклонённых статусов — полный реестр всех задний на разработку.
Где: та же таблица заданий на разработку, красная кнопка в панели
Без роли: кнопка «Отменить разработку документа» скрыта.
С ролью: кнопка «Отменить разработку документа» доступна
Где: редактор задания на разработку, этап «Проверка данных и выпуск»
Без роли: поле загрузки разработанного файла (WebDAV) недоступно — пользователь видит файл только в режиме просмотра.
С ролью: инженер по документации видит активное поле загрузки и может заменить файл разработки на этом финальном этапе.
Где: редактор задания в статусе Остановлен вручную (процесс был принудительно остановлен)
Без роли: кнопка внизу редактора называется «Сохранить» и просто сохраняет данные без каких-либо действий с процессом.
С ролью: кнопка меняет название на «Возобновить разработку». При нажатии открывается диалог для указания причины возобновления, после чего BProc-процесс запускается заново.
Где: редактор версии документа
Без роли: поле загрузки файла документа скрыто, вместо него отображается поле только для чтения — документ можно открыть, но не заменить. Поле PDF также недоступно для редактирования.
С ролью: поле Файл становится активным — инженер может загрузить новый файл версии документа. PDF-поле также доступно для редактирования.
Добавление пользователей осуществляется через пункт меню "Администрирование", подпункт "Пользователи".
В реестре пользователей нажмите "Добавить". В редакторе учетных данных заполните поля.
"Логин" — поле содержит имя пользователя для аутентификации
"Новый пароль" — поле ввода пароля
"Подтверждение пароля" — поле подтверждения пароля
"Полное имя" — поле автоматически заполнится, если заполнены части полного имени: Имя, Отчество, Фамилия
"email" - поле для ввода адреса электронной почты. Обязательно, если установлен флаг в поле "Отправлять уведомления". //Если поле //"email" //не будет заполнено, то следует убрать галочку в поле //"Отправлять уведомления".
"Часовой пояс" - в соответствии с которым будут отображаться и вводиться значения типа timestamp "Группа" — группа доступа, по умолчанию Company
"Должность"
"Язык" — язык интерфейса, устанавливаемый для пользователя
"Маска разрешенных IP"- маска разрешенных IP-адресов, с которых возможен вход в систему.
Маска представляет собой список адресов через запятую. Поддерживаются как адреса формата IPv4, так и адреса формата IPv6. В первом случае адрес должен состоять из четырех чисел, разделенных точками, при этом любая часть вместо числа может содержать знак "*", что означает "любое число".
Адрес в формате IPv6 представляет собой восемь групп по четыре шестнадцатеричные цифры, разделенных двоеточием. Любая группа также может быть заменена знаком "*".
Маска может содержать адреса только одного формата. Наличие адресов формата IPv4 и IPv6 одновременно недопустимо. Пример: 192.168.*.*
"Активен" - если данный флаг не установлен, то пользователь не может войти в систему. Пользователь не отображается в списке пользователей для выбора исполнителя задачи.
"Отправлять уведомления" - если флаг установлен, то отправка сообщений пользователю производится.
"Подразделение" - подразделение пользователя.
Для корректной работы приложения поле "Подразделение" обязательно для заполнения.
В случае использования доменной авторизации по средством AD убедиться, что в карточке пользователя указано подразделение.
"Должности" - список дополнительных должностей
!В карточке пользователя есть два разных реквизита, связанных с должностью:
При формировании итоговой таблицы на последнем листе документа (колонка «Должность» рядом с ФИО, действием, датой и подписью) система использует текстовое поле «Должность». Табличная часть в этом сценарии не задействована.
Если поле «Должность» у пользователя не заполнено, в соответствующей ячейке листа согласования выводится значение-заглушка («Не указана»).
Как работают остальные процессы системы
Остальные функциональные блоки — назначение и распределение обучения и ознакомлений, планы обучения, распределение документов по должностям, матрица версий документов, отчётные формы по задачам — используют таблицу «Должности» в карточке пользователя, а не текстовое поле.
Таким образом, два реквизита заполняются и используются независимо друг от друга. Заполненная таблица «Должности» не влияет на лист согласования, и наоборот — заполненное текстовое поле «Должность» не влияет на распределение обучения и документов. Для корректной работы системы в целом должны быть заполнены оба реквизита.
"Роли" - Список ролей пользователя
"Замещаемые пользователи" — список замещаемых пользователей. Используется только для настройки приложения и демонстрации.
<color white> – </color>
Подразделение и должность пользователя влияют на работу системы:
Поэтому справочники «Подразделения» и «Должности» должны быть заполнены до создания пользователей.
Расположение: пункт меню «odgAssist» → «Подразделения».
Для создания подразделения нажмите кнопку «Создать» и заполните поля:
| Поле | Описание |
|---|---|
| Название | Наименование подразделения. Обязательное поле |
| Входит в подразделение | Вышестоящее подразделение. Позволяет выстроить иерархию. Для подразделения верхнего уровня поле оставляется пустым |
| Руководитель подразделения | Пользователь, который будет получать задачи и уведомления как руководитель |
| Сотрудники подразделения | Список сотрудников. Заполняется автоматически при указании подразделения в карточке пользователя |
| Получать уведомления об ознакомлениях | Если отметка установлена, руководитель подразделения получает уведомления об ознакомлениях сотрудников |
Сохраните изменения кнопкой «ОК».
Для изменения существующего подразделения выделите его в списке и нажмите «Изменить».
<note important>
Не удаляйте подразделения, которые уже указаны в карточках пользователей или использовались в распределении документов. Это приведёт к потере связей. Если подразделение больше не используется, переведите сотрудников в другое подразделение.
</note>
Расположение: пункт меню «odgAssist» → «Должности».
Для создания должности нажмите кнопку «Создать» и заполните поля:
| Вкладка | Описание |
|---|---|
| Главная (поле Название) | Наименование должности. Обязательное поле |
| Сотрудники (добавление сорудников происходит через кнопку Добавить) | Список сотрудников с данной должностью. Заполняется автоматически из карточек пользователей |
Сохраните изменения кнопкой «ОК».
<note>
Подразделение у пользователя может быть только одно, а должностей — несколько. Если сотрудник совмещает должности, добавьте в таблицу все должности: программы обучения будут назначены по каждой из них.
</note>
Чтобы убрать должность у пользователя, выделите её в таблице «Должности» и нажмите «Исключить».
<note important>
Кнопка
«Исключить» убирает должность только у данного пользователя — сама должность в справочнике сохраняется. Не используйте для этой цели удаление записи из справочника «Должности».
</note>
Чтобы сменить должность, добавьте новую и исключите прежнюю.
При разработке документа формируется лист с участниками разработки документа у каждого участника проставляется электронная подпись.
Подпись - это ID пользователя. Формируется автоматически.
Посмотреть ID можно в модуле Администрирование, подмодуле Пользователи.
Выбрать Пользователя и нажать правую кнопку мыши. Выбрать Системная информация
В окне Системная информация найти параметр ID
Администратор системы может дать возможность пользователю замещать другого пользователя. При этом у замещающего пользователя сессия не меняется, а подменяется набор ролей, ограничений и атрибутов. Все эти параметры текущий пользователь получает от замещаемого пользователя.
Если пользователь имеет замещаемых пользователей, то в правом верхнем углу главного окна приложения вместо простой надписи с именем текущего пользователя отображается выпадающий список.
Окно настройки "Замещение пользователей".
"Пользователь" - текущий редактируемый пользователь. Он будет замещать другого пользователя.
"Замещаемый пользователь" - замещаемый пользователь.
"Дата начала", "Дата завершения" - необязательный период замещения. Вне периода замещение будет недоступным. Если период не указан, замещение доступно, пока не удалена данная запись таблицы.
<color white> – </color>
Пункт меню "Администрирование", подпункт "Назначенные задания".
Подпункт меню позволяет настраивать автоматическое выполнение рутинных задач.
Например, обработка документов, рассылка оповещений пользователям и т.д.
<color brown> Описание: </color>
После активации каждой задачи на нее назначается исполнитель. Исполнитель добавляется в список для рассылки оповещений о новых задачах. Рассылка осуществляется всем пользователям из списка каждые 60 секунд.
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Defined By: Bean
Bean Name: cuba_Emailer
Method Nmae: processQueuedEmails()
Sheduling Type: Period
Cron Expression: 60
Singleton: V
<color brown> Описание: </color>
Если у пользователя нет просроченных задач, то ему отправляется весь список задач каждый понедельник.
Если есть просроченные задачи или задачи близкие к крайнему сроку, то оповещения отправляются каждое утро в 9:00.
Пример содержимого письма:
dueDate) ≥ сегодня (не просрочен)ru.od.notify_before_days - свойство приложения).dueDate == null), либоКак настроить крайний срок задачи (TaskData):
Крайний срок будет рассчитываться как дата и время создания этой задачи (когда она назначается пользователю) + значение, указанное в "Due date"
Доступные значения для поля "Due date":
PT5M — 5 минут.PT3H — 3 часа.P2D — 2 дня.P1W — 1 неделя.P1M — 1 месяц.P1DT12H — 1 день и 12 часов.Каждый символ имеет строгое значение:
P (Period / Период) — обязательный символ в самом начале строки. Он сообщает движку, что дальше идет описание периода (дни, месяцы, годы).T (Time / Время) — обязательный символ-разделитель в середине строки. Он отделяет даты от часов, минут и секунд. Все, что идет после T, относится ко времени суток.Остальные буквы обозначают конкретные единицы времени и ставятся после соответствующего числа:
В секции даты (до буквы T):
Y (Year) — ГодыM (Month) — МесяцыW (Week) — НеделиD (Day) — Дни
В секции времени (после буквы T):
H (Hour) — ЧасыM (Minute) — Минуты (обратите внимание: буква M до T — это месяцы, а после T — минуты)S (Second) — Секунды
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Defined By: Bean
Bean Name: odgassist5_TasksReportService
Method Nmae: sendTaskStatesToAllUsers
Sheduling Type: Cron
Cron Expression: 0 0 9 * * *
<color brown> Описание: </color>
В список на отправку попадают отчеты:
ru.od.notify_before_days
ru.od.notify_before_days - параметр, который хранит количество дней. (Уведомить за n дней).
Настройка производится через пункт меню "Администрирование", подпункт "Свойства приложения".
В поле "Поиск по имени свойства" ввести: ru.od.notify_before_days
<color brown>Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Назначенные задания". Заполните поля формы:
Bean Name: odgassist5_TaskReportService
Method Nmae: notifyUserAboutOverdueActions
Описание:
Нажмите пункт пеню "Администрирование" → "Назначенные задания" → кнопка "Создать"
Beanodgassist5_TasksReportServicenotifyHeadAboutAcknowledgements(String nDays)7Cron0 0 9 * * *После добавления задания необходимо не забыть его активировать.
Руководители отмеченных подразделений будут получать рассылку.
"odgAssist" → "Подразделения" → кнопка "Изменить"
Установить отметку в чекбоксе "Получать уведомления об ознакомлениях"
0 0 * * * * - начало каждого часа каждого дня. */10 * * * * * - каждые 10 секунд. 0 0 8-10 * * * - в 8, 9 и 10 часов каждого дня. 0 0/30 8-10 * * * - 8:00, 8:30, 9:00, 9:30 и 10 часов каждого дня. 0 0 9-17 * * MON-FRI - каждый час с 9 до 17 по рабочим дням. 0 0 0 7 1 ? - каждое Рождество в полночь.
Start date имеет смысл указывать только для "нечастых" заданий - раз в 1 час, 1 сутки и т.п.
Для Singleton-задач в кластерном деплойменте рекомендуется всегда устанавливать таймаут в реалистичное значение. Если останавливается узел кластера, выполняющий задачу, то при стандартном значении другие узлы кластера будут ждать 3 часа перед тем, как запустить задачу снова.
Если Start date не указано, то Time frame не принимается во внимание, т.е. задание будет запущено в любое время после прохождения промежутка времени Period после предыдущего выполнения задания.
Для синглтон-заданий порядок перечисления серверов указывает их приоритет - первый имеет больший приоритет чем последний. Сервер с большим приоритетом перехватит выполнение синглтона следующим образом: если сервер с большим приоритетом обнаруживает, что предыдущий раз задание было выполнено сервером с меньшим приоритетом, то он запускает задание независимо от того, пройден ли Period или нет. Приоритет серверов работает только в случае Scheduling type равного Period и не указанного атрибута Start date. В противном случае, старт происходит в одно и то же время, и перехват невозможен.
Если задание является синглтоном, то в текущей реализации регистрация факта запуска производится в любом случае, независимо от данного признака.
Если задание является синглтоном, то в текущей реализации регистрация факта завершения производится в любом случае, независимо от данного признака.
Задание также имеет признак активности, который устанавливается в экране списка заданий. Неактивные задания не запускаются.
<color brown> Описание: </color>
При необходимости можно настроить время жизни пользовательской сессии, по окончании которого пользователь будет автоматически разлогинен и соединение с приложением будет разорвано.
<color brown> Настройка: </color>
Откройте файл конфигурации приложения local.web-app.properties
Добавьте свойство "cuba.httpSessionExpirationTimeoutSec = 30"
Укажите требуемое количество секунд. Добавьте свойство "cuba.web.uiHeartbeatIntervalSec"
<color brown> Описание: </color>
Приложение позволяет настроить блокировку учетной записи пользователя после нескольких неудачных попыток ввода логина и пароля.
Защите от брутфорс-атак.
<color brown> Настройка: </color>
Нажмите пункт меню "Администрирование", подпункт "Свойства приложения".
В поле "Поиск по имени свойства" введите "brute"
Отобразятся три свойства:
<color brown> Описание </color>
Приложение позволяет настроить требования для сложности пароля (запретить использовать простые пароли), а также настроить временной интервал смены пароля.
<color brown> Настройка </color>
Нажмите пункт меню "Администрирование", подпункт "Свойства приложения".
Для настройки сложности пароля используется свойство "cuba.passwordPolicyEnabled"
В поле "Поиск по имени свойства" введите его.
Откройте запись двойным кликом и измените значение.
Для настройки времени интервала смены пароля используется свойство "ru.od.number_of_days_to_change_password"
В поле "Поиск по имени свойства" введите его.
Откройте запись двойным кликом и измените значение. По умолчанию 90 дней.
<color white> End article </color>
Рутина по проверке сроков актуальности версий документов.
Выполняется по крону каждый день в 1:30. (время можно изменить).
Действия рутины:
Формируется список всех версий документов у которых дата "Актуален до" закончилась вчерашним днем.
Изменяется статус этих версий на "Архив", сами версии перемещается в архив.
Затем в каждом документе ищется версия документа у которой дата актуальности "сегодня" и если такая есть, то ставит ее как "Текущая версия" документа.
Если у документа срок начала актуальности уже прошел, то рутина его не обработает и потребуется вручную изменить статус такого документа на "Согласован". А предыдущую версию отправить в "Архив".
Если у документа не было текущей версии. Рутина установит "Текущей версией" первую версию документа.
Настройка:
Нажмите пункт меню «Администрирование», подпункт «Назначенные задания». Нажмите кнопку "Создать".
В окне "Назначенное задание" заполните поля согласно таблице:
| Название поля | Значение | Название поля | Значение |
| Defined by | Bean | User Name | |
| Bean Name | odgassist5_DocumentService | Singleton | |
| Method Name | checkActualDocumentVersion() | Permited Servers | |
| Scheduling Type | Cron | Log Start | |
| Cron Expression | 0 30 1 * * * | Log finis | |
| Timeout, sec | Description | ||
| Time Frame, sec | |||
| Start Delay, sec |
Сверьте и отредактируйте при необходимости заполненные параметры согласно изображению выше. Если запись отсутствует, то нажмите кнопку «Добавить» и заполните форму как на изображении выше. После сохранения проверьте, что задание активировано. Если отметка не установлена, то выделите запись и нажмите «Активировать».
Нажмите пункт меню "Администрирование", подпункт "Журнал пользовательских сессий". В поле динамических фильтров нажмите "Добавить условие поиска".
После добавления фильтра выберите тип:
Реестр отобразит все сессии. Далее для отображения только активных добавьте фильтр "Завершена"
Также измените тип фильтра "Установлен" и выберите "Нет".
Логин системного пользователя указывается в local.app.properties Ключ cuba.jmxUserLogin. По умолчанию значение admin
Порядок действий
Создайте тестовую группу, проверьте в свойствах время ее создания.
Если оно отлично от требуемого, но время на сервере настроено верно, то добавьте ключ временной зона в файл конфигурации supervisor.confd/файл_настройки.
Пример:
command=java -Xms3G -Xmx3G -jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ -XX:+ExitOnOutOfMemoryError -Duser.timezone=Europe/Moscow app.jar -port 9090
Блокировка в UI проверялась только в "Задача на разработку документа" и "Расследование".
Также нужно помнить, что блокировка не снимается автоматически, если пользователь, например, закрыл браузер с открытым редактором записи.
В таком случае она снимется только по окончании таймаута сессии, т.к.
Необходимо правильно завершать работу, нажать "Сохранить без завершения задачи процесса" или "Завершить", только после закрывать браузер.
Настройка блокировки на запись Ссылка на документацию cuba:https://doc.cuba-platform.com/manual-latest-ru/pessimistic_locking.html
Рассмотрим блокировку на примере разработки документов.
Перейти в меню "Администрирование" - "Блокировки"
Чтобы добавить блокировку нужно перейти во вкладку "Настройка"
Нажать кнопку "Создать"
Заполнить поля
Пример заполнения:
Нажать кнопку "ОК".
Для применения изменений нужно нажать "Перезагрузить конфигурацию"
После сообщения о перезагрузки конфигурации необходимо проверить сработала ли настройка. Для этого необходимо открыть задачу на разработку документа 2мя пользователями одновременно.
Версия приложения 2024.02 и выше.
Делегирования активных задач и замещение отвтетственных пользователей в процессах разработки
Доступно в следующих разделах:
Доступность функционала определяется свойством ru.od.enable_reassignation.
Так же необходимо открыть доступ к экрану в нужной роли:
- Odgassist5_AssignationDraft.edit
Как работает:
Система выполнит поиск всех полей с типами Пользователь
Если значение поля равно "С пользователя", то поменяет "На пользователя"
Список пользователей
Если элемент списка равен "С пользователя", то уберет его из списка, и если нет в списке "На пользователя", то добавит его в список.
Система выполнит поиск всех переменных процесса и проведет аналогичные операции, что описаны выше.
Система переназначит активные задачи С пользователя На пользователя, если такие имеются.
Меню: Документы-Документы пользователей
Содержит в себе ссылку на пользователя и документ, а также 2 признака: создавать ознакомление, создать уведомление.
Теперь при любом сохранении версии документа со статусом Согласован:
Будет выполнена попытка создать ознакомление по распределению, указанному в версии документа. Если для пользователя нет записи в *, то она будет создана, ознакомление будет создана, уведомление будет отправлено.
Если для пользователя есть запись в *, то Ознакомление будет создано, если установлен соответствующий признак.
Если ознакомление создано, то Уведомление будет создано, если установлен соответствующий признак.
Будет выполнен поиск в * для соответствующего документа
В любом случае, при создании ознакомления будет выполняться поиск плана обучения сотрудника, если такой имеется, то к нему будет привязан документ и ознакомление.
Записи в * можно массово редактировать (признаки: создавать ознакомление, создать уведомление)
Для чего может понадобиться этот функционал
При заполнении карточки события пользователь мог допустить ошибку и указать неправильно ответственного исполнителя.
Это заметили на этапе, где корректировка карточки уже невозможна.
Решение
1. Выберите запись в реестре и нажмите кнопку "Где задача?".
2. Перейдите на вкладку "Статус".
3. На вкладке статус в закладке Variables выберите переменную для корректировки. В примере это исполнитель задач начальника ООК.
Выберите запись и нажмите "Изменить"
4. Откроется окно редактирования значений. Нажмите на иконку "Многоточие". Выберите нового пользователя и реестре пользователей. Старого пользователя удалите.
1. Назначение Экран «Просмотрщик документов WebDAV» — служебный (администраторский) реестр всех файлов, которые хранятся в системе через механизм WebDAV: файлы разрабатываемых версий документов, вложения и прочие файлы, редактируемые пользователями напрямую из офисных приложений.
Экран позволяет:
найти любой WebDAV-документ в системе; посмотреть, кем и когда файл заблокирован (открыт на редактирование), и снять блокировку; скачать файл или загрузить вместо него новый; посмотреть и восстановить предыдущие версии файла; включить или отключить ведение версий для конкретного файла; удалить файл. Важно. Экран работает с файлами напрямую, минуя бизнес-логику разработки, согласования и утверждения документов. Обычная работа с документами ведётся в разделе Документы. Просмотрщик WebDAV используется для разбора нештатных ситуаций (например, «документ висит заблокированным») и только сотрудниками, имеющими соответствующие права.
2. Как открыть
Администирование → WebDAV → Просмотр документов.
Откроется вкладка «Просмотрщик документов WebDAV».
Если пункт меню не отображается — у вашей роли нет прав на этот экран.
3. Из чего состоит экран
3.1. Панель фильтра Верхний блок «Фильтр» — стандартный поисковый фильтр системы:
3.2. Панель кнопок
Загрузить — загрузить файл с компьютера;
Скачать — скачать выбранный файл;
Управление версиями — открыть окно версий выбранного документа;
Удалить — удалить выбранный WebDAV-документ;
Разблокировать — снять блокировку с выбранного документа;
Включить версионность / Отключить версионность — управление ведением версий файла.
3.3. Колонки таблицы
| Колонка | Что показывает |
|---|---|
| Документ | Имя файла (ссылка). Рядом полужирным может стоять метка версии — v1, v2 и т. д. — текущая версия файла, если для него включена версионность |
| Состояние блокировки | Заполняется, если файл открыт кем-то на редактирование: Заблокировано пользователем «логин» с «дата и время». Пустое значение — файл свободен |
| Версионность | Флажок: отмечен — для файла ведутся версии; снят — хранится только текущее содержимое |
Имена вида Thu Jan 22 152509 MSK 20262983059757704781504.docx — файлы, созданные системой автоматически (например, при создании разрабатываемой версии документа). Имена вида СОП ОД-001_2.docx — файлы, загруженные пользователем под собственным именем.
4. Типовые операции
4.1. Найти документ
При необходимости нажмите Добавить условие поиска и добавьте поля.
4.2. Скачать файл
Выделите строку в таблице.
Нажмите Скачать. Файл сохранится средствами браузера.
Открыть файл на просмотр можно также щелчком по его имени в колонке Документ.
4.3. Загрузить файл
Нажмите Загрузить.
Выберите файл на компьютере.
Если для документа ведутся версии, система спросит, что сделать с загружаемым файлом: Создать новую версию — прежнее содержимое сохранится в истории версий; Заменить документ — содержимое будет заменено.
Загрузка файла через этот экран не запускает маршрут согласования и не меняет статус документа в системе. Для штатной работы с содержимым документа пользуйтесь карточкой задачи на разработку документа.
Файл, загруженный кнопкой Загрузить на этом экране, становится самостоятельным WebDAV-документом: система создаёт новую запись в реестре и первую версию файла. Ни с каким объектом системы (документом, задачей на разработку, версией документа) он при этом не связывается.
С таким файлом доступны только операции самого просмотрщика
Загрузка через этот экран предназначена для проверки и отладки работы WebDAV (открывается ли файл в Office, работают ли блокировка и версионирование) и для разовых служебных задач. Рабочие документы загружайте из карточки задачи на разработку документа — только так файл попадёт в бизнес-процесс.
4.4. Посмотреть и восстановить версии
4.5. Снять блокировку
Файл блокируется, когда пользователь открывает его на редактирование через WebDAV. Блокировка снимается автоматически при корректном закрытии файла. Если сеанс редактирования завершился некорректно (закрыт браузер, пропала сеть, аварийно закрыт Word), блокировка может остаться, и другие пользователи получат сообщение «Этот документ заблокирован. Сохранение изменений сейчас невозможно».
Порядок действий:
Внимание. Принудительное снятие блокировки во время реального редактирования приведёт к потере несохранённых правок: при попытке сохранения пользователь получит сообщение «Документ был изменён во время редактирования». Снимайте блокировку только после подтверждения от владельца блокировки.
Кнопка Разблокировать доступна только пользователям с правом WebDav → Разблокировать документы.
4.6. Включить или отключить версионность
При включённой версионности каждое сохранение файла создаёт новую версию, доступную через Управление версиями. При отключённой — хранится только текущее содержимое.
Отключение версионности для документов, на которые распространяются требования GxP, согласуйте с ответственным за систему: история изменений файла перестанет накапливаться.
4.7. Удалить документ
Внимание. Удаление выполняется на уровне файлового хранилища и не проверяет, используется ли файл версией документа, задачей или иным объектом системы. После удаления связанный объект может остаться без файла (в реестре появится «Файл не найден»). Удаляйте записи только по согласованию с администратором системы.
5. Права доступа
Экран «Свойства приложения» — единая точка настройки поведения системы. Свойство (параметр) — это именованная настройка вида ru.od.print.canPrintBeforeStartOrderDate, значение которой система читает во время работы: она включает и выключает функции, задаёт шаблоны, адреса, ключи процессов и т. п.
На экране можно:
Важно. Экран показывает только те свойства, которые хранятся в базе данных. Свойства, заданные на уровне сервера приложения (в файлеapp.propertiesили системным свойством запуска), отображаются, но недоступны для изменения — их меняет администратор в конфигурации сервера с последующим перезапуском.
Важно. Изменение свойства действует на всю систему и всех пользователей сразу. В валидируемой системе меняйте настройки только в рамках принятой процедуры управления изменениями.
Если пункт меню не отображается — у вашей роли нет прав на экран.
| Элемент | Назначение |
|---|---|
| Поиск по имени свойства | Отбор по части имени, например print или documentDevelopment |
| Поиск по описанию | Отбор по части текста описания, например печат или уведомлен |
| Модуль | Отбор по функциональному блоку системы (см. п. 6) |
| Кнопка обновления | Перечитать значения свойств |
| Кнопка редактирования | Открыть окно изменения выбранного свойства |
| Кнопка выгрузки (значок со стрелкой вниз) | Выгрузить выбранные свойства SQL-скриптом |
Поиск срабатывает по мере ввода, дерево при этом раскрывается автоматически. Условия можно комбинировать: например, модуль Контроль печати + описание архив.
Отбор по описанию и по модулю работает только для свойств самой системы odgAssist — у платформенных свойств (cuba.* и подобных) описание и модуль не заданы.
Свойства показаны деревом: имя разбивается по точкам, и каждая часть становится веткой. Например, ru.od.print.printAddress попадёт в ветку ru → od → print. Разверните ветку, чтобы увидеть сами свойства.
| Колонка | Что показывает |
|---|---|
| Имя | Часть имени свойства (для ветки) или имя свойства (для строки-значения) |
| Текущее значение | Значение, с которым система работает сейчас |
| Когда обновлено | Дата и время последнего изменения через этот экран |
| Кем обновлено | Логин пользователя, изменившего значение |
| Описание | Назначение свойства (в таблице текст обрезан, полностью виден в окне редактирования) |
Кнопки редактирования и выгрузки становятся активными, только когда выделена строка со свойством, а не ветка дерева.
Значение сохраняется в базе данных сразу и начинает действовать без перезапуска приложения. В таблице обновятся колонки Когда обновлено и Кем обновлено.
Чтобы вернуть заводское поведение, впишите в Текущее значение то же значение, что указано в поле Значение по умолчанию.
Если свойство задано на уровне сервера приложения, поле Текущее значение будет недоступно и появится сообщение:
Невозможно изменить текущее значение, так как оно установлено на уровне сервера приложения либо свойством в файле app.properties, либо системным свойством
Такие свойства меняет администратор в конфигурационном файле сервера, изменение вступает в силу после перезапуска приложения.
Ветки дерева в выгрузку не попадают — экспортируются только сами свойства.
Фильтр Модуль соответствует функциональным блокам системы:
| Модуль | Что настраивает |
|---|---|
| Приложение | Общие настройки системы, авторизация, техподдержка, ключи бизнес-процессов |
| Контроль печати | Контролируемая печать: адрес печати, шаблоны колонтитулов, ограничения на печать |
| Обучение | Обучение и ознакомление с документами |
| Разработка документов | Процесс разработки, режим работы с файлами (WebDAV/SharePoint), доступность полей на этапах |
| Отклонения и события качества | Регистрация и расследование отклонений |
| CAPA и планы действий | Планы действий и корректирующие/предупреждающие действия |
| Управление изменениями | Процессы управления изменениями |
| Управление рисками | Анализ и оценка рисков |
| Пользователи | Настройки, связанные с пользователями |
| Компьютерное зрение | Модуль распознавания |
| Уведомление по электронной почте | Какие события рассылать по почте |
| Свойство | Модуль | Назначение |
|---|---|---|
webdav.urlPrefix | — | Адрес, по которому документы открываются в Microsoft Office. На новом стенде обязательно заменяется с адреса по умолчанию на реальный домен системы |
ru.od.documentDevelopment.document_development_mode | Разработка документов | Определяет, идёт разработка через WebDAV или через SharePoint |
ru.od.documentDevelopment.enable_edit_on_document_confirmation | Разработка документов | Доступность поля «Разрабатываемый файл» на этапе согласования документа |
ru.od.print.printAddress | Контроль печати | Адрес, по которому формируется ссылка при печати документа |
ru.od.print.canPrintBeforeStartOrderDate | Контроль печати | Разрешает печатать версии документов, у которых ещё не наступила дата начала актуальности |
ru.od.print.allow_print_archive_version | Контроль печати | Разрешает печать архивных версий |
ru.od.email_notification.* | Уведомление по электронной почте | Включение отдельных видов почтовых уведомлений |
ru.od.support.enable_support | Приложение | Доступность кнопки отправки обращения в техническую поддержку |
Полный список с описаниями всегда доступен на самом экране — пользуйтесь поиском по описанию.
*_process_id), адресами и ключами интеграций без согласования с администратором — неверное значение остановит соответствующий процесс.| Ситуация | Действие |
|---|---|
| Свойство не находится поиском | Проверьте, не задано ли лишнее условие (описание, модуль); попробуйте искать по части имени латиницей |
| Поле «Текущее значение» недоступно | Свойство задано на уровне сервера приложения — обратитесь к администратору (п. 4) |
| Значение изменили, но поведение системы не поменялось | Переоткройте экран, на который влияет настройка; убедитесь, что менялось нужное свойство и значение сохранено (колонки «Когда обновлено» / «Кем обновлено») |
| Нужно перенести настройки на другой стенд | Выделите свойства и воспользуйтесь выгрузкой SQL-скрипта (п. 5) |
| Непонятно, кто изменил настройку | Посмотрите колонки Когда обновлено и Кем обновлено |
Журнал изменений сущностей — системный журнал аудита. Он отвечает на вопрос «кто, когда и что именно изменил» в данных системы: в каком объекте, какой реквизит, какое значение было до изменения и какое стало после.
Журнал используется, чтобы:
Журнал доступен только для чтения: записи в нём нельзя изменить или удалить через интерфейс — этим и обеспечивается его доказательность.
Главное меню → Администрирование → Журнал изменений сущностей.
Экран состоит из двух вкладок:
| Вкладка | Доступ |
|---|---|
| Просмотр | Рабочая вкладка — поиск и просмотр записей журнала. Описана в этой инструкции |
| Настройка | Определяет, какие объекты и какие их реквизиты протоколируются. Изменяется только администратором системы. Если вкладка недоступна или закрыта для изменения — это штатное ограничение прав |
Чтобы включить протоколирование нового объекта или дополнительных реквизитов, направьте запрос администратору системы или в техническую поддержку — самостоятельно состав протоколирования не меняется.
Сразу после открытия вкладки Просмотр таблица пустая и показывает «0 строк». Это нормально: журнал содержит большой объём данных, поэтому система ничего не загружает, пока не задан запрос.
Чтобы увидеть записи, нужно:
| Фильтр | Как работает |
|---|---|
| Пользователь | Выбор из списка пользователей системы — показать действия конкретного сотрудника |
| Тип изменения | Создание, Редактирование, Удаление, Восстановление |
| Сущность | Тип объекта системы (документ, версия документа, задача, пользователь, справочник и т. д.) |
| Экземпляр сущности | Конкретный объект. Поле становится доступным только после выбора сущности. Кнопка с многоточием открывает список объектов этого типа для выбора, крестик очищает поле |
| От / До | Период: дата и время начала и окончания. По умолчанию подставляется интервал «вчера — завтра», то есть журнал сразу настроен на последние сутки |
| Поиск | Выполнить запрос и загрузить записи |
| Очистить | Сбросить все фильтры и очистить таблицу |
Фильтры работают совместно: например, Пользователь + Тип изменения «Удаление» + период покажут всё, что этот сотрудник удалил за указанное время.
Поля От и До содержат отдельно дату и время — чтобы расширить поиск на несколько дней или месяцев, измените обе даты и при необходимости время (например, с 00:00 до 23:59).
| Колонка | Что показывает |
|---|---|
| Когда | Дата и время изменения с точностью до секунды |
| Пользователь | Кто выполнил изменение |
| Тип изменения | Создание, Изменение, Удаление или Восстановление |
| Сущность | Тип объекта |
| Id | Внутренний идентификатор объекта (нужен при обращении в поддержку) |
| Имя экземпляра сущности | Название объекта в понятном виде |
Записи выводятся в хронологическом порядке — от более ранних к более поздним. Вверху таблицы отображается счётчик найденных строк.
Выделите строку в левой таблице — справа появится расшифровка по реквизитам:
| Колонка | Что показывает |
|---|---|
| Атрибут | Название изменённого реквизита |
| Новое значение | Значение после изменения |
| Новый Id | Идентификатор нового значения, если реквизит ссылается на другой объект |
| Старое значение | Значение до изменения |
| Старый Id | Идентификатор прежнего значения-ссылки |
Для записей типа Создание заполнены только новые значения, для Удаления — сведения об удалённом объекте.
Текст в обеих таблицах можно выделить мышью и скопировать
Свёрнутая строка «Фильтр: Стандартный» над таблицей позволяет дополнительно отобрать записи среди уже загруженных и сохранить часто используемые наборы условий. Для повседневной работы достаточно основных фильтров из п. 4.
Откройте вкладку Просмотр (период «вчера — завтра» уже подставлен), выберите Сущность и нажмите Поиск.
| Ситуация | Действие |
|---|---|
| Таблица пустая, хотя изменения точно были | Расширьте период (От / До), проверьте выбранную сущность; возможно, для этого объекта протоколирование не включено — уточните у администратора |
| Поле Экземпляр сущности недоступно | Сначала выберите значение в поле Сущность |
| Найдено слишком много записей, поиск идёт долго | Сузьте период и добавьте фильтры по пользователю и типу изменения |
| Нужно включить протоколирование нового объекта или реквизита | Направьте запрос администратору системы или в техническую поддержку: вкладка «Настройка» доступна только им |
| Нужно передать сведения в поддержку | Скопируйте из таблицы значения колонок Когда, Сущность, Id и Имя экземпляра сущности |
Реестр «Неудачные попытки входа» фиксирует каждую неуспешную попытку входа в систему: какой логин был введён, по какой причине вход не состоялся, дата и время события.
Реестр используется, чтобы:
Реестр доступен только для чтения: записи создаёт сама система, вручную их изменить или добавить нельзя.
Главное меню → Администрирование → Неудачные попытки входа (пункт расположен в конце раздела).
Запись создаётся автоматически при каждой неуспешной попытке аутентификации — как в веб-интерфейсе, так и при подключении внешних клиентов.
Успешные входы в этот реестр не попадают — сведения о состоявшихся сеансах работы смотрите в разделе Администрирование → Журнал пользовательских сессий.
| Колонка | Что показывает |
|---|---|
| Логин | Текст, который был введён в поле логина — именно в том виде, как его набрал человек. Поэтому в реестре встречаются и настоящие логины (admin), и ФИО или наименования («Пользователь обучения»), и случайный набор символов |
| Проблема | Причина отказа, два возможных значения — см. п. 5 |
| Дата и время события | Когда произошла попытка |
Щелчок по заголовку колонки сортирует список по этой колонке.
| Значение | Что означает | Типичные причины |
|---|---|---|
| Неверный пароль | Пользователь с таким логином в системе есть, но пароль не подошёл | Забыт пароль, включён Caps Lock, не та раскладка клавиатуры, пароль изменён администратором, пользователь пытается войти старым паролем |
| Неверные учетные данные | Пользователя с таким логином в системе нет | Опечатка в логине; вместо логина введены ФИО, должность или адрес почты; учётная запись удалена; попытка входа под несуществующей учётной записью |
Практический вывод: если сотрудник жалуется на невозможность входа, посмотрите его последние записи:
Кнопка Excel выгружает содержимое таблицы в файл для отчёта или дальнейшего анализа. Выгружаются колонки в том виде, как они отображаются на экране, с учётом применённого фильтра.
| Ситуация | Действие |
|---|---|
| Сотрудник не может войти, в реестре — «Неверный пароль» | Сбросьте пароль учётной записи (раздел «Пользователи») или передайте заявку администратору |
| Сотрудник не может войти, в реестре — «Неверные учетные данные» | Сообщите сотруднику точный логин: он вводит несуществующее имя учётной записи |
| Записей по сотруднику нет вообще | Попытки входа до системы не доходили: проверьте адрес системы, доступность сети или ошибку на стороне рабочего места |
| Видны массовые попытки с незнакомыми логинами | Выгрузите выборку в Excel и передайте службе информационной безопасности и администратору системы |
| Записей слишком много | Сузьте период и добавьте условие по логину; увеличивать «Показывать строк» без фильтра не рекомендуется |
Журнал пользовательских сессий показывает, кто и когда работал в системе: время входа и выхода, с какого адреса и через какой клиент
Журнал используется, чтобы:
Записи создаёт сама система; изменять или удалять их через интерфейс нельзя.
Главное меню → Администрирование → Журнал пользовательских сессий.
| Колонка | Что показывает |
|---|---|
| ID сессии | Внутренний идентификатор сеанса. Позволяет собрать вместе все записи одного сеанса работы |
| Пользователь | Учётная запись, под которой выполнен вход |
| От имени пользователя | Заполняется только при замещении — сотрудник, от имени которого ведётся работа |
| Последнее действие | Текущее состояние сеанса или способ его завершения (см. п. 5) |
| IP Адрес | Адрес, с которого выполнен вход |
| Тип клиента | Каким способом выполнен вход (например, Web — веб-интерфейс) |
| Сервер | Узел приложения, обслуживавший сеанс |
| Начата | Дата и время начала сеанса (или момента замещения) |
| Завершена | Дата и время окончания. Пустое значение — сеанс ещё не завершён |
| Информация о клиенте | Браузер и операционная система рабочего места; для записей о замещении — «Замещение пользователя …» |
Щелчок по заголовку колонки сортирует список. По умолчанию записи отсортированы от новых к старым.
| Значение | Что означает |
|---|---|
| Логин | Вход выполнен. Если колонка Завершена пустая — сеанс активен в настоящий момент |
| Выход | Пользователь сам вышел из системы |
| Истечение срока | Сеанс завершён системой по неактивности. Этим же значением закрываются сеансы, прерванные перезапуском сервера |
| Прервана | Сеанс принудительно завершён (например, администратором) |
| Подмена пользователя | Запись о замещении: работа велась от имени другого сотрудника |
Кнопка Excel выгружает текущую выборку в файл
Синяя кнопка слева переключает ведение журнала для всей системы:
Внимание. Пока журналирование выключено, сведения о входах не сохраняются и восстановить их задним числом невозможно — образуется пробел в аудиторском следе. Не отключайте журналирование без согласования с администратором системы и ответственным за информационную безопасность. Ранее накопленные записи при этом не удаляются.
Настройка сохраняется в системе и действует после перезапуска приложения.
Добавьте условие Последнее действие = Логин и обновите список: записи с пустой колонкой Завершена соответствуют активным сеансам.
Добавьте условие Последнее действие = Подмена пользователя (или условие «От имени пользователя заполнено») и задайте период. В колонке Информация о клиенте будет указано, кого замещали.
| Ситуация | Действие |
|---|---|
| Нужно подтвердить, кто выполнил действие в документе | Сопоставьте время действия из Журнала изменений сущностей с сеансами в этом журнале; проверьте колонку От имени пользователя |
| Колонка Завершена пустая у старых записей | Сеанс не был завершён штатно (обрыв связи, закрытие браузера) — он закроется по истечении срока или при следующем запуске сервера |
| Один ID сессии повторяется много раз | Это нормально: каждая запись о замещении создаётся отдельной строкой с тем же идентификатором сеанса |
| Журнал перестал пополняться | Проверьте надпись на кнопке слева: если она гласит «Разрешить журналирование», ведение журнала отключено — обратитесь к администратору |
| Нужны сведения о попытках входа с неверным паролем | Откройте реестр Неудачные попытки входа |
| Нужно передать выборку аудитору | Задайте условия, нажмите Обновить, затем Excel |
BProc — встроенный движок бизнес-процессов. По схемам BPMN, опубликованным в этом разделе, работают маршруты системы: разработка и утверждение документов, регистрация и расследование отклонений, управление изменениями, планы действий и CAPA, обучение и экзамены, валидация.
Раздел служебный: он управляет тем, как движутся все заявки в системе. Обычная работа пользователей ведётся в разделе Задачи и в карточках объектов, а не здесь.
Раздел содержит три пункта:
| Пункт меню | Назначение |
|---|---|
| Process Definitions | Реестр опубликованных схем процессов: просмотр, версии, приостановка, публикация новых |
| Modeler | Графический редактор схем BPMN |
| User Tasks | Все текущие задачи всех пользователей: поиск, переназначение исполнителя |
Важно. Интерфейс движка частично на английском языке: названия экранов и кнопок — английские, названия процессов и колонок — русские. Это штатное поведение.
Таблица опубликованных схем:
| Колонка | Что показывает |
|---|---|
| Название | Понятное имя процесса («Расследование отклонения», «Document development/Разработка документа») |
| Ключ | Технический идентификатор (deviation_investigation_process, process_document_development). Именно по ключу система запускает процесс |
| Версия | Номер версии схемы. Например, версия 11 означает, что схема публиковалась 11 раз |
| Кнопка | Действие |
|---|---|
| Open in modeler | Открыть схему выбранного процесса в редакторе (см. п. 3) |
| View details | Карточка процесса: реквизиты, экземпляры, исходный BPMN XML |
| Start process | Запустить процесс вручную — в рабочей системе не использовать, см. предупреждение ниже |
| Upload BPMN XML | Загрузить файл схемы с диска и сразу опубликовать его |
Вкладка General:
Вкладка BPMN XML — исходный текст схемы, только для чтения. Удобно скопировать и передать в поддержку.
Осторожно с кнопками карточки.
Suspend останавливает процесс: новые экземпляры не запускаются, и бизнес-действия, которые должны его стартовать (например, отправка документа на согласование), перестают работать.Delete удаляет определение процесса вместе с экземплярами, историей и заданиями — об этом прямо предупреждает диалог подтверждения. Действие необратимо.Migrate all instances переводит уже идущие заявки на другую версию схемы; при несовпадении этапов это приводит к потере маршрута.
Эти действия выполняйте только по согласованию с поставщиком системы.
Повторная публикация схемы не перезаписывает существующую, а создаёт новую версию:
Поэтому после изменения процесса ранее начатые документы и отклонения доигрывают по прежним правилам — это нормально и ожидаемо.
Штатно система запускает процесс сама и передаёт в него бизнес-ключ (идентификатор документа, отклонения, плана действий) и переменные — сам объект и его описание. Запуск из этого экрана создаёт «пустой» экземпляр без объекта: задачи по нему повиснут в списке, формы могут открываться с ошибкой, а сам экземпляр придётся удалять силами поддержки.
Кнопка предназначена для отладки на тестовом стенде. В рабочей системе процессы запускаются только из карточек объектов.
process, Name = Process);| Значок | Действие |
|---|---|
| Облако со стрелкой | Deploy process — опубликовать схему в систему |
| Папка | Open draft — открыть ранее сохранённый черновик модели |
| Дискета | Save draft — сохранить черновик в системе |
| Стрелка вверх | Upload BPMN XML — загрузить схему из файла на диске |
| Стрелка вниз | Download BPMN XML — скачать текущую схему файлом |
| Крестик | Close modeler — закрыть редактор |
Черновик (draft) — это сохранённая в системе незавершённая модель. Черновики не влияют на работу системы: процесс начинает действовать только после публикации.
При нажатии система спросит подтверждение:
После подтверждения новая версия сразу становится действующей для новых экземпляров.
Ключ процесса менять нельзя. Система запускает процессы по ключу, который прописан в её настройках (раздел Свойства приложения, свойства видаru.od.document_process_id,ru.od.qe_registration_process_idи подобные). Если в модели изменить Process id, опубликуется «новый» процесс, а прежний перестанет обновляться — соответствующая функция системы просто перестанет запускаться.
Когда на схеме выделен элемент, правая панель показывает его свойства. Ниже — разбор полей для пользовательской задачи (User task): это основной тип элемента, в котором участвует человек. Примеры значений взяты из задачи «Разработка документа» процесса process_document_development.
| Поле | Значение |
|---|---|
| Id | Технический идентификатор элемента в схеме. На него ссылаются условия переходов и настройки системы. Менять нельзя — сломаются связи внутри схемы |
| Name | Название этапа, которое пользователь видит в списке задач («Разработка документа») |
| Due date | Срок выполнения. Задаётся длительностью в формате ISO-8601: P10D — 10 дней с момента появления задачи (P3D — 3 дня, PT4H — 4 часа). Отображается в колонке Крайний срок |
| Поле | Значение |
|---|---|
| Assignee source | Способ определения исполнителя: Expression (вычисляется выражением), Process variable (берётся из переменной процесса), User provider (определяется программным поставщиком пользователей) |
| Expression | Само выражение, если выбран тип Expression. В примере ${makers_item.id} — исполнителем становится очередной пользователь из списка разработчиков (см. Multi instance) |
| Candidate groups | Группы пользователей-кандидатов: задача видна всем участникам группы, пока кто-то не возьмёт её в работу. Источник задаётся в отдельном окне по кнопке справа (группы, поставщик групп или выражение) |
| Candidate users | То же, но перечислением конкретных пользователей |
Если заполнен Assignee, задача сразу закреплена за сотрудником. Если заполнены только кандидаты — задача «общая», и в реестре User Tasks она ищется по полям Candidate user / Candidate group.
| Поле | Значение |
|---|---|
| Form type | Чем открывается задача: CUBA screen — полноценный экран системы; Input dialog — простое диалоговое окно с полями; No form — форма не нужна; Custom — нестандартная реализация |
| Open mode | Как открывается форма: New tab (новая вкладка), This tab (текущая вкладка), Dialog (модальное окно) |
| Screen id | Идентификатор экрана системы, который открывается при выполнении задачи (в примере — экран задачи на разработку документа). Связан с кодом системы, произвольное значение вписывать нельзя |
| Form params | Параметры, передаваемые в форму: Name — имя параметра, Value — значение, Value source — источник (Direct value — значение задано прямо, Process variable — берётся из переменной процесса) |
Список кнопок-исходов, которыми пользователь завершает задачу: Id — код исхода, Icon — значок.
В примере заданы approve, reject, correct — «согласовать», «отклонить», «отправить на корректировку». Эти коды используются в условиях переходов после задачи: шлюз на схеме проверяет, какой исход выбрал пользователь, и направляет процесс по нужной ветке. Переименование или удаление исхода рвёт маршрут — переход перестанет срабатывать.
Переменные, которые задача возвращает в процесс: Name — имя переменной, Outcome — при каком исходе она заполняется, Type — тип значения. Заполняется, когда форма должна передать данные дальше по процессу.
Определяет, создаётся одна задача или несколько однотипных.
| Поле | Значение |
|---|---|
| Multi instance type | None — одна задача; Parallel — задачи создаются всем сразу (параллельно); Sequential — по очереди, одна за другой |
| Collection source | Откуда берётся список, по которому размножается задача: Process variable, Expression или Users provider |
| Process variable | Имя переменной со списком. В примере makers — список разработчиков, указанных в задаче на разработку документа |
| Element variable | Имя переменной для текущего элемента списка. В примере makers_item; именно к ней обращается выражение исполнителя ${makers_item.id} |
| Completion condition | Условие досрочного завершения, когда ждать всех не нужно. Например, ${nrOfCompletedInstances/nrOfInstances >= 0.6} — достаточно 60 % выполненных |
| Cardinality | Фиксированное количество экземпляров, если задача размножается не по списку, а по числу |
Связка из примера читается так: «создать параллельно по одной задаче на каждого разработчика из списка makers, исполнителем каждой назначить самого разработчика, дать 10 дней».
Программный код, который выполняется в определённый момент жизни задачи: Event — событие (create — создание, assignment — назначение исполнителя, complete — завершение, delete — удаление), Implementation — что выполняется (Java-класс, выражение или делегат). Здесь реализована логика системы: смена статусов, уведомления, проверки.
То же, но для событий потока: start — вход в элемент, end — выход из него, take — прохождение перехода.
Обе таблицы слушателей — это точки подключения программного кода. Добавление, изменение или удаление строк здесь равнозначно изменению логики системы и выполняется только разработчиком.
Произвольные пары Name / Value, которые читает код системы (например, признаки поведения этапа). Значения осмысленны только вместе с обрабатывающим их кодом.
Текстовое описание этапа. В системе оно показывается пользователю как пояснение к заданию — в примере: «Вам необходимо разработать проект документа, проверить правильность заполнения согласующих лиц и утверждающего (при необходимости изменить). Завершите задание нажав кнопку Завершить».
Это единственное поле панели, которое можно безопасно править силами заказчика: изменение текста подсказки не влияет на маршрут. После правки не забудьте опубликовать схему (Deploy process) — изменение вступит в силу для новых экземпляров процесса.
У остальных типов элементов набор полей отличается, но логика та же:
Экран показывает задачи всех пользователей, а не только ваши (личные задачи — в разделе Задачи). Используется, чтобы найти «зависшую» задачу и передать её другому исполнителю.
Список формируется по запросу. Задайте условия в фильтре (или оставьте их пустыми, чтобы получить все задачи) и нажмите Применить.
| Поле | Назначение |
|---|---|
| Process definition | Процесс, к которому относится задача (список последних версий, в скобках указан ключ) |
| Assignee | Текущий исполнитель задачи |
| Candidate user | Пользователь-кандидат: задача ему доступна, но ещё не взята в работу |
| Candidate group | Группа пользователей-кандидатов |
| Колонка | Что показывает |
|---|---|
| Task name | Название этапа («Согласование документа», «Оценка изменения») |
| Process definition name | Процесс, в рамках которого возникла задача |
| Process definition version | Версия схемы, по которой идёт экземпляр |
| Время создания | Когда задача появилась |
| Время окончания | Когда завершена (у активных задач пусто) |
| Исполнитель | Кто должен выполнить задачу |
| Крайний срок | Срок выполнения, если он задан в схеме |
| Идентификатор | Технический идентификатор задачи — пригодится при обращении в поддержку |
Задачи отсортированы по времени создания, новые сверху.
Задача «зависла» на отсутствующем сотруднике (отпуск, увольнение):
Выяснить, на ком остановился документ:
Разобраться в состоянии заявки: выделите задачу → Open process instance → изучите историю и переменные экземпляра.
Переназначение — учётное действие. После него задачу выполняет и подписывает другой сотрудник. Согласуйте замену с владельцем процесса и зафиксируйте основание в соответствии с вашими процедурами.