Добрый день.
Проблема с метакурсами.
Версия Moodle 3.6.10 (Build: 20200511) (также есть тестовый сервер с версией 3.10.7 для экспериментов).
Проблема заключается в следующем. У меня есть курсы-зачетки, на которые студенты записаны синхронизацией с ГГ, и есть учебные курсы, связанные с зачеткой метасвязью.
Обнаружил, что при добавлении новых студентов в состав глобальной группы, либо подключения к зачетке новой группы студенты или вообще не появляются в списке зачисленных на учебный курс, или появляются, но им не присваивается роль.
В режиме отладки выдает, например, такое:
Exception encountered in event observer 'enrol_meta_observer::user_enrolment_created': Не удается найти данную запись в таблице groups базы данных. (SELECT * FROM {groups} WHERE id = ? [array (0 => '1327',)])
line 1622 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
line 64 of /group/lib.php: call to moodle_database->get_record()
line 177 of /enrol/meta/locallib.php: call to groups_add_member()
line 61 of /enrol/meta/locallib.php: call to enrol_meta_handler::sync_with_parent_course()
line 55 of /enrol/meta/classes/observer.php: call to enrol_meta_handler::sync_course_instances()
line ? of unknownfile: call to enrol_meta_observer::user_enrolment_created()
line 155 of /lib/classes/event/manager.php: call to call_user_func()
line 75 of /lib/classes/event/manager.php: call to core\event\manager::process_buffers()
line 834 of /lib/classes/event/base.php: call to core\event\manager::dispatch()
line 2086 of /lib/enrollib.php: call to core\event\base->trigger()
line 207 of /enrol/cohort/locallib.php: call to enrol_plugin->enrol_user()
line 120 of /enrol/cohort/lib.php: call to enrol_cohort_sync()
line 96 of /enrol/editinstance.php: call to enrol_cohort_plugin->add_instance()
Exception encountered in event observer 'enrol_meta_observer::role_assigned': Не удается найти данную запись в таблице groups базы данных. (SELECT * FROM {groups} WHERE id = ?[array (0 => '1177',)])
line 1622 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
line 64 of /group/lib.php: call to moodle_database->get_record()
line 177 of /enrol/meta/locallib.php: call to groups_add_member()
line 61 of /enrol/meta/locallib.php: call to enrol_meta_handler::sync_with_parent_course()
line 127 of /enrol/meta/classes/observer.php: call to enrol_meta_handler::sync_course_instances()
line ? of unknownfile: call to enrol_meta_observer::role_assigned()
line 155 of /lib/classes/event/manager.php: call to call_user_func()
line 75 of /lib/classes/event/manager.php: call to core\event\manager::process_buffers()
line 834 of /lib/classes/event/base.php: call to core\event\manager::dispatch()
line 1629 of /lib/accesslib.php: call to core\event\base->trigger()
line 263 of /enrol/cohort/locallib.php: call to role_assign()
line 120 of /enrol/cohort/lib.php: call to enrol_cohort_sync()
line 96 of /enrol/editinstance.php: call to enrol_cohort_plugin->add_instance()
Также, при попытке в некоторых учебных курсах создать новую метасвязь тоже выдает подобную ошибку. А в других – все нормально.
После многократного ручного запуска задачи Meta enrolment sync task в планировщике задач все нормализовывается, но при дальнейшем добавлении студентов в курс-зачетку ошибка возникает опять.
Проблеме уже около года, не могу разобраться, а наш сотрудник, которому поручено заниматься программной частью работы с moodle утверждает, что ничего исправить нельзя, нужно все удалять удалять и создавать заново, но одних курсов больше 1000 и в каждом не одна метасвязь.
Может, кто сталкивался? Помогите!!