Глобальные сценарии 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. Возможности
По функциональному назначению, автоматические сценарии плагина разделяются на следующие группы:
- Сценарии рассылки уведомлений. Обеспечивают возможность при наступлении отслеживаемого события (подписка пользователя на курс, отправка паролей из внешней БД и т. п.) отправить пользователю сообщение об этом. Уведомления рассылаются по заранее настроенным в системе каналам доставки сообщений, текст уведомления задается при настройке сценария.
- Сценарии удаления. Позволяют выполнить автоматическое удаление объектов (пользователей, глобальных групп, подписок, завершенных неуспешных попыток прохождения теста — в зависимости от сценария) в указанный срок или по истечении срока давности.
- Сценарии снятия и назначения ролей. Позволяют назначить пользователю выбранную роль или снять ее, в зависимости от выбранного сценария и его настроек. Срабатывание сценария может быть привязано к определенному контексту системы или значению поля профиля пользователя.
- Сценарии взаимодействия с глобальными группами. Обеспечивают синхронизацию с указанными глобальными группами (автоматическое отчисление или зачисление пользователей). В зависимости от выбранного сценария, условием срабатывания может быть создание/обновление/удаление пользователя в системе или значение настраиваемого поля.
- Сценарии выгрузки оценок. Позволяют выгружать из СЭО 3КL во внешние БД значения оценок и дополнительных полей системы.
- Сценарии выгрузки списков. Позволяют выгружать из СЭО 3КL во внешние БД списки курсов и категорий курсов.
2. Сценарии рассылки уведомлений
2.1. Описание работы плагина при рассылке уведомлений
Плагин «Глобальные сценарии 3KL» рассылает уведомления пользователям системы стандартным способом по выделенным каналам коммуникации. Получение уведомлений от плагина настраивается пользователем через настройки уведомлений в Личном кабинете в секции «Глобальные сценарии 3KL»: Личный кабинет—>Настройки—>Учетная запись пользователя—>Настройка уведомлений (Рис.2.1.1).
Для удобства управления получением уведомлений у плагина имеется возможность раздельной настройки по событию (присутствие/отсутствие пользователя на сайте / в сети ) и способу доставки (во всплывающем окне, с помощью СМС, по электронной почте, через мессенджер «Телеграм») (см. Рис. 2.1.1).
Уведомления Панели обработки прецедентов разделяются на два типа:
- Уведомления о прецедентах — этот тип уведомлений рассылает все уведомления плагина, кроме паролей:
- отправка орфографических ошибок;
- отправка уведомления о том, что пользователь зарегистрирован давно и не заходит;
- отправка уведомления о том, что пользователь только что зарегистрирован;
- отправка уведомления о том, что студент зачислен в курс;
- отправка уведомления о том, что преподаватель зачислен в курс.
- Глобальные сценарии 3KL: служебные уведомления — этот тип уведомлений в данный момент рассылает только пароли новым пользователям.
Путь к настройкам: Администрирование—>Плагины—>Локальные плагины—>Глобальные сценарии 3KL.
Все действия в данной инструкции требуют права полного (технического) администратора!
2.2. Уведомление об орфографической ошибке
Модуль «Отчет об орфографической ошибке» предназначен для обратной связи пользователей сайта, сообщающих о найденных ошибках на сайте СЭО 3КL, и администраторов, получающих сообщения об ошибках (Рис. 2.2.1). Ссылка на отдельную инструкцию по модулю.
2.3. Уведомление слушателя о подписке на курс
Инструмент предназначен для отправки уведомлений слушателю при его зачислении на курс (Рис. 2.3.1).
Особенности и условия:
Уведомление отправляется при любом способе зачисления пользователя на курс.
Уведомление отправляется пользователям, записанным на курс с оцениваемой ролью.
Настройка:
1. Включить отправку уведомления (установить маркер в чекбокс).
2. Отредактировать уже заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (при необходимости).
2.4. Уведомление преподавателя о подписке на курс с правом оценивать других пользователей
Инструмент предназначен для отправки уведомлений преподавателю при его зачислении на курс (Рис. 2.4.1).
Особенности и условия:
Уведомления отправляются только контактам курса. Пользователь (Преподаватель) должен быть записан в курс с ролью, которая указана в настройках контактов курса. По умолчанию в СЭО 3КL в контактах курса указана роль «Преподаватель».
Проверить роли контактов курса можно здесь:
Администрирование—>Внешний вид—>Курсы. /admin/settings.php?section=coursecontact
Настройка:
1. Включить отправку уведомления (установить маркер в чекбокс).
2. Отредактировать уже заполненные по умолчанию поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления» (при необходимости).
2.5. Уведомление ни разу не авторизовавшегося пользователя о недавней регистрации
Инструмент предназначен для отправки уведомлений зарегистрированному пользователю, который ни разу не заходил в систему в течение 7 дней после регистрации (Рис. 2.5.1).
Особенности и условия:
Пользователь может быть зарегистрирован в СЭО 3КL любым способом.
Если в течение 7 дней с момента регистрации он не заходил в систему — ему однократно отправляется уведомление.
Настройка:
1. Включить отправку уведомления (установить маркер в чекбокс).
2. Заполнить поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления».
2.6. Уведомление ни разу не авторизовавшегося пользователя о регистрации, с момента которой прошло почти два месяца
Инструмент аналогичен предыдущему (п. 2.5) и предназначен для отправки уведомлений зарегистрированному пользователю, который ни разу не заходил в систему в течение 7 недель после регистрации (Рис. 2.6.1).
Особенности и условия:
Пользователь может быть зарегистрирован в СЭО любым способом.
Если в течение 7 недель (точнее '-2 months, +7 days') с момента регистрации он не заходил в систему — ему однократно отправляется уведомление.
Настройка:
1. Включить отправку уведомления (установить маркер в чекбокс).
2. Заполнить поля «Заголовок уведомления», «Полный текст уведомления» и «Короткий текст уведомления».
2.7. Отправка уведомлений с паролем пользователям, загруженным в систему
Сценарий представляет собой отправку паролей загруженным в систему пользователям с помощью уведомлений на почту и/или СМС. Данный инструмент может быть полезен, если нужно отправить новым пользователям пароль по СМС, при этом, можно настроить генерацию пароля так, что временный пароль будет коротким и простым.
Настройки содержат тексты уведомлений, опцию принудительной смены пароля и дополнительные настройки пароля (Рис. 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).
Настройка:
1. Включить «Дополнительные настройки пароля» (установить маркер в чекбокс).
2. С помощью остальных настроек откорректировать параметры создаваемых паролей.
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. При включении опции «Принудительная смена пароля» пользователю будет предложено изменить пароль при следующем входе в систему. При этом создаваемый пользователем пароль должен будет соответствовать политике паролей (если она включена).
3. Сценарии удаления
3.1. Удаление ни разу не авторизовавшихся пользователей, с момента регистрации которых прошло два месяца
Инструмент предназначен для автоматического удаления пользователей, ни разу не авторизовавшихся в системе за два месяца с момента регистрации. Обычно применяется с инструментом п. 5 (пользователю отправляется сообщение за неделю до удаления) (Рис. 3.1.1).
Особенности и условия:
Будут удалены все зарегистрированные, но ни разу не авторизовавшиеся в течение двух месяцев пользователи, кроме пользователей с ролью Технический (полный) Администратор.
Настройка:
Включить выполнение действия (поставить галочку).
3.2. Удаление завершенных попыток тестирования старше заданной даты
Сценарий позволяет автоматически удалять неуспешные завершенные попытки тестирования (элемент «Тест»), с момента завершения которых прошло больше времени, чем указано в настройках сценария (Рис. 3.2.1). При включенной опции система в фоновом режиме проверяет завершенные попытки прохождения теста на успешность в зависимости от метода оценивания в тесте и удаляет подходящие по сроку неуспешные попытки. Данная операция не влияет на оценки за тест и позволяет улучшить скорость работы модуля.
Этот инструмент может быть полезен, если нужно удалить незначимые данные о неуспешных попытках пользователей пройти тест.
Настройка:
1. Включить удаление завершенных попыток тестирования (поставить галочку).
2. Отредактировать значение умолчанию поля «С момента завершения попытки должно пройти больше...» (при необходимости).
Комментарии по производительности:
Данная задача достаточно ресурсоемкая. Первый запуск может длиться продолжительное время. Много времени при обработке уходит на запросы к базе данных и процесс удаления каждой попытки.
Ориентировочная производительность: за 7 суток обрабатывается около 500 000 попыток теста.
При повторных запусках сценарий всегда работает быстрее, чем при первичном, так как часть попыток уже удалена во время предыдущего прохода. Попытки удаляются по одной по мере выполнения процесса.
Если аварийно завершить задачу, то она просто перестанет выполняться. В следующий запуск задачи прогон пойдет сначала, и гораздо быстрее будет выполнена та часть, которая уже была выполнена до аварийного завершения (т. к. там выполняется только сканирование, без удаления попыток). Удаления попыток будут начаты с места прерывания.
4. Сценарии снятия и назначения ролей
4.1. Снятие назначенных ролей
Инструмент предназначен для массового снятия конкретной роли в конкретном контексте СЭО 3КL (Рис. 4.1.1).
1. Отчислить всех студентов из всех курсов.
2. Удалить назначение специальной роли «Старший преподаватель» или «Завуч» из контекста категорий.
Настройка:
1. Включить снятие ролей (поставить галочку).
2. Выбрать контекст, на уровне которого будет сниматься назначенная роль.
3. Выбрать назначенную роль, которая будет снята.
4. Сохранить изменения.
Задача будет обработана планировщиком задач по наступлению события \local_pprocessing\event\daily_executed
4.2. Назначение или снятие роли пользователям согласно критериям
Сценарий предназначен для массового назначения ролей пользователям по значению поля профиля.
Сценарий назначает выбранную в настройках роль всем пользователям системы, у которых нужное поле профиля соответствует заданным критериям. Если у кого-то из этих пользователей изменится значение выбранного поля профиля, система автоматически снимет назначенную роль.
Особенности и условия:
Предварительно нужно заполнить необходимыми значениями те поля профилей пользователей, которые будут использованы в сценарии для назначения ролей (при необходимости) (Рис. 4.2.1).
Нужно назначить роль «Методист» в контексте корневой категории курсов всем пользователям с должностью «Преподаватель».
Настройка:
1. Выбрать из списка нужное поле профиля, по значению которого будут отбираться пользователи для назначения роли.
2. Выбрать отношение к значению поля профиля (совпадает/не совпадает, содержит/не содержит).
3. Указать значение поля профиля (например: если было выбрано поле «Должность», то указать значение этого поля: «Программист»; «Бухгалтер»; «Преподаватель» и т. д. ).
4. Выбрать назначаемую роль из предлагаемого списка.
5. Выбрать уровень контекста для назначаемой роли (система/категория->выбор категории).
6. Включить массовое назначение ролей (поставить галочку).
Дополнительная информация: Роли, контекст, ролевая модель
5. Взаимодействие плагина с глобальными группами
5.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КL до актуальной версии.
5.2. Синхронизация пользователей с глобальными группами по расписанию
Данный сценарий (Рис. 5.2.1) работает только с предыдущим при включенной синхронизации. Создает для ВСЕХ пользователей в системе события обновления пользователя, что позволяет сценарию из п. 5.1 по расписанию синхронизировать всех пользователей с глобальными группами.
Особенности и условия:
Работает только с предыдущим сценарием (п. 5.1), при включенной синхронизации.
Сценарий нужен, чтобы не обновлять всех пользователей системы вручную для их записи в глобальные группы по полю профиля.
Настройка:
Включение/выключение инструмента выполняется установкой/снятием опции «Включить синхронизацию по расписанию».
5.3. Удаление подписок типа «Синхронизация с глобальной группой» по дате из настраиваемых полей глобальной группы
Сценарий предназначен для удаления подписок Глобальной группы на курсы при наступлении указанной в настройках даты.
Сценарий использует данные даты из настраиваемого поля Глобальной группы (например, unenroldate). После настройки сценария и наступления указанной даты система удаляет способы записи типа «Синхронизация с глобальной группой», связанные с группой с истекшим сроком обучения (Рис. 5.3.1).
Особенности и условия:
Предварительно нужно задать настраиваемые поля для Глобальных групп в плагине «Настраиваемые поля» и заполнить эти поля (поле с форматом «Дата», в котором указана дата отписки ГГ от курсов, например, unenroldate).
Настройка:
1. Для включения сценария установить опцию «Включить сценарий удаления подписок» (См. Рис.6.3.1).
2. Выбрать из выпадающего списка поля «Настраиваемое поле, в котором хранится дата отписки глобальной группы» необходимое значение.
5.4. Удаление глобальных групп по дате из настраиваемых полей глобальной группы
Сценарий предназначен для удаления Глобальной группы при наступлении указанной в настройках даты.
Сценарий использует данные даты из настраиваемого поля Глобальной группы (например, deldate). После настройки сценария и наступления указанной даты, система находит Глобальные группы с истекшим сроком пребывания в системе и удаляет их (Рис. 5.4.1).
Особенности и условия:
Предварительно нужно задать настраиваемые поля для Глобальных групп в плагине «Настраиваемые поля» и заполнить эти поля (поле с форматом «Дата», в котором указана дата удаления ГГ, например, deldate).
Настройка:
1. Для включения сценария установить опцию «Включить сценарий удаления глобальных групп» (См. Рис.5.4.1).
2. Выбрать значение в поле «Настраиваемое поле, в котором хранится дата для удаления глобальной группы».
6. Сценарии выгрузки оценок
Подробная информация о создании и настройке подключений в статье «Единый интерфейс подключения к внешним БД».
Инструмент предназначен для автоматической выгрузки по заданным настройкам оценок пользователей во внешнюю базу данных. Оценки могут быть выгружены:
- По событию «Изменена история оценки». Применяется сценарий «Выгрузка оценок во внешнюю базу данных», будут выгружены или обновлены оценки, изменение которых привело к формированию события.
- По расписанию планировщика cron. Применяется сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию», будут выгружены все имеющиеся в системе оценки, согласно установленным настройкам.
Общий алгоритм выгрузки оценок:
1. Администратор настраивает подключение к внешней БД, в которую должны выгружаться оценки.
2. Администратор настраивает все необходимые параметры выгрузки в разделе «Выгрузка оценок во внешнюю базу данных» (какой вид оценок должен выгружаться и в каком формате; какие поля должны быть выгружены из СЭО 3КL во внешнюю БД дополнительно и т. п.).
3. Администратор выполняет первичное заполнение внешней БД: включает сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию» и, после отработки планировщика задач cron, отключает его. Во внешнюю базу данных будут выгружены, согласно настройкам, все оценки и необходимые дополнительные поля.
4. Администратор включает экспорт оценок во внешнюю базу данных: активирует сценарий «Выгрузка оценок во внешнюю базу данных». Теперь, по событию «Изменена история оценки» вновь выставленные/измененные в СЭО 3КL оценки будут транслированы во внешнюю БД.
6.1. Выгрузка оценок во внешнюю базу данных
Основной сценарий, позволяет выгружать во внешнюю БД оценки, которые получены пользователем после того, как плагин «История обучения» был установлен в системе.
Особенности и условия:
Предусмотрена выгрузка одного из трех видов оценок: оценки за элементы курсов, оценки за курсы, все оценки.
Вместе с оценками предусмотрена возможность выгрузки других полей данных системы во внешнюю БД путем сопоставления полей источника и приемника.
Настройка:
Если в системе еще не создано ни одного подключения к внешней базе данных, разделы, связанные выгрузкой данных во внешнюю БД, не будут содержать никаких настроек, кроме ссылки для перехода на страницу «Управление подключениями к внешним БД» (Рис. 6.1.1).
В случае, если какие-либо подключения к внешним БД уже существуют в системе, они будут доступны в выпадающем меню «Соединение с базой данных» и пользователь сможет выбрать необходимое для выгрузки данных подключение (Рис. 6.1.2).
После выбора значения «Соединение с базой данных» и заполнения поля «Имя таблицы» (таблица во внешней БД, в которую будут выгружаться оценки), необходимо сохранить введенные значения. После сохранения в разделе «Выгрузка оценок во внешнюю базу данных» плагина «Глобальные сценарии 3KL» станут доступны поля и параметры, необходимые для настройки выгрузки и сопоставления полей СЭО 3КL полям таблицы внешней БД (Рис.6.1.3).
- Включить экспорт оценок во внешнюю базу данных. Установка/снятие опции позволяет включить/отключить выгрузку данных по событию «Изменена история оценки».
- Соединение с базой данных. В поле указано название подключения к базе данных, в которую будут выгружаться оценки. При наличии в системе нескольких настроенных подключений, из выпадающего меню поля можно выбрать необходимое. Ссылка «Управление подключениями к внешним БД» позволяет перейти на соответствующую страницу для создания нового подключения.
- Имя таблицы. Название таблицы буферной БД, куда должны выгружаться оценки.
- Какие оценки выгружать? Выбрав соответствующее значение из выпадающего списка, пользователь определяет, какой вид оценок следует выгружать: «Все оценки», «За курсы», «За элементы курсов».
- За какие элементы выгружать оценки? Если в предыдущем пункте выбрано значение «За элементы курсов», можно дополнительно определить: «Выгружать за все элементы» или «Только за тесты».
- Формат оценки для экспорта. Выгружать оценку в процентном формате или как значение.
- Формат времени выставления оценки. Параметр определяет, в каком виде выгружать время выставления (изменения) оценки: 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, а выпадающий список позволяет сопоставить его с названием поля во внешней БД или указать, что данные из этого поля «Не выгружать».
Пример структуры таблицы внешней базы данных (SQL).
Если же предусмотрена выгрузка всех оценок — должны быть определены оба составных ключа.
6.2. Выгрузка всех существующих оценок во внешнюю базу данных по расписанию
Сценарий предназначен для выгрузки всех существующих в системе оценок, в том числе и тех, которые были выставлены до активации сценария «Выгрузка оценок во внешнюю базу данных» (Рис. 6.2.1).
Особенности и условия:
Включенный сценарий «Выгрузка существующих оценок во внешнюю базу данных по расписанию» выполняется системой в рамках задачи «Ежедневная обработка прецедентов» (\local_pprocessing\task\daily). Настройки задачи и текущее состояние доступны: Настройки->Администрирование->Сервер->Задачи->Планировщик задач требуются права Администратора (Рис. 6.2.2).
Настройка:
При отработке сценария применяются настройки, установленные в разделе «Выгрузка оценок во внешнюю базу».
При установке опции «Включить выгрузку существующих оценок по расписанию», по расписанию планировщика cron система сформирует выборку всех имеющихся оценок и выгрузит их в буферную БД.
Алгоритм разового использования сценария:
1) Пользователь устанавливает опцию «Включить выгрузку существующих оценок по расписанию» и сохраняет состояние сценария.
2) При запуске выполнения задачи «Ежедневная обработка прецедентов» система проверяет состояние опции «Включить выгрузку существующих оценок по расписанию» и, если она включена, в рамках выполнения задачи производится выгрузка оценок и дополнительных полей, которые установлены в разделе «Выгрузка оценок во внешнюю базу данных».
3) Пользователь убеждается, что все оценки выгрузились во внешнюю базу данных (задача «Ежедневная обработка прецедентов» успешно отработала), снимает опцию «Включить выгрузку существующих оценок по расписанию» и сохраняет состояние сценария.
Определить, произошла ли уже выгрузка оценок во внешнюю базу данных можно по состоянию внешней БД (если у пользователя есть к ней доступ) или косвенно, по времени последнего запуска задачи «Ежедневная обработка прецедентов»: дата и время в колонке «Последний запуск» должны быть больше, времени включения (сохранения состояния) опции «Включить выгрузку существующих оценок по расписанию» (см. Рис. 6.2.2).
7. Выгрузка списков во внешнюю базу данных
Подробная информация о создании и настройке подключений в статье «Единый интерфейс подключения к внешним БД».
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.2).
Установка/снятие опции «Включить выгрузку курсов во внешнюю базу данных по расписанию» активирует/отключает выполнение сценария выгрузки.
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.2).
Установка/снятие опции «Включить выгрузку категорий курсов во внешнюю базу данных по расписанию» активирует/отключает выполнение сценария выгрузки.
8. Раздел «Общие настройки»
Раздел «Общие настройки» содержит следующие параметры (Рис. 8.1):
- Опция «Отключить логирование процесса выполнения сценариев». Если опция установлена, выполняемые сценарии логироваться не будут.
- Опция «Очистить таблицу логов». Если в системе включено логирование выполнения сценариев, установка опции «Очистить таблицу логов» позволяет стереть ранее накопленную историю. Очистка производится как разовая процедура и после ее выполнения опция будет снята автоматически.
9.Функции для разработчиков
Все перечисленные ниже функции применяются при написании сценариев для плагина «Глобальные сценарии 3KL».
- Обработчик, сравнивающий полученное значение с заданным. Например, можно сравнивать контекст главной страницы и контекст страницы, где находится пользователь.
- Обработчик условия, проверяющий, обработан ли прецедент. Может быть использован, например, для показа уведомления пользователю только один раз при заходе пользователя в курс или для отправки лишь одного уведомления пользователю через определенное время.
- Обработчик условия, проверяющий, является ли переданный предыдущим хэндлером результат пустым.
- Обработчик, получающий значение настройки user_preferences (частные настройки пользователя) и записывающий ее в переменную.
- Хендлер «Показать уведомление», показывающий уведомление с заданным типом, текстом и заголовком пользователю.
- Хендлер, взаимодействующий с брокером сообщений Rabbitmq «Получение ответа из очереди Б на отправленный запрос в очередь А». Хендлер отправляет запрос в очередь А, помеченный уникальным идентификатором, прослушивает очередь сообщений Б, и, как только находится сообщение с заданным идентификатором, возвращает json найденного сообщения.
- Обработчик «Остановка сценария по условию» прекращает работу сценария при выполнении предварительно заданных условий.
- Сценарии в плагине «Глобальные сценарии 3KL» переведены на валидную Yaml-разметку.
- В параметрах вызова обработчика (хендлера) можно задать условия для его срабатывания.
- В параметрах вызова любого обработчика можно настроить сохранение результата работы обработчика в переменную, указанную в конфигурации обработчика.
- Возможно указать для обработчика входные параметры следующих типов:
- статические;
- указанные в переменной;
- из предыдущего обработчика.
- Обработчик получения способов записи на курс по заданным условиям.
- Обработчик получения записей из таблицы кастомных полей по коду сущности и дополнительным параметрам.
- Обработчик удаления способа записи на курс.
- Обработчик удаления глобальной группы.
- Обработчик получения переменной из контейнера.
- Обработчик получения значения конфигурации плагина.
- Обработчик получения записи из таблицы «Cohort» БД о глобальной группе по ее идентификатору.