Инструменты пользователя

Инструменты сайта


odg_assist_5.0:installation

Это старая версия документа!


Функциональные характеристики ПО “OdgAssist”

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

Программное обеспечение OdgAssist (EQMS) предназначено для автоматизации и управления документацией в области качества. Под документацией понимаются:

  • бумажные документы – заполняемые формы, бумажные журналы;
  • электронные текстовые документы – инструкции, процедуры и т.д;
  • электронные документы с функцией контроля – отклонения, изменения, CAPA и т.д.

Основная задача, которую решает odgAssist: контроль за правильной реализацией всех процессов, обеспечение актуальности информации и контроль за исполнением.

Рекомендуемые системные требования для программного комплекса odgAssist

Требования к аппаратному обеспечению сервера:

Конкурентных пользователей CPU, vCPU RAM, ГБ (DDR4) SSD, ГБ
10 10 20 300
25 12 20 300
50 20 32 300
75 24 48 320
100 30 60 450
150 44 84 500
200 54 112 800
250 68 136 1000

Рекомендовано использование RAID для обеспечения резервирования и повышения производительности базы данных.

Требования к программному обеспечению сервера:

  • Операционная система: Linux Ubuntu 24.04 и выше
  • Сервер базы данных: Postgresql 16 +
  • Виртуальная машина: OpenJDK 8u502 +
  • WEB сервер: Nginx 1.24.0 +
  • Менеджер управления процессами: Supervisor 4.2.5 +
  • Интерпретатор языка Python: Python 3.12.3

Минимальные требования к программно-аппаратному обеспечению рабочей станции пользователя:

  • Процессор: 4-х ядерный, 2ГГц
  • Оперативная память 4ГБ
  • Жесткий диск (SATA): 50Гб
  • Операционная система: Windows 8/10/11
  • Браузер: Google Chrome 154.0.8037.97 +
  • Microsoft Office: Word, Excell 2016 +

+ допустима версия ПО выше указанной

Для обслуживания сервера сотрудниками исполнителя к нему необходим прямой доступ по ssh. Сервер должен иметь доступ в интернет.

Установка odgassist 5.0

Установить приложение можно вручную или автоматически.

Ручная установка приложения на UBUNTU 24.04:

Для работы приложения odgassist необходимы следующие программы:
-Postgres 16
-Nginx
-Supervisor
-Open jdk 8

Команды для установки требуемого программного обеспечения:
Обновить и установить пакеты программного обеспечения:

sudo apt-get update &&  sudo apt-get -y upgrade;

Установка Java

Установить openjdk:

sudo apt-get install -y openjdk-8-jdk

Проверить

 java -version 

Настройка русской локали

Проверить наличие русской локали:

 locale -a | grep ru_RU  

Если локали нет — установить языковой пакет

  sudo apt-get install language-pack-ru;  

Сгенерировать локаль:

 sudo locale-gen ru_RU.UTF-8 

Перезапустить сервер для обновления локали.

Установка Postgres 16

 sudo apt install -y postgresql-16 postgresql-client-16 

Проверить статус

 sudo systemctl status postgresql 

Добавить базу данных для odgassist:

sudo -u postgres psql -c "CREATE DATABASE \"odgassist\" WITH OWNER \"postgres\" ENCODING 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' TEMPLATE template0;"
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'ваш_пароль';"

Установка NGINX

Установить nginx:

 sudo apt install -y nginx  

Проверить:

 sudo systemctl status nginx 

Установка supervisor

Установить supervisor:

 sudo apt -y install supervisor; 

Проверить статус:

 sudo systemctl status supervisor 

Добавьте пользователя runner:

sudo useradd -m -p $(openssl rand -base64 12) runner 

Добавьте необходимые директории для работы приложения odgassist:

sudo mkdir /home/dumps && chmod 777 /home/dumps;
sudo mkdir /etc/ssl/cuba && mkdir /etc/ssl/odg;
sudo mkdir /home/runner/cuba && chown runner:runner /home/runner/cuba;
sudo mkdir /home/cuba_jar && chmod 777 /home/cuba_jar;

Скачайте необходимые файлы для работы приложения odgassist:

wget https://wiki.odgassist.ru/lib/exe/fetch.php/odg_assist_5.0:app.jar
;
mv odg_assist_5.0:app.jar /home/runner/cuba/app.jar && chown runner:runner /home/runner/cuba/app.jar && chmod +x /home/runner/cuba/app.jar;
 wget https://wiki.odgassist.ru/lib/exe/fetch.php/odg_assist_5.0:nofileonserver.docx && mv odg_assist_5.0:nofileonserver.docx /srv/assist/nofileonserver.docx && sudo chown runner:runner /srv/assist/nofileonserver.docx ;

chown runner:runner /srv/assist/nofileonserver.docx;

nofileonserver.docx

Добавьте в конфигурацию supervisor файл /etc/supervisor/conf.d/cubaodg.conf:

[program:cuba]
command=java -Xms5G -Xmx5G -jar app.jar -port 9090
directory=/home/runner/cuba
stdout_logfile=/var/log/supervisor/cuba.log
stderr_logfile=/var/log/supervisor/cuba.log
autostart=true
user=runner

Обновите конфигурацию supervisor:

sudo supervisorctl reread && sudo supervisorctl update;
sudo supervisorctl status;

Статус приложения cuba должно быть RUNNING

После запуска приложения подождите 5 минут пока производится настройка базы данных.

Затем переходите к следующему этапу.

Настройка приложения

После выполнения скрипта перейдите по ссылке:

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

Ознакомится с интерфейсом приложения можно перейдя по ссылке: Описание приложения.

Ссылка на скачивание приложения и необходимых файлов:

odg5

empty file

cubaodg1.zip

install.sh.gz

Настройка после установки


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

Назначенные задания

Пункт меню "Администрирование", подпункт "Назначенные задания".
Подпункт меню позволяет настраивать автоматическое выполнение рутинных задач.
Например обработка документов, рассылка оповещений пользователям и т.д.

Отправка оповещений о новых задачах.

<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

Описание полей формы настройки "Назначенное задание":

  • Defined by - каким программным объектом реализуется задание. Возможные значения:
    • Bean - задание реализуется методом бина Spring. Дополнительные атрибуты:
    • Bean name - имя бина. Бин отображается в списке и доступен для выбора, только если он объявлен в модуле core и у него есть интерфейс, содержащий подходящие для вызова из задания методы. Бины без интерфейса не поддерживаются.
  • Method name - метод интерфейса бина для выполнения. Метод должен либо не иметь параметров, либо иметь все параметры типа String. Тип результата должен быть либо void, либо String. В последнем случае результат выполнения будет сохранен в таблице выполнений (см. Log finish ниже).
  • Method parameters - параметры выбранного метода. Поддерживаются только параметры типа String.
  • Class - задание представляет собой класс, реализующий интерфейс java.util.concurrent.Callable. Класс должен иметь открытый конструктор без параметров. Дополнительные атрибуты:
    • Class name - имя класса
  • Script - задание представляет собой скрипт Groovy. Скрипт выполняется через Scripting.runGroovyScript(). Дополнительные атрибуты:
    • Script name - имя скрипта.
  • User name - имя пользователя, от имени которого будет выполняться задание. Если не задано, то задание будет выполнено от имени пользователя, указанного в свойстве приложения cuba.jmxUserLogin.
  • Singleton - признак, является ли задание синглтоном, т.е. выполняющимся только на одном сервере системы.
  • Scheduling type - способ планирования задачи:
  • Cron - с помощью Cron-выражения, представляющего собой последовательность из шести полей, разделенных пробелами:
    • секунда, минута, час, день, месяц, день недели. Месяц и день недели могут быть представлены первыми тремя буквами английского названия. Примеры выражений:
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 ? - каждое Рождество в полночь.
  • Period - с помощью интервала между выполнениями.
  • Fixed Delay - задача будет запускаться с указанной в Period задержкой после окончания предыдущего выполнения.
  • Period - период или задержка запуска задания в секундах если Scheduling type установлен в Period или Fixed Delay.
  • Start date - дата/время первого запуска для Scheduling type = Period. Если не установлено, то задание запускается сразу при старте сервера. Если установлено, то задание запускается в момент startDate + period * N, где N - целое число.

Start date имеет смысл указывать только для "нечастых" заданий - раз в 1 час, 1 сутки и т.п.

  • Timeout - время в секундах, по истечении которого считается, что задание закончило выполнение, независимо от того, есть ли информация о завершении задания, или нет. Если timeout не задан явно, он принимается равным 3 часам.

Для Singleton-задач в кластерном деплойменте рекомендуется всегда устанавливать таймаут в реалистичное значение. Если останавливается узел кластера, выполняющий задачу, то при стандартном значении другие узлы кластера будут ждать 3 часа перед тем, как запустить задачу снова.

  • Time frame - в случае заданного Start date или Cron expression определяет временное окно в секундах, в течение которого будет запущено задание, если время startDate + period * N прошло. Если Time frame не задано явно, оно принимается равным period / 2.

Если Start date не указано, то Time frame не принимается во внимание, т.е. задание будет запущено в любое время после прохождения промежутка времени Period после предыдущего выполнения задания.

  • Start delay - задержка выполнения в секундах после запуска сервера и активации выполнения задач. Используйте данный параметр для тяжелых задач, если вы считаете что они тормозят запуск сервера.
  • Permitted servers - список перечисленных через запятую идентификаторов серверов, на которых возможен запуск данного задания. Если список не задан, то задание может выполняться на любом сервере.

Для синглтон-заданий порядок перечисления серверов указывает их приоритет - первый имеет больший приоритет чем последний. Сервер с большим приоритетом перехватит выполнение синглтона следующим образом: если сервер с большим приоритетом обнаруживает, что предыдущий раз задание было выполнено сервером с меньшим приоритетом, то он запускает задание независимо от того, пройден ли Period или нет. Приоритет серверов работает только в случае Scheduling type равного Period и не указанного атрибута Start date. В противном случае, старт происходит в одно и то же время, и перехват невозможен.

  • Log start - признак регистрации факта запуска задания в таблице SYS_SCHEDULED_EXECUTION, соответствующей сущности ScheduledExecution.

Если задание является синглтоном, то в текущей реализации регистрация факта запуска производится в любом случае, независимо от данного признака.

  • Log finish - признак регистрации факта завершения задания в таблице SYS_SCHEDULED_EXECUTION, соответствующей сущности ScheduledExecution.

Если задание является синглтоном, то в текущей реализации регистрация факта завершения производится в любом случае, независимо от данного признака.

  • Description - произвольное текстовое описание задания.

Задание также имеет признак активности, который устанавливается в экране списка заданий. Неактивные задания не запускаются.

odg_assist_5.0/installation.1791206785.txt.gz · Последнее изменение: — denis

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki