Решение "Дополнительные настройки" в помощь администратору и разработчику

Следующий проект

Хотите ознакомиться
с проектом полностью?

Зарегистрируйтесь — и получите доступ
ко всем кейсам Directum Awards.

Зарегистрироваться

Уже зарегистрированы? Тогда авторизуйтесь

Проблема

Вероятно, почти все, прикладные разработчики Directum RX задавались вопросом: "Как дать возможность редактировать используемые в коде константы администраторам, коллегам, друзьям и прохожим!?". Регулярный или внезапный перенос разработки на Prodact сервер звучит как-то не очень хорошо и даже угрожающе. 

Так же, некоторые проблемы вызывают определенные моменты администрирования системы:

  • вылеты клиентской части, которые оставляют блокировки в базе;
  • удаление какого-либо объекта (задачи, документа, записи справочника) в системе, часто превращается в детективную игру с поиском связанных записей;
  • логирование, логирование и еще раз логирование, которое может забить диск сервера до последнего байта, и такие прецеденты были, т.к. администраторы редко следят за состоянием системы.

Решения всех этих проблем и вопросов разные, но при этом они логическим образом объединяется в одно универсальное решение для администратора и разработчика, которое можно использовать на любых проектах, а так же дополнять и расширять по своему усмотрению.

Описание решения

В состав решения входят модули: 

  • модуль с обложкой "Дополнительные настройки";
  • модуль "Константы" (без UI); 
  • модуль "Очистка логов DirectumRX" (без UI)";
  • модуль "Использование записи справочника" (без UI).

Обложка "Дополнительные настройки"

Назначение: Объединяет дополнительные возможности доступные администратору системы, поскольку редактирование обложки "Администрирование" прикладному разработчику не доступно.

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

 

Действие "Удалить блокировку объекта"

Назначение: Позволяет администратору снять блокировку объекта в системе, если пользователь закончил работать с объектом, а блокировка по разным причинам осталась в БД.

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

Форма диалога удаления блокировки

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

 

Форма диалога подтверждения удаления блокировки

Примечание: Перед удаление блокировки запрашивается подтверждение действия.

 

Модуль "Константы"

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

Права доступа (справочник Константы): роль "Администраторы" - редактирование, роль "Все пользователи" - просмотр (визуально справочник недоступен).
Права доступа (справочник Группы констант): роль "Администраторы" - редактирование.
Внимание: Создание, удаление записей запрещено для всех пользователей системы!

Доступные типы:

  • Строка;
  • Целочисленное значение;
  • Вещественное значение;
  • Логическое значение;
  • Целочисленный диапазон;
  • Вещественный диапазон;
  • Строковый список;
  • Целочисленный список;
  • Вещественный список.

Справочник "Константы"

 

Справочник "Группы констант"

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

 

Пример формы карточки с типом - целочисленное значение (справочник "Константы")

 

Пример формы карточки с типом - список строк (справочник "Константы")

 

Фоновый процесс модуля "Очистка логов DirectumRX"

Назначение: Удаляет файлы с расширением *.log в папках (включая вложенные папки) старше N дней.

Используемые константы: 
ClearLogsPaths – список путей для очистки лог файлов;
LogsLifeTime – время жизни лог файлов (в днях). (По умолчанию 10 дней).

Расписание запуска: Один раз в день, время запуска 7:00.

 

Отчет модуля "Использование записи справочника"

Назначение: Позволяет сформировать отчет об использовании текущего объекта в справочниках, документах или задачах.

Права доступа: роль "Все пользователи" имеют права на выполнение отчета.


 

Результат

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

Данное решение пока не может облегчить прикладную разработку, но способно упростить поддержку разработанных решений и модулей.  

Что сделано, но не вошло в текущую редакцию

  • В прикладных константах появилась возможность хранить и обращаться к данным в формате Base64, например для хранения паролей. Данные этого типа не доступны к просмотру даже администраторам системы.
  • Появился новый модуль, в котором хранятся универсальные и часто используемые функции. К примеру функции рассылок, инициализации и т.д. В общем все, что может сократить время на разработку.
  • Контроль активности пользователей в системе.
  • Прочие мелкие доработки и улучшения.

Ссылка на полную версию статьи и исходные коды.

 

Ждите новой статьи на Club Directum!

Организация: СТАРКОВ Групп
4
17
Авторизуйтесь, чтобы оценить материал.

Комментарии (6)

Добрый день. 
Решение выглядит интуитивно понятным и простым в использовании. Что очень здорово, учитывая то как часто поступают вопросы по решению вопросов с блокировками. 
Уточните пожалуйста, реализована ли работа со сбором информации о всех блокировках и возможность массового снятия блокировок с объектов?

Сергей Беляков

Александр, Спасибо.

Массового сбора информации (что-то типа истории) по блокировкам нет, т.к. о таком пока никто не просил. Есть функционал сбора статистики по количеству работающих пользователей в системе, но он в данное решение он не вошел поскольку это так же был единичный запрос. Реализация такого функционала не сложная делается в течении часа. Если я правильно понял вопрос! )))

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

Сергей, благодарю за ответ.

Артем Моисеев

а как его правильно импортировать? я пока далек от разработки в RX, попробовал импортировать через утилиту импорта и получил ошибку, опубликуйте сначала решение. ну и база поломалась, восстановил из бэкапа. версия 3.5.24

Сергей Беляков

Артем, А Вы импортировали в среду разработки или сразу в RX? По идее ошибки быть не должно, я обязательно проверю этот момент.

Решение импортируется разработчиком в среду, т.к. без этого кроме блокировок и очистки логов ничего работать не будет.

Артем Моисеев

Сергей, сразу в RX, в среду не пробовал, но скоро обучусь и попробую)

Авторизуйтесь, чтобы написать комментарий