Глобальные сценарии 3KL. Локальный плагин

Сергей Гусев, Нелли Никитина
18.09.2024
Функционал, описанный в данной статье, в полном объеме доступен в СЭО 3КL, начиная с версии 3.9.18а.
Если вы используете более раннюю версию системы — обратитесь с заявкой на проведение обновления в службу технической поддержки ООО «Открытые технологии».
До версии 4.1.11b плагин «Глобальные сценарии 3KL» носил название «Панель обработки прецедентов».
Содержание:
1. Общая информация
  1.1. Возможности
2. Сценарии рассылки уведомлений
  2.1. Описание работы плагина при рассылке уведомлений
  2.2.  Уведомление об орфографической ошибке
  2.3. Уведомление слушателя о подписке на курс
  2.4. Уведомление преподавателя о подписке на курс с правом оценивать других пользователей
  2.5. Уведомление ни разу не авторизовавшегося пользователя о недавней регистрации
  2.6. Уведомление ни разу не авторизовавшегося пользователя о регистрации, с момента которой прошло почти два месяца
  2.7. Отправка уведомлений с паролем пользователям, загруженным в систему
  2.8. Сохранение и отправка паролей из внешней базы данных пользователям, загруженным в систему
3. Сценарии удаления
  3.1. Удаление ни разу не авторизовавшихся пользователей, с момента регистрации которых прошло два месяца
  3.2. Удаление завершенных попыток тестирования старше заданной даты
4. Сценарии снятия и назначения ролей
  4.1. Снятие назначенных ролей
  4.2. Назначение или снятие роли пользователям согласно критериям
5. Взаимодействие плагина с глобальными группами
  5.1. Синхронизация пользователей с глобальными группами
  5.2. Синхронизация пользователей с глобальными группами по расписанию
  5.3. Удаление подписок типа «Синхронизация с глобальной группой» по дате из настраиваемых полей глобальной группы
  5.4. Удаление глобальных групп по дате из настраиваемых полей глобальной группы
6. Сценарии выгрузки оценок
  6.1. Выгрузка оценок во внешнюю базу данных
  6.2. Выгрузка всех существующих оценок во внешнюю базу данных по расписанию
7. Выгрузка списков во внешнюю базу данных
  7.1. Выгрузка курсов во внешнюю базу данных по расписанию
  7.2. Выгрузка категорий курсов во внешнюю базу данных по расписанию
8. Общие настройки
9. Функции для разработчиков

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

Глобальные сценарии 3KL — это плагин, позволяющий управлять работой автоматических сценариев, выполняющих массовые действия во всей системе (рассылка уведомлений, назначение ролей, отправка паролей, синхронизация пользователей и пр.) по расписанию или событию.

Модуль постоянно модифицируется и дополняется новыми функциями силами специалистов компании «Открытые технологии».

Настройки плагина, сгруппированные в разделы по функциональному назначению сценариев, доступны пользователю по маршруту: Настройки—>Администрирование—>Плагины—>Локальные плагины—>Глобальные сценарии 3KL (Рис. 1.1). Требуются права Администратора!

Рис. 1.1. Глобальные сценарии 3KL. Страница настроек плагина.

-Вернуться к содержанию-

1.1. Возможности

По функциональному назначению, автоматические сценарии плагина разделяются на следующие группы:

  • Сценарии рассылки уведомлений. Обеспечивают возможность при наступлении отслеживаемого события (подписка пользователя на курс, отправка паролей из внешней БД и т. п.) отправить пользователю сообщение об этом. Уведомления рассылаются по заранее настроенным в системе каналам доставки сообщений, текст уведомления задается при настройке сценария.
  • Сценарии удаления. Позволяют выполнить автоматическое удаление объектов (пользователей, глобальных групп, подписок, завершенных неуспешных попыток прохождения теста — в зависимости от сценария) в указанный срок или по истечении срока давности.
  • Сценарии снятия и назначения ролей. Позволяют назначить пользователю выбранную роль или снять ее, в зависимости от выбранного сценария и его настроек. Срабатывание сценария может быть привязано к определенному контексту системы или значению поля профиля пользователя.
  • Сценарии взаимодействия с глобальными группами. Обеспечивают синхронизацию с указанными глобальными группами (автоматическое отчисление или зачисление пользователей). В зависимости от выбранного сценария, условием срабатывания может быть создание/обновление/удаление пользователя в системе или значение настраиваемого поля.
  • Сценарии выгрузки оценок. Позволяют выгружать из СЭО 3КL во внешние БД значения оценок и дополнительных полей системы.
  • Сценарии выгрузки списков. Позволяют выгружать из СЭО 3КL во внешние БД списки курсов и категорий курсов.

-Вернуться к содержанию-

2. Сценарии рассылки уведомлений

2.1. Описание работы плагина при рассылке уведомлений

Плагин «Глобальные сценарии 3KL» рассылает уведомления пользователям системы стандартным способом  по выделенным каналам коммуникации. Получение уведомлений от плагина настраивается пользователем через настройки уведомлений в Личном кабинете в секции «Глобальные сценарии 3KL»: Личный кабинет—>Настройки—>Учетная запись пользователя—>Настройка уведомлений (Рис.2.1.1).

Рис. 2.1.1. Уведомления плагина «Глобальные сценарии 3KL».

Для удобства управления получением уведомлений  у плагина имеется возможность раздельной настройки по событию (присутствие/отсутствие пользователя на сайте / в сети ) и способу доставки (во всплывающем окне, с помощью СМС, по электронной почте, через мессенджер «Телеграм») (см. Рис. 2.1.1).

Уведомления Панели обработки прецедентов разделяются на два типа:

  • Уведомления о прецедентах — этот тип уведомлений рассылает все уведомления плагина, кроме паролей:
    • отправка орфографических ошибок;
    • отправка уведомления о том, что пользователь зарегистрирован давно и не заходит;
    • отправка уведомления о том, что пользователь только что зарегистрирован;
    • отправка уведомления о том, что студент зачислен в курс;
    • отправка уведомления о том, что преподаватель зачислен в курс.
  • Глобальные сценарии 3KL: служебные уведомления — этот тип уведомлений в данный момент рассылает только пароли новым пользователям.
Важно! Действия в данной инструкции с меткой требуются права администратора можно выполнить только при наличии доступа «Полный Администратор». По умолчанию мы предоставляем доступ «Диспетчер-Администратор». Для изменения глобальных конфигураций мы рекомендуем выбрать набор требуемых опций по данной инструкции и обратиться в техническую поддержку с заявкой на конфигурирование системы. Подробнее в статье «Полный административный доступ».

Путь к настройкам: Администрирование—>Плагины—>Локальные плагины—>Глобальные сценарии 3KL.
Все действия в данной инструкции требуют права полного (технического) администратора!

Подробная информация о настройке уведомлений в статье «Уведомления в СЭО 3КL».

-Вернуться к содержанию-

2.2. Уведомление об орфографической ошибке

Модуль «Отчет об орфографической ошибке» предназначен для обратной связи пользователей сайта, сообщающих о найденных ошибках на сайте СЭО 3КL, и администраторов, получающих сообщения об ошибках (Рис. 2.2.1). Ссылка на отдельную инструкцию по модулю.

Рис. 2.2.1. Уведомление об орфографической ошибке.

-Вернуться к содержанию-

2.3. Уведомление слушателя о подписке на курс

Инструмент предназначен для отправки уведомлений слушателю при его зачислении на курс (Рис. 2.3.1).

Рис. 2.3.1. Уведомление слушателя о подписке на курс.

Особенности и условия:

Уведомление отправляется при любом способе зачисления пользователя на курс.

Уведомление отправляется пользователям, записанным на курс с оцениваемой ролью.

Настройка:

1. Включить отправку уведомления (установить маркер в чекбокс).
2. Отредактировать уже заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (при необходимости).

-Вернуться к содержанию-

2.4. Уведомление преподавателя о подписке на курс с правом оценивать других пользователей

Инструмент предназначен для отправки уведомлений преподавателю при его зачислении на курс (Рис. 2.4.1).

Рис. 2.4.1. Уведомление преподавателя о подписке на курс с правом оценивать других пользователей.

Особенности и условия:

Уведомления отправляются только контактам курса. Пользователь (Преподаватель) должен быть записан в курс с ролью, которая указана в настройках контактов курса. По умолчанию в СЭО 3КL в контактах курса указана роль «Преподаватель».
Проверить роли контактов курса можно здесь:
Администрирование—>Внешний вид—>Курсы. /admin/settings.php?section=coursecontact

Настройка:

1. Включить отправку уведомления (установить маркер в чекбокс).
2. Отредактировать уже заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (при необходимости).

-Вернуться к содержанию-

2.5. Уведомление ни разу не авторизовавшегося пользователя о недавней регистрации

Инструмент предназначен для отправки уведомлений зарегистрированному пользователю, который ни разу не заходил в систему в течение 7 дней после регистрации (Рис. 2.5.1).

Рис. 2.5.1. Уведомление ни разу не авторизовавшегося пользователя о недавней регистрации.

Особенности и условия:

Пользователь может быть зарегистрирован в СЭО 3КL любым способом.

Если в течение 7 дней с момента регистрации он не заходил в систему — ему однократно отправляется уведомление.

Настройка:

1. Включить отправку уведомления (установить маркер в чекбокс).
2. Заполнить поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления».

-Вернуться к содержанию-

2.6. Уведомление ни разу не авторизовавшегося пользователя о регистрации, с момента которой прошло почти два месяца

Инструмент аналогичен предыдущему (п. 2.5) и предназначен для отправки уведомлений зарегистрированному пользователю, который ни разу не заходил в систему в течение 7 недель после регистрации (Рис. 2.6.1).

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

Особенности и условия:

Пользователь может быть зарегистрирован в СЭО любым способом.

Если в течение 7 недель (точнее '-2 months, +7 days') с момента регистрации он не заходил в систему — ему однократно отправляется уведомление.

Настройка:
1. Включить отправку уведомления (установить маркер в чекбокс).
2. Заполнить поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления».

-Вернуться к содержанию-

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

Сценарий представляет собой отправку паролей загруженным в систему пользователям с помощью уведомлений на почту и/или СМС. Данный инструмент может быть полезен, если нужно отправить новым пользователям пароль по СМС, при этом, можно настроить генерацию пароля так, что временный пароль будет коротким и простым.
Настройки содержат тексты уведомлений, опцию принудительной смены пароля и дополнительные настройки пароля (Рис. 2.7.1).

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

Особенности и условия:

Важно!
1. Чтобы данный инструмент нормально функционировал, необходимо отключить стандартную задачу на генерацию и рассылку паролей в cron:
Рассылка паролей новым пользователям \core\task\send_new_user_passwords_task
2. Чтобы пользователи получали сообщения (в т.ч. по СМС), при их регистрации в системе должен быть указан email пользователя.
3. Уведомления рассылаются именно при загрузке пользователей (CSV, внешняя БД) и не работают при ручной регистрации пользователей с автоматической генерацией пароля.
  • Отправка уведомлений с паролем.

Особенностью данного инструмента является возможность отправлять уведомления с паролем не только на почту (стандартный метод), но и по СМС.

Пример использования:
Пользователи импортированы в СЭО с помощью CSV-файла.
Работа стандартного метода СЭО: по задаче в cron система генерирует пароли и отправляет уведомление с паролем на email пользователя.
Работа этого инструмента: по сценарию (при отключенной стандартной задаче по рассылке паролей) пароли отправляются пользователям на почту и/или по СМС. Опционально (п.8.2) можно отправлять пользователю простой короткий цифровой пароль.

Настройка (см. Рис. 2.7.1):

1. Включить отправку уведомлений с паролем (установить маркер в чекбокс).
2. Отредактировать уже заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (при необходимости).
3. Принудительная смена пароля. Если поставить эту отметку, то пользователю будет предложено изменить пароль при следующем входе в систему. При этом создаваемый пользователем пароль будет должен соответствовать политике паролей (если она включена).

  • Дополнительные настройки пароля.

Начиная с версии Moodle 3.5.9a в сценарий отправки паролей добавлена возможность сгенерировать пароль в обход стандартной логики Moodle. Теперь можно отправлять новым пользователям простые короткие временные пароли (например, из 4-6 цифр), не отменяя политики паролей.

Пример использования:
Новых пользователей зарегистрировали способом синхронизации с базой данных или при загрузке через CSV-файл. Пользователи получают на email или СМС удобные короткие цифровые временные пароли.

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

Рис. 2.7.2. Дополнительные настройки пароля.

Настройка:

1. Включить «Дополнительные настройки пароля» (установить маркер в чекбокс).
2. С помощью остальных настроек откорректировать параметры создаваемых паролей.

Дополнительная информация в статье Пароли в Moodle. Политика паролей

-Вернуться к содержанию-

2.8. Сохранение и отправка паролей из внешней базы данных пользователям, загруженным в систему

Сценарий предназначен для совместного использования с плагином аутентификации «Внешняя база данных» для одноразовой синхронизации паролей пользователей.

При синхронизации из внешней БД пароль пользователя сохраняется в СЭО 3КL. Происходит это один раз и после этого пароли в Moodle и внешней БД не синхронизируются. После этого пользователи могут менять пароль в системе.

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

Настройки содержат выбор типа пароля во внешней БД, опцию отправки уведомлений, полные и краткие тексты уведомлений, опцию принудительной смены пароля при первой авторизации пользователя.

Особенности и условия:

Важно!
1. Для правильного функционирования инструмента необходимо отключить стандартную задачу на генерацию и рассылку паролей в cron:
Рассылка паролей новым пользователям \core\task\send_new_user_passwords_task
2. Чтобы пользователи получали уведомления, при синхронизации из внешней БД должен передаваться email пользователя.
3. Если используется опция отправки пароля пользователю, пароль должен храниться в открытом виде во внешней БД .
4. Если пароль во внешней БД не указан, пользователь в Moddle останется без пароля и не сможет авторизоваться.

Настройка (Рис. 2.8.1):

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

Настройки в Глобальных сценариях 3KL:
2. В пункте «Включить сохранение паролей из внешней базы данных» для включения сценария нужно поставить галочку.
3. В селекторе «Тип пароля во внешней базе данных» указывается в каком виде хранится пароль во внешней базе: Текстовый или Хеш MD5.
4. Если планируется отправка уведомлений пользователям, включается опция «Отправка сообщения пользователю» и, если необходимо, редактируются заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (можно использовать указанные в описании макроподстановки).
5. При включении опции «Принудительная смена пароля» пользователю будет предложено изменить пароль при следующем входе в систему. При этом создаваемый пользователем пароль должен будет соответствовать политике паролей (если она включена).

Рис. 2.8.1. Сохранение и отправка паролей из внешней базы данных пользователям, загруженным в систему.

-Вернуться к содержанию-

3. Сценарии удаления

3.1. Удаление ни разу не авторизовавшихся пользователей, с момента регистрации которых прошло два месяца

Инструмент предназначен для автоматического удаления пользователей, ни разу не авторизовавшихся в системе за два месяца с момента регистрации. Обычно применяется с инструментом п. 5 (пользователю отправляется сообщение за неделю до удаления) (Рис. 3.1.1).

Рис. 3.1.1. Удаление ни разу не авторизовавшихся пользователей, с момента регистрации которых прошло два месяца.

Особенности и условия:

Будут удалены все зарегистрированные, но ни разу не авторизовавшиеся в течение двух месяцев пользователи, кроме пользователей с ролью Технический (полный) Администратор.

Настройка:

Включить выполнение действия (поставить галочку).

-Вернуться к содержанию-

3.2. Удаление завершенных попыток тестирования старше заданной даты

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

Рис. 3.2.1. Удаление завершенных попыток тестирования старше заданной даты.

Настройка:

1. Включить удаление завершенных попыток тестирования (поставить галочку).
2. Отредактировать значение умолчанию поля «С момента завершения попытки должно пройти больше...» (при необходимости).

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

Данная задача достаточно ресурсоемкая. Первый запуск может длиться продолжительное время. Много времени при обработке уходит на запросы к базе данных и процесс удаления каждой попытки.
Ориентировочная производительность: за 7 суток обрабатывается около 500 000 попыток теста.
При повторных запусках сценарий всегда работает быстрее, чем при первичном, так как часть попыток уже удалена во время предыдущего прохода. Попытки удаляются по одной по мере выполнения процесса.
Если аварийно завершить задачу, то она просто перестанет выполняться. В следующий запуск задачи прогон пойдет сначала, и гораздо быстрее будет выполнена та часть, которая уже была выполнена до аварийного завершения (т. к. там выполняется только сканирование, без удаления попыток). Удаления попыток будут начаты с места прерывания.

-Вернуться к содержанию-

4. Сценарии снятия и назначения ролей

4.1. Снятие назначенных ролей

Инструмент предназначен для массового снятия конкретной роли в конкретном контексте СЭО 3КL (Рис. 4.1.1).

Рис. 4.1.1. Снятие назначенных ролей.
Примеры использования:
1. Отчислить всех студентов из всех курсов.
2. Удалить назначение специальной роли «Старший преподаватель» или «Завуч» из контекста категорий.

Настройка:

1. Включить снятие ролей (поставить галочку).
2. Выбрать контекст, на уровне которого будет сниматься назначенная роль.
3. Выбрать назначенную роль, которая будет снята.
4. Сохранить изменения.
Задача будет обработана планировщиком задач по наступлению события \local_pprocessing\event\daily_executed

-Вернуться к содержанию-

4.2. Назначение или снятие роли пользователям согласно критериям

Сценарий предназначен для массового назначения ролей пользователям по значению поля профиля.

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

Особенности и условия:

Предварительно нужно заполнить необходимыми значениями те поля профилей пользователей, которые будут использованы в сценарии для назначения ролей (при необходимости) (Рис. 4.2.1).

Рис. 4.2.1. Назначение или снятие роли пользователям согласно критериям.
Пример использования:
Нужно назначить роль «Методист» в контексте корневой категории курсов всем пользователям с должностью «Преподаватель».

Настройка:

1. Выбрать из списка нужное поле профиля, по значению которого будут отбираться пользователи для назначения роли.
2. Выбрать отношение к значению поля профиля (совпадает/не совпадает, содержит/не содержит).
3. Указать значение поля профиля (например: если было выбрано поле «Должность», то указать значение этого поля:  «Программист»; «Бухгалтер»; «Преподаватель» и т. д. ).
4. Выбрать назначаемую роль из предлагаемого списка.
5. Выбрать уровень контекста для назначаемой роли (система/категория->выбор категории).
6. Включить массовое назначение ролей (поставить галочку).

Необходимо помнить о том, что не все роли подходят для всех контекстов — некоторые роли можно назначить только глобально, некоторые только в контексте категории курсов.
Дополнительная информация: Роли, контекст, ролевая модель

-Вернуться к содержанию-

5. Взаимодействие плагина с глобальными группами

5.1. Синхронизация пользователей с глобальными группами

Инструмент позволяет синхронизировать пользователей с глобальными группами по данным из поля профиля — добавлять пользователей в группы или отписывать от них (Рис. 5.1.1).

Рис. 5.1.1. Синхронизация пользователей с глобальными группами. Настройки сценария.

Особенности и условия:

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

Алгоритм сценария:

1. В поле профиля пользователя, которое указано в настройках инструмента, вносятся данные о группах (при этом поле может быть и пустым).
2. Сценарий извлекает данные о группах из поля профиля пользователя, ищет по этим данным глобальные группы в системе.
3. Если такие группы найдены, пользователь записывается в них. При этом из групп, которые есть в системе, но не входят в список групп из поля профиля, пользователь отписывается.
4. Если включена опция «Создавать глобальную группу, если отсутствует», и в поле профиля пользователя указано название глобальной группы, которой нет в СЭО 3КL, — группа будет автоматически создана и пользователь будет в нее записан.
5. В результате работы сценария пользователь будет записан только в те группы, которые будут указаны в заданном поле профиля.

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

Настройки сценария:

1. Включить синхронизацию (см. поз. 1 Рис. 5.1.1). Опция включения/отключения инструмента.
2. Выберите поле профиля, в котором указан список глобальных групп пользователя (см. поз. 2 Рис. 6.1.1). Выпадающий список для выбора поля профиля пользователя.
3. Идентификатором группы следует считать (см. поз. 3 Рис. 5.1.1). Позволяет выбрать тип поля идентификации группы, которое будет использоваться при поиске групп во время синхронизации. Доступные варианты:

  • ID. Внутренний уникальный идентификатор группы в системе.
  • Имя группы. Имя группы в системе.
  • Идентификатор группы. Заданный вручную уникальный идентификатор группы. Назначается при создании или может быть импортирован из внешней системы.

4. Ручное управление глобальными группами (см. поз. 4 Рис. 5.1.1). Настройка позволяет задать реакцию системы на редактирование состава глобальных групп вручную. Доступны два сценария:

  • Разрешено. Система позволяет добавлять/исключать пользователей вручную в группы, не указанные в поле профиля.
  • Запрещено. Система запрещает добавлять/исключать пользователя вручную в любые группы.

5. Создавать глобальную группу, если отсутствует (см. поз. 5 Рис. 5.1.1). Опция включает/отключает автоматическое создание глобальной группы в процессе синхронизации.

Если указывается название группы, оно будет проверено сценарием на точное соответствие.
Если указывается несколько групп, то они прописываются в поле через запятую.
Начиная с версии 3.9.17b, в алгоритм сценария добавлена валидация имени глобальной группы, с которой синхронизируются слушатели, на предмет лишних пробелов в начале или в конце названия. Доработка исключает циклическое срабатывание сценария (бесконечную переподписку пользователей) и последующее зависание системы.
Чтобы обезопасить вашу систему от возможных аварийных ситуаций, рекомендуем выполнить обновление более ранних релизов СЭО 3КL до актуальной версии.

-Вернуться к содержанию-

5.2. Синхронизация пользователей с глобальными группами по расписанию

Данный сценарий (Рис. 5.2.1) работает только с предыдущим при включенной синхронизации. Создает для ВСЕХ пользователей в системе события обновления пользователя, что позволяет сценарию из п. 5.1 по расписанию синхронизировать всех пользователей с глобальными группами.

Рис. 5.2.1. Синхронизация пользователей с глобальными группами по расписанию.

Особенности и условия:
Работает только с предыдущим сценарием (п. 5.1), при включенной синхронизации.

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

Настройка:

Включение/выключение инструмента выполняется установкой/снятием опции «Включить синхронизацию по расписанию».

-Вернуться к содержанию-

5.3. Удаление подписок типа «Синхронизация с глобальной группой» по дате из настраиваемых полей глобальной группы

Сценарий предназначен для удаления подписок Глобальной группы на курсы при наступлении указанной в настройках даты.

Сценарий использует данные даты из настраиваемого поля Глобальной группы (например, unenroldate). После настройки сценария и наступления указанной даты система удаляет способы записи типа «Синхронизация с глобальной группой», связанные с группой с истекшим сроком обучения (Рис. 5.3.1).

Рис. 5.3.1. Удаление подписок типа «Синхронизация с глобальной группой» по дате из настраиваемых полей глобальной группы.

Особенности и условия:

Предварительно нужно задать настраиваемые поля для Глобальных групп в плагине «Настраиваемые поля» и заполнить эти поля (поле с форматом «Дата», в котором указана дата отписки ГГ от курсов, например, unenroldate).

Как это сделать описано в инструкции «Настраиваемые поля».

Настройка:

1. Для включения сценария установить опцию «Включить сценарий удаления подписок» (См. Рис.6.3.1).
2. Выбрать из выпадающего списка поля «Настраиваемое поле, в котором хранится дата отписки глобальной группы» необходимое значение.

-Вернуться к содержанию-

5.4. Удаление глобальных групп по дате из настраиваемых полей глобальной группы

Сценарий предназначен для удаления Глобальной группы при наступлении указанной в настройках даты.

Сценарий использует данные даты из настраиваемого поля Глобальной группы (например, deldate). После настройки сценария и наступления указанной даты, система находит Глобальные группы с истекшим сроком пребывания в системе и удаляет их (Рис. 5.4.1).

Рис. 5.4.1. Удаление глобальных групп по дате из настраиваемых полей глобальной группы.

Особенности и условия:

Предварительно нужно задать настраиваемые поля для Глобальных групп в плагине «Настраиваемые поля» и заполнить эти поля (поле с форматом «Дата», в котором указана дата удаления ГГ, например, deldate).

Как это сделать описано в инструкции «Настраиваемые поля».

Настройка:
1. Для включения сценария установить опцию «Включить сценарий удаления глобальных групп» (См. Рис.5.4.1).
2. Выбрать значение в поле «Настраиваемое поле, в котором хранится дата для удаления глобальной группы».

-Вернуться к содержанию-

6. Сценарии выгрузки оценок

Для реализации описываемых в этом разделе сценариев, необходимо, чтобы в системе заранее было сформировано подключение к внешней (буферной) SQL базе данных.
Подробная информация о создании и настройке подключений в статье «Единый интерфейс подключения к внешним БД».

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

  • По событию «Изменена история оценки». Применяется сценарий «Выгрузка оценок во внешнюю базу данных», будут выгружены или обновлены оценки, изменение которых привело к формированию события.
Обратите внимание: сценарий не позволяет выгрузить оценки, полученные раньше, чем в системе был установлен плагин «История обучения».
  • По расписанию планировщика cron. Применяется сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию», будут выгружены все имеющиеся в системе оценки, согласно установленным настройкам.

Общий алгоритм выгрузки оценок:

1. Администратор настраивает подключение к внешней БД, в которую должны выгружаться оценки.

2. Администратор настраивает все необходимые параметры выгрузки в разделе «Выгрузка оценок во внешнюю базу данных» (какой вид оценок должен выгружаться и в каком формате; какие поля должны быть выгружены из СЭО 3КL во внешнюю БД дополнительно и т. п.).

3. Администратор выполняет первичное заполнение внешней БД:  включает сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию» и, после отработки планировщика задач cron, отключает его. Во внешнюю базу данных будут выгружены, согласно настройкам, все оценки и необходимые дополнительные поля.

4. Администратор включает экспорт оценок во внешнюю базу данных: активирует сценарий «Выгрузка оценок во внешнюю базу данных». Теперь, по событию «Изменена история оценки» вновь выставленные/измененные в СЭО 3КL оценки будут транслированы во внешнюю БД.

-Вернуться к содержанию-

6.1. Выгрузка оценок во внешнюю базу данных

Основной сценарий, позволяет выгружать во внешнюю БД оценки, которые получены пользователем после того, как плагин «История обучения» был установлен в системе.

Особенности и условия:

Предусмотрена выгрузка одного из трех видов оценок: оценки за элементы курсов, оценки за курсы, все оценки.

Вместе с оценками предусмотрена возможность выгрузки других полей данных системы во внешнюю БД путем сопоставления полей источника и приемника.

Настройка:

Если в системе еще не создано ни одного подключения к внешней базе данных, разделы, связанные выгрузкой данных во внешнюю БД, не будут содержать никаких настроек, кроме ссылки для перехода на страницу «Управление подключениями к внешним БД» (Рис. 6.1.1).


Рис. 6.1.1. Раздел настроек «Выгрузка оценок во внешнюю базу данных». Вид при отсутствии настроенного подключения к внешней БД.

В случае, если какие-либо подключения к внешним БД уже существуют в системе, они будут доступны в выпадающем меню «Соединение с базой данных» и пользователь сможет выбрать необходимое для выгрузки данных подключение (Рис. 6.1.2).

Рис. 6.1.2. Пример выбора настроенного подключения к внешней БД в разделе настроек «Выгрузка оценок во внешнюю базу данных».

После выбора значения «Соединение с базой данных» и заполнения поля «Имя таблицы» (таблица во внешней БД, в которую будут выгружаться оценки), необходимо сохранить введенные значения. После сохранения в разделе «Выгрузка оценок во внешнюю базу данных» плагина «Глобальные сценарии 3KL» станут доступны поля и параметры, необходимые для настройки выгрузки и сопоставления полей СЭО 3КL полям таблицы внешней БД (Рис.6.1.3).

Рис. 6.1.3. Разделы настроек «Выгрузка оценок во внешнюю базу данных» и «Выгрузка существующих оценок во внешнюю базу данных по расписанию» локального плагина «Глобальные сценарии 3KL».
  • Включить экспорт оценок во внешнюю базу данных. Установка/снятие опции позволяет включить/отключить выгрузку данных по событию «Изменена история оценки».
  • Соединение с базой данных. В поле указано название подключения к базе данных, в которую будут выгружаться оценки. При наличии в системе нескольких настроенных подключений, из выпадающего меню поля можно выбрать необходимое. Ссылка «Управление подключениями к внешним БД» позволяет перейти на соответствующую страницу для создания нового подключения.
  • Имя таблицы. Название таблицы буферной БД, куда должны выгружаться оценки.
  • Какие оценки выгружать? Выбрав соответствующее значение из выпадающего списка, пользователь определяет, какой вид оценок следует выгружать: «Все оценки», «За курсы», «За элементы курсов».
  • За какие элементы выгружать оценки? Если в предыдущем пункте выбрано значение «За элементы курсов», можно дополнительно определить: «Выгружать за все элементы» или «Только за тесты».
  • Формат оценки для экспорта. Выгружать оценку в процентном формате или как значение.
  • Формат времени выставления оценки. Параметр определяет, в каком виде выгружать время выставления (изменения) оценки: unix-формат (timestamp), только дата (YYYY-MM-DD ), дата и время (YYYY-MM-DD HH:MM:SS).
  • Формат времени выгрузки оценок. Параметр определяет, в каком виде выгружать время выгрузки (изменения) оценки во внешнюю базу данных: unix-формат (timestamp), только дата (YYYY-MM-DD ), дата и время (YYYY-MM-DD HH:MM:SS).
  • Идентификатор пользователя. Выбираемое из выпадающего списка поле в СЭО 3КL, по которому происходит идентификация пользователя.
  • Поле идентификатора пользователя. Название поля для идентификатора пользователя во внешней БД.
  • Идентификатор элемента курса.* В случае, если выгружаются (обновляются) оценки только за элементы курса, необходимо выбрать значение «Идентификатор элемента курса». При этом, поле «Идентификатор курса» должно иметь значение «Не связывать поле».
  • Поле идентификатора элемента курса. Название поля для идентификатора элемента курса во внешней БД.
  • Идентификатор курса.* В случае, если выгружаются (обновляются) оценки только за курсы, необходимо выбрать значение «Идентификатор курса». При этом, поле «Идентификатор элемента курса» должно иметь значение «Не связывать поле».
  • Поле идентификатора курса. Название поля для идентификатора курса во внешней БД.
  • Поля «Сопоставление данных». Позволяют настроить выгрузку во внешнюю базу других данных пользователей из системы. Заголовок поля содержит название поля данных в СЭО 3КL, а выпадающий список позволяет сопоставить его с названием поля во внешней БД или указать, что данные из этого поля «Не выгружать».
Для корректной выгрузки данных, формат полей таблицы внешней БД должен соответствовать формату значений, выгружаемых из СЭО 3КL.
Пример структуры таблицы внешней базы данных (SQL).
* — Идентификация записей во внешней базе данных при обновлении оценок производится по составному ключу «Идентификатор пользователя+Идентификатор элемента курса» или «Идентификатор пользователя+Идентификатор курса».
Если же предусмотрена выгрузка всех оценок — должны быть определены оба составных ключа.
Если оставить активным сценарий «Выгрузка оценок во внешнюю базу данных по расписанию», выборка оценок и выгрузка их во внешнюю БД будут происходить при каждом цикле выполнения задач планировщика cron. Для предотвращения необоснованной нагрузки на систему рекомендуем использовать этот сценарий как разовый и отключать его сразу же после применения.

-Вернуться к содержанию-

6.2. Выгрузка всех существующих оценок во внешнюю базу данных по расписанию

Сценарий предназначен для выгрузки всех существующих в системе оценок, в том числе и тех, которые были выставлены до активации сценария «Выгрузка оценок во внешнюю базу данных» (Рис. 6.2.1).

Рис. 6.2.1. Раздел «Выгрузка существующих оценок во внешнюю базу данных по расписанию».

Особенности и условия:

Включенный сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию» выполняется системой в рамках задачи «Ежедневная обработка прецедентов» (\local_pprocessing\task\daily). Настройки задачи и текущее состояние доступны: Настройки->Администрирование->Сервер->Задачи->Планировщик задач требуются права Администратора (Рис. 6.2.2).

Рис. 6.2.2. Задача «Ежедневная обработка прецедентов» в общем списке планировщика задач.

Настройка:

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

При установке опции «Включить выгрузку существующих оценок по расписанию», по расписанию планировщика cron система сформирует выборку всех имеющихся оценок и выгрузит их в буферную БД.

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

Алгоритм разового использования сценария:

1) Пользователь устанавливает опцию «Включить выгрузку существующих оценок по расписанию» и сохраняет состояние сценария.

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

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

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

Определить, произошла ли уже выгрузка оценок во внешнюю базу данных можно по состоянию внешней БД (если у пользователя есть к ней доступ) или косвенно, по времени последнего запуска задачи «Ежедневная обработка прецедентов»: дата и время в колонке «Последний запуск» должны быть больше, времени включения (сохранения состояния) опции «Включить выгрузку существующих оценок по расписанию» (см. Рис. 6.2.2).

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

-Вернуться к содержанию-

7. Выгрузка списков во внешнюю базу данных

Для реализации описываемых в этом разделе сценариев, необходимо, чтобы в системе заранее были сформированы подключения к внешней (буферной) SQL базе данных и внешнему источнику (таблице в БД).
Подробная информация о создании и настройке подключений в статье «Единый интерфейс подключения к внешним БД».

7.1. Выгрузка курсов во внешнюю базу данных по расписанию

Инструмент предназначен для выгрузки в таблицу внешней базы данных списка курсов СЭО 3КL.

Особенности и условия:

Во внешней БД должна быть создана таблица для получения экспортируемых из СЭО 3KL курсов, содержащая корректно настроенные поля для выгружаемых сущностей:

Название поля Описание Свойства поля в БД
id идентификатор курса СЭО 3KL bigint
NOT NULL
PRIMARY KEY
fullname Полное название курса varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
shortname Краткое название курса varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
idnumber Идентификационный номер курса (используется для сопоставления курса СЭО 3KL с записями в системах, являющихся внешними для СЭО 3KL и предназначено для хранения уникального кода таких записей) varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
category Идентификатор категории курса СЭО 3KL bigint
NOT NULL DEFAULT '0'
sync_session_status Статус последней сессии синхронизации CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
sync_session_start_ts Дата начала сессии последней синхронизации int
NOT NULL
sync_item_finish_ts Дата завершения последней синхронизации объекта int
DEFAULT NULL
sync_item_status Статус записи CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL

Настройка:

Если в системе еще не создано ни одного внешнего источника, раздел не будет содержать никаких данных, кроме ссылки для перехода на страницу «Управление внешними источниками» (Рис. 7.1.1).

Рис. 7.1.1. Внешний вид раздела «Выгрузка курсов во внешнюю базу данных по расписанию» при отсутствии настроенного внешнего источника.

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

Рис. 7.1.2. Настройки раздела «Выгрузка курсов во внешнюю базу данных по расписанию».

Установка/снятие опции «Включить выгрузку курсов во внешнюю базу данных по расписанию» активирует/отключает выполнение сценария выгрузки.

Сценарий может быть востребован при интеграции СЭО 3КL с внешними информационными системами.

-Вернуться к содержанию-

7.2. Выгрузка категорий курсов во внешнюю базу данных по расписанию

Инструмент предназначен для выгрузки в таблицу внешней базы данных списка категорий курсов СЭО 3КL.

Особенности и условия:

Во внешней БД должна быть предварительно создана таблица для получения экспортируемых из СЭО 3KL категорий курсов, содержащая корректно настроенные поля для выгружаемых сущностей:

Название поля Описание Свойства поля в БД
id идентификатор курса СЭО 3KL bigint
NOT NULL
PRIMARY KEY
fullname Полное название курса varchar(254) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
shortname Краткое название курса varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
idnumber Идентификационный номер курса (используется для сопоставления курса СЭО 3KL с записями в системах, являющихся внешними для СЭО 3KL и предназначено для хранения уникального кода таких записей) varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT
category Идентификатор категории курса СЭО 3KL bigint
NOT NULL DEFAULT '0'
sync_session_status Статус последней сессии синхронизации CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
sync_session_start_ts Дата начала сессии последней синхронизации int
NOT NULL
sync_item_finish_ts Дата завершения последней синхронизации объекта int
DEFAULT NULL
sync_item_status Статус записи CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL

Настройка:

Если в системе еще нет ни одного внешнего источника, раздел не будет содержать никаких данных, кроме ссылки для перехода на страницу «Управление внешними источниками» (Рис. 7.2.1).

Рис. 7.2.1. Внешний вид раздела «Выгрузка категорий курсов во внешнюю базу данных по расписанию» при отсутствии настроенного внешнего источника.

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

Рис. 7.2.2. Раздел «Выгрузка категорий курсов во внешнюю базу данных по расписанию».

Установка/снятие опции «Включить выгрузку категорий курсов во внешнюю базу данных по расписанию» активирует/отключает выполнение сценария выгрузки.

Сценарий может быть востребован при интеграции СЭО 3КL с внешними информационными системами.

-Вернуться к содержанию-

8. Раздел «Общие настройки»

Раздел «Общие настройки» содержит следующие параметры (Рис. 8.1):

Рис. 8.1. Раздел «Общие настройки» Глобальных сценариев 3KL.
  • Опция «Отключить логирование процесса выполнения сценариев». Если опция установлена, выполняемые сценарии логироваться не будут.
  • Опция «Очистить таблицу логов». Если в системе включено логирование выполнения сценариев, установка опции «Очистить таблицу логов» позволяет стереть ранее накопленную историю. Очистка производится как разовая процедура и после ее выполнения опция будет снята автоматически.

-Вернуться к содержанию-

9.Функции для разработчиков

Все перечисленные ниже функции применяются при написании сценариев для плагина «Глобальные сценарии 3KL».

  • Обработчик, сравнивающий полученное значение с заданным. Например, можно сравнивать контекст главной страницы и контекст страницы, где находится пользователь.
  • Обработчик условия, проверяющий, обработан ли прецедент. Может быть использован, например, для показа уведомления пользователю только один раз при заходе пользователя в курс или для отправки лишь одного уведомления пользователю через определенное время.
  • Обработчик условия, проверяющий, является ли переданный предыдущим хэндлером результат пустым.
  • Обработчик, получающий значение настройки user_preferences (частные настройки пользователя) и записывающий ее в переменную.
  • Хендлер «Показать уведомление», показывающий уведомление с заданным типом, текстом и заголовком пользователю.
  • Хендлер, взаимодействующий с брокером сообщений Rabbitmq «Получение ответа из очереди Б на отправленный запрос в очередь А». Хендлер отправляет запрос в очередь А, помеченный уникальным идентификатором, прослушивает очередь сообщений Б, и, как только находится сообщение с заданным идентификатором, возвращает json найденного сообщения.
  • Обработчик «Остановка сценария по условию» прекращает работу сценария при выполнении предварительно заданных условий.
  • Сценарии в плагине «Глобальные сценарии 3KL» переведены на валидную Yaml-разметку.
  • В параметрах вызова обработчика (хендлера) можно задать условия для его срабатывания.
  • В параметрах вызова любого обработчика можно настроить сохранение результата работы обработчика в переменную, указанную в конфигурации обработчика.
  • Возможно указать для обработчика входные параметры следующих типов:
    • статические;
    • указанные в переменной;
    • из предыдущего обработчика.
  • Обработчик получения способов записи на курс по заданным условиям.
  • Обработчик получения записей из таблицы кастомных полей по коду сущности и дополнительным параметрам.
  • Обработчик удаления способа записи на курс.
  • Обработчик удаления глобальной группы.
  • Обработчик получения переменной из контейнера.
  • Обработчик получения значения конфигурации плагина.
  • Обработчик получения записи из таблицы «Cohort» БД о глобальной группе по ее идентификатору.

-Вернуться к содержанию-

Теги: контент, отчет
Рейтинг ответа: 0 (0 оценок)

Комментарии запрещены