Интеграция АСУ «Спрут» с СЭО 3KL (СДО Русский Moodle)

Сергей Гусев
23.09.2024
Содержание:
1. Общие принципы интеграции

2. Спецификации интеграции с АСУ «Спрут»
  2.1. Версия 1 спецификации интеграции с АСУ «Спрут» (текущая)
    2.1.1. Сценарий «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»
    2.1.2. Сценарий «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»
    2.1.3. Сценарий «Передача оценок из СЭО 3КL в АСУ «Спрут»
  2.2. Версия 2 спецификации интеграции с АСУ «Спрут» (планируемая)
    2.2.1. Сценарий «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»
    2.2.2. Сценарий «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»
    2.2.3. Сценарий «Передача оценок из СЭО 3КL в АСУ «Спрут»
    2.2.4. Сценарий «Передача данных по курсам из СЭО 3КL в АСУ «Спрут»
    2.2.5. Сценарий «Передача данных по категориям курсов из СЭО 3КL в АСУ «Спрут»
3. Настройка интеграции СЭО 3КL с АСУ «Спрут» (версия 1)

  3.1. Настройка сценария «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»
  3.2. Настройка сценария «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»
  3.3. Настройка сценария «Передача оценок из СЭО 3КL в АСУ «Спрут»
    3.3.1. Создание настраиваемых полей
    3.3.2. Настройка подключения к буферной БД
    3.3.3. Настройка Панели обработки прецедентов для выгрузки оценок
    3.3.4. Включение выгрузки оценок по расписанию
4. Настройка интеграции СЭО 3КL с АСУ «Спрут» (версия 2)

  4.1. Настройка сценария «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»
  4.2. Настройка сценария «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»
  4.3. Настройка сценария «Передача оценок из СЭО 3КL в АСУ «Спрут»
    4.3.1. Создание настраиваемых полей
    4.3.2. Настройка подключения к буферной БД
    4.3.3. Настройка Панели обработки прецедентов для выгрузки оценок
    4.3.4. Настройка Панели обработки прецедентов для выгрузки данных по курсам
    4.3.5. Настройка Панели обработки прецедентов для выгрузки данных по категориям курсов
    4.3.6. Включение выгрузки оценок по расписанию
5. Примеры и решения

1. Общие принципы интеграции

Автоматизированная система управления «Спрут», а именно подсистема «Студент» (далее АСУ «Спрут», СПРУТ), предназначена для ведения документооборота в высших и средних учебных заведениях РФ и автоматизации контроля над деятельностью студентов, начиная от поступления и заканчивая выдачей дипломов.

Данная интеграция позволяет автоматизировать процедуру обмена данными между СЭО 3КL (оценки, курсы и т. п.) и АСУ «Спрут» (данные по студентам, зачетные книжки, ведомости и т. п.). Основной обмен данными происходит через буферную базу данных MS SQL (Рис. 1.1).

Рис. 1.1. Архитектура взаимодействия СЭО 3КL и АСУ «Спрут».

Общий алгоритм интеграции:

1) Из АСУ «Спрут» в буферную БД выгружаются данные по учащимся (определенный набор полей пользователей), зарегистрированным в системе (Рис. 1.2).

Рис. 1.2. Пример таблицы внешней БД с данными пользователей.

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

3) Учащиеся, по своему логину, зарегистрированному в АСУ «Спрут», входят в СЭО 3КL, в соответствии с учебным планом изучают курсы (=дисциплины), получают оценки за них.

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

4) Итоговые оценки за дисциплины выгружаются из СЭО 3КL в буферную БД (по расписанию и событию). Критерием выгрузки служит выставление оценки или изменение ранее выставленной.

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

6) АСУ «Спрут» по расписанию выгружает сформированные документы по учащимся в формате pdf во внешнее файловое хранилище (Рис. 1.4).

Рис. 1.4. Настройка выгрузки из СПРУТ документов по учащимся.

7) В СЭО 3КL, в личном кабинете пользователя, отображаются ссылки на документы пользователя в файловом хранилище (Рис. 1.5).

Рис. 1.5. Пример страницы личного кабинета пользователя.

Интеграция включает следующие независимые сценарии (Табл. 1):

Название сценария Задействованные плагины (СЭО 3КL)
Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL Внешняя база данных» (auth_db)
Передача pdf-документов из АСУ «Спрут» в СЭО 3КL Внешние данные (otexternaldata)
Передача оценок из СЭО 3КL в АСУ «Спрут»

История обучения (local_learninghistory) — для сбора оценок из курсов

Настраиваемые поля для объектов (local_mcov) — для хранения типа итогового контроля

Панель обработки прецедентов (local_pprocessing) — для выгрузки данных в буферную базу данных (БД)

Табл. 1. Сценарии интеграции.

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

2. Спецификации интеграции с АСУ «Спрут»

2.1. Версия 1 спецификации интеграции с АСУ «Спрут» (текущая)

В данном разделе представлен текущий вариант интеграции между СЭО 3КL и АСУ «Спрут».
Данная версия интеграции уже реализована, для ее настройки все готово.
Основным недостатком версии 1 является то, что требуется настраивать и заполнять большое количество дополнительных полей в каждом курсе, по которым СПРУТ сопоставляет оценки из СЭО 3KL со своим учебным планом. Кроме того, требуется выполнять специальную настройку итоговой оценки в каждом курсе для приведения оценки к специальному техническому формату, применяемому в базе данных АСУ «Спрут» (1-5 для экзаменов с оценкой и 6-7 для зачетов).
Этот недостаток устранен в версии 2 спецификации интеграции. В настоящая время продолжается совместная работа по переходу на версию 2.
2.1.1. Сценарий «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»

Назначение сценария:

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

Требования к БД:

Тип внешней БД — MS SQL. Кодировка внешней базы данных Cyrillic_General_100 или Cyrillic_General.

Условия запуска:

Выгрузка данных из АСУ «Спрут» во внешнюю БД выполняется по расписанию.

Выгрузка новых записей из внешней БД в СЭО 3КL выполняется по расписанию, раз в сутки.

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

Транслируемые поля:

Название поля в таблице буферной БД
Тип Допустимое значение
Примечание
student_login nvarchar(200) Валидная utf8 строка в нижнем регистре, соответствующая регулярному выражению [^-\.@_a-z0-9], максимальная длина 100 символов.

Ключ-идентификатор СЭО 3КL.

Поле «Логин» (username) в СЭО 3КL.

Уникальное поле.
student_firstname nvarchar(200) Валидная utf8 строка, максимальная длина 100 символов. Поле «Имя» (firstname) в СЭО 3КL.
student_lastname nvarchar(200) Валидная utf8 строка, максимальная длина 100 символов. Поле «Фамилия» (lastname) в СЭО 3КL.
student_middlename nvarchar(200) NULL Валидная utf8 строка, максимальная длина 100 символов.

Поле «Отчество или второе имя» (middlename) в СЭО 3КL.
student_fullname ntext NULL Cтрока, размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «ФИО» (profile_field_student_fullname) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_dateofbirth bigint NULL Метка времени в формате timestamp.

Поле «Дата рождения» (profile_field_student_dateofbirth) в СЭО 3КL (кастомное поле типа datetime).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_gender ntext NULL Строка, размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Пол» (profile_field_student_gender) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_email nvarchar(200) Валидный email (в соответствии с RFC#822 http://www.faqs.org/rfcs/rfc822.html), максимальная длина 100 символов. Поле «Адрес электронной почты» (email) в СЭО 3КL.
PIN nvarchar(510) Строка, максимальная длина 255 символов.

Ключ-идентификатор в СПРУТ.

Поле «Индивидуальный номер» (idnumber) в СЭО 3КL.

Уникальное поле.
student_contract_num ntext NULL Строка, размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «№ договора» (profile_field_student_contract_num) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_contract_date bigint NULL Метка времени в формате timestamp.

Поле «Дата заключения договора» (profile_field_student_contract_date) в СЭО 3КL (кастомное поле типа datetime).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_numbook ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «№ зачетной книжки» (profile_field_student_numbook) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_phonecell nvarchar(40) NULL Строка, максимальная длина 20 символов. Поле «Мобильный телефон» (phone2) в СЭО 3КL.
student_numgroup ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Группа» (profile_field_Group) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_formob ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Форма обучения» (profile_field_edu) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_direc ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Направление» (profile_field_student_direc) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_prof ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Профиль» (profile_field_student_prof) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
semestr tinyint NULL Целое число от 0 до 255. Поле «Семестр» (profile_field_semestr) в СЭО 3КL.
status ntext NULL Строка размером не более 2^30 - 1 (1 073 741 823) байт.

Поле «Статус» (profile_field_status) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
dolg float NULL Число с плавающей запятой (точность не более 15 знаков).

Поле «Финансовая задолженность (руб.)» (profile_field_dolg) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
ak_dolg smallint NULL Целое число в диапазоне от -32 768 до 32 767

Поле «Академическая задолженность (дисц.)» (profile_field_ak_dolg) в СЭО 3КL (кастомное поле типа text).

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
student_sp ntext NULL  

Кастомное поле типа text.

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
comment ntext NULL    
customfield ntext NULL    
Табл. 2. Описание полей таблицы данных пользователей «student».

Описание сценария:

1) Из АСУ «Спрут» во внешнюю БД выгружаются данные полей пользователей (Табл. 3): добавляются новые записи (если значение ключа-идентификатора в таблице не найдено) и обновляются записи, данные в которых изменились.

PIN student_contract_num student_contract_date student_email student_fullname student_firstname student_lastname student_middlename student_dateofbirth student_gender student_phonecell customfield comment student_login student_numbook student_numgroup student_direc student_prof student_formob status dolg Semestr ak_dolg student_sp
3 11-96 1686787200 test1@test.ru Кузнецова Наталия Юрьевна Наталия Кузнецова Юрьевна 290131200 жен. 82221234560 10500, 52500   11-96 11-96 М-2 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 52500 6 5  
4 22-96 1686787200 test2@test.ru Бакатина Татьяна Александровна Татьяна Бакатина Александровна 277603200 жен. 82221234561 10500, 62000   22-96 22-96 Неизвестная 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 62000 6 3  
7 15-96/1 1686787200 test3@test.ru Тодосиева Татьяна Андреевна Татьяна Тодосиева Андреевна 303004800 жен. 82221234562 10500, 62000   15-96/1 15-96/1 М-2 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 62000 6 4  
9 17-96 1686787200 test4@test.ru Тришкина Ольга Ивановна Ольга Тришкина Ивановна 283996800 жен. 82221234563 1400, 7900   17-96 17-96 М-2 0611 Менеджмент организации Банковское дело Очная Студент 7900 6    
11 19-96 1686787200 test5@test.ru Трунова Владислава Игоревна Владислава Трунова Игоревна 232934400 жен. 82221234564 10500, 62000   19-96 19-96 М-2 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 62000 6 3  
12 20-96 1686787200 test6@test.ru Тулупов Александр Сергеевич Александр Тулупов Сергеевич 285465600 муж. 82221234565 10500, 62000   20-96 20-96 М-2 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 62000 6 3  
13 21-96 1686787200 test7@test.ru Чекменева Елена Вениаминовна Елена Чекменева Вениаминовна 1686787200 жен. 82221234566 10500, 62000   21-96 21-96 М-2 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 62000 6 2  
15 23-96 915148800 test8@test.ru Ахмеджанова Нелли Шамильевна Нелли Ахмеджанова Шамильевна 296092800 жен.   10500, 10500   23-96 23-96 Неизвестная 0605 Бухгалтерский учёт и аудит Банковское дело Очно-заочная Студент 10500 6 7  
Табл. 3. Пример таблицы данных пользователей во внешней БД.

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

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

4) В СЭО 3КL входит пользователь, у которого уже есть пара логин/пароль. В момент авторизации происходит обновление полей пользователя в СЭО 3КL, если его данные во внешней БД изменились.

Запрос на создание таблицы:

CREATE TABLE [dbo].[student] (
  [student_login] nvarchar(100) NOT NULL,
  [student_firstname] nvarchar(100) NOT NULL,
  [student_lastname] nvarchar(100) NOT NULL,
  [student_middlename] nvarchar(100) NULL,
  [student_fullname] ntext NULL,
  [student_dateofbirth] bigint NULL,
  [student_gender] ntext NULL,
  [student_email] nvarchar(100) NOT NULL,
  [PIN] nvarchar(255) NOT NULL,
  [student_contract_num] ntext NULL,
  [student_contract_date] bigint NULL,
  [student_numbook] ntext NULL,
  [student_phonecell] nvarchar(20) NULL,
  [student_numgroup] ntext NULL,
  [student_formob] ntext NULL,
  [student_direc] ntext NULL,
  [student_prof] ntext NULL,
  [semestr] tinyint NULL,
  [status] ntext NULL,
  [dolg] float NULL,
  [ak_dolg] smallint NULL,
  [student_sp] ntext NULL,
  [comment] ntext NULL,
  [customfield] ntext NULL
);
ALTER TABLE [dbo].[student] ADD PRIMARY KEY ([student_login]);
CREATE UNIQUE INDEX [student_PIN] ON [dbo].[student] ([PIN]);

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

2.1.2. Сценарий «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»

Назначение сценария:

Доступ учащихся из личного кабинета пользователя СЭО 3КL к документам, сформированным в АСУ «Спрут».

Тип контента и протокол передачи:

Файлы в формате pdf по протоколу WebDAV.

Условия запуска:

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

Генерируемые документы:

Название документа Пример внешнего вида
Учебная карточка
Зачетная книжка
Академическая задолженность
Электронный журнал
Контроль оплаты
Квитанция на оплату Форма ПД-4
Табл. 4. Транслируемые из СПРУТ в СЭО 3КL документы.

Описание сценария:

1) На стороне СПРУТ происходит генерация необходимых документов, сгенерированные документы помещаются в папку внешнего хранилища (в тематические подпапки «Оплата обучения» и «Ход и результаты обучения»), где название папки = индивидуальному номеру пользователя (idnumber) в СЭО 3KL (Рис. 2.1.2.а).

Рис. 2.1.2.а. Структура папок файлового хранилища. 

Если данные студента изменились, ранее сохраненные документы автоматически заменяются актуальными.

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

Рис. 2.1.2.б. Пример настроенных блоков «Внешние данные».

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

2.1.3. Сценарий «Передача оценок из СЭО 3КL в АСУ «Спрут»

Назначение сценария:

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

Требования к БД:

Тип внешней БД — MS SQL. Кодировка внешней базы данных Cyrillic_General_100 или Cyrillic_General.

Условия запуска:

Выгрузка данных по оценкам из СЭО 3КL во внешнюю БД выполняется:

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

Выгрузка данных из внешней БД в АСУ «Спрут» выполняется по расписанию.

Транслируемые поля:

Название поля в таблице буферной БД Тип Допустимое значение Пример Примечание
id int, автоинкрементное поле, primary key      
markCode float Число с плавающей запятой в диапазоне от 0 до 100. 75, 75.25, 75.00025

Выгружается оценка в процентах от 0 до 100, на стороне СПРУТ интерпретируется в соответствии со справочником СПРУТ.

Выгружаемое значение оценки зависит от настроек, выполненных в СЭО 3KL!
MarkDate datetime2 NULL Дата в формате YYYY-mm-dd H:i:s. 2022-03-05 00:00:00

Поле «Время получения оценки за курс» (finalgradetimestamp) в СЭО 3КL.

Поле «Дата выставления оценки» в АСУ «Спрут».

PIN int Целое число, диапазон от -2 147 483 648 до 2 147 483 647. 54784

Поле «Индивидуальный номер» (idnumber) в СЭО 3КL.

Поле профиля пользователя СЭО 3КL, которое соответствует идентификатору пользователя в системе СПРУТ (какое поле профиля выгружается в СПРУТ в качестве идентификатора пользователя).

Уникальное поле.
idKurs int Целое число, диапазон от -2 147 483 648 до 2 147 483 647. 10  

Поле «Идентификатор курса» (courseid) в СЭО 3КL.

В текущей версии  интеграции в СПРУТ не используется.

DateVig datetime2 NULL Дата в формате YYYY-mm-dd H:i:s. 2022-03-05 00:00:00

Поле «Дата выгрузки из СЭО 3КL» в АСУ «Спрут».

Метка времени, соответствующая моменту выгрузки данных. Генерируется на стороне СЭО 3КL непосредственно во время выгрузки оценки.

subjCode int Целое число больше нуля. Числовой идентификатор дисциплины согласно справочнику СПРУТа. 77

Поле «Код дисциплины» (course_mcov_pub_listsubject) в СЭО 3КL (настраиваемое поле курса).

Числовой идентификатор дисциплины согласно справочнику АСУ «Спрут».

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
markTypeCode int Целое число больше нуля. 4

Поле «Тип испытания» (course_mcov_pub_coursecontroltype) в СЭО 3КL (настраиваемое поле курса).

Тип испытания (цифровое обозначение (код) испытания (экзамен, зачет и т. п.)) согласно справочнику АСУ «Спрут».

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
Lesson int Целое число больше нуля. 45

Поле «Номер (порядковый номер зачета)» (course_mcov_pub_lesson) в СЭО 3КL (настраиваемое поле курса).

Поле «Порядковый номер испытания по дисциплине» в АСУ «Спрут».

Например, если во втором семестре проводится первый зачет по иностранному языку, то номер = 1. Если в третьем семестре второй зачет по иностранному языку, то его номер = 2. Если в четвёртом семестре не зачет, а экзамен, то номер = 1.

Имя поля в СЭО 3КL может быть иным (задаётся настройками).
Табл. 5. Описание полей для таблицы оценок «studentMark».

Описание сценария:

1) СЭО 3КL выгружает (по расписанию или по событию) во внешнюю БД значения оценок пользователей за курс и служебных полей, необходимых для корректной обработки на стороне СПРУТ этих оценок (Табл. 6). Идентификация записей во внешней базе данных выполняется по составному ключу вида «Идентификатор пользователя (поле PIN) + Идентификатор курса» (idKurs):

  • если составной ключ не найден - в базе данных создается новая запись;
  • если запись уже есть в таблице - обновляются значения изменившихся полей.
СЭО 3KL выгружает в буферную базу данных данные по всем оценкам и курсам, которые есть в СЭО 3KL. АСУ «Спрут» отбирает из этого списка только те оценки, которые соответствуют внесенному в АСУ «Спрут» учебному плану.
id subjCode markTypeCode markCode MarkDate PIN idKurs DateVig Lesson
4198 8 2 6 2023-07-05 00:00:00 5 81 2023-07-05 00:00:00 1
4313 8 2 6 2023-07-05 00:00:00 123 81 2023-07-05 00:00:00 1
4645 8 2 6 2023-07-05 00:00:00 22 81 2023-07-05 00:00:00 1
Табл. 6. Пример таблицы оценок во внешней БД.

2) АСУ «Спрут» с настроенной периодичностью загружает из буферной БД данные по оценкам.

3) В случае, если оценка удаляется из СЭО 3КL, оценка удаляется и из буферной БД. Решение необходимости сохранения или удаления данной оценки из своей базы данных АСУ «Спрут» принимает самостоятельно.

Запрос на создание таблицы:

CREATE TABLE [dbo].[studentMark] (
  [id] int NOT NULL IDENTITY PRIMARY KEY,
  [SubjCode] int NOT NULL,
  [MarkTypeCode] int NOT NULL,
  [MarkCode] nvarchar(100) NOT NULL,
  [MarkDate] datetime2 NULL,
  [PIN] int NOT NULL,
  [idKurs] int NOT NULL,
  [DateVig] datetime2 NULL,
  [Lesson] int NOT NULL
);
CREATE UNIQUE INDEX [studentMark_PIN_idKurs] ON [dbo].[studentMark] ([PIN], [idKurs]);

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

2.2. Версия 2 спецификации интеграции с АСУ «Спрут» (планируемая)

В данном разделе представлен проект планируемой доработки интеграции между СЭО 3КL и АСУ «Спрут».
Версия 2 исправляет основной недостаток версии 1 — необходимость заполнять дополнительные поля в каждом курсе. Для этого добавлены сценарии для передачи списка категорий курсов и курсов из СЭО 3KL в АСУ «Спрут». Благодаря этому появится возможность организовать выбор соответствия дисциплин и курсов прямо в пользовательском интерфейсе АСУ «Спрут». Когда в АСУ «Спрут» будет информация о соответствии курсов СЭО 3KL и дисциплин учебного плана, поля subjCodemark, TypeCode и Lesson в интеграционной таблице становятся избыточными и их не нужно будет вносить (и, впоследствии, заполнять) в дополнительные поля описания курса на стороне СЭО 3КL.
Помимо этого, версия 2 спецификации интеграции позволяет использовать функции «буквы» для более удобной и гибкой настройки приведения итоговых оценок за курс к шкалам «1-5» или «зачет/незачет»: предполагается автоматическая конвертация принятых обозначений «неуд/уд/хор/отл» или «зачет/незачет» на принятый в АСУ СПРУТ технический формат (числа от 1 до 7) с помощью функции автозамены*.
____________________________________
* — функция будет реализована в ближайших версиях СЭО 3KL.
2.2.1. Сценарий «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»

Соответствует аналогичному сценарию версии 1.

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

2.2.2. Сценарий «Передача pdf-документов из АСУ «Спрут» в СЭО 3КL»

Соответствует аналогичному сценарию версии 1.

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

2.2.3. Сценарий «Передача оценок из СЭО 3КL в АСУ «Спрут»

Назначение сценария:

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

Требования к БД:

Тип внешней БД — MS SQL. Кодировка внешней базы данных Cyrillic_General_100 или Cyrillic_General.

Условия запуска:

Выгрузка данных по оценкам из СЭО 3КL во внешнюю БД выполняется:

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

Выгрузка данных из внешней БД в АСУ СПРУТ выполняется по расписанию.

Транслируемые поля:

Название поля в таблице буферной БД Тип Допустимое значение Пример Примечание
id int, автоинкрементное поле, primary key      
markCode float Число с плавающей запятой в диапазоне от 0 до 100. 75, 75.25, 75.00025 Выгружается оценка в процентах от 0 до 100, на стороне СПРУТ интерпретируется в соответствии со справочником СПРУТ.
Выгружаемое значение оценки зависит от настроек, выполненных в СЭО 3KL!
MarkDate datetime2 NULL Дата в формате YYYY-mm-dd H:i:s. 2022-03-05 00:00:00

Поле «Время получения оценки за курс» (finalgradetimestamp) в СЭО 3КL.

Поле «Дата выставления оценки» в АСУ «Спрут».

PIN int Целое число, диапазон от -2 147 483 648 до 2 147 483 647 54784

Поле «Индивидуальный номер» (idnumber) в СЭО 3КL.

Поле профиля пользователя СЭО 3КL, которое соответствует идентификатору пользователя в системе СПРУТ (какое поле профиля выгружается в СПРУТ в качестве идентификатора пользователя).

Уникальное поле.
idKurs int Целое число, диапазон от -2 147 483 648 до 2 147 483 647. 10 Поле «Идентификатор курса» (courseid) в СЭО 3КL.
DateVig datetime2 NULL Дата в формате YYYY-mm-dd H:i:s. 2022-03-05 00:00:00

Поле «Дата выгрузки из СЭО 3КL» в АСУ «Спрут».

Метка времени, соответствующая моменту выгрузки данных. Генерируется на стороне СЭО 3КL непосредственно во время выгрузки оценки.

Табл. 7. Описание полей для таблицы оценок «studentMark».

Описание сценария:

1) СЭО 3КL выгружает (по расписанию или по событию) во внешнюю БД значения оценок пользователей за курс и служебных полей, необходимых для корректной обработки на стороне СПРУТ этих оценок (Табл. 6). Идентификация записей во внешней базе данных выполняется по составному ключу вида «Идентификатор пользователя (поле PIN) + Идентификатор курса» (idKurs):

  • если составной ключ не найден - в базе данных создается новая запись;
  • если запись уже есть в таблице - обновляются значения изменившихся полей.
СЭО 3KL выгружает в буферную базу данных данные по всем оценкам и курсам, которые есть в СЭО 3KL. АСУ «Спрут» отбирает из этого списка только те оценки, которые соответствуют внесеннуму в АСУ «Спрут» учебному плану.
id markCode MarkDate PIN idKurs DateVig
4198 6 2023-07-05 00:00:00 5 81 2023-07-05 00:00:00
4313 6 2023-07-05 00:00:00 123 81 2023-07-05 00:00:00
4645 6 2023-07-05 00:00:00 22 81 2023-07-05 00:00:00
Табл. 8. Пример таблицы оценок во внешней БД.

2) АСУ «Спрут» с настроенной периодичностью загружает из буферной БД данные по оценкам.

3) В случае, если оценка удаляется из СЭО 3КL, оценка удаляется и из буферной БД. Решение необходимости сохранения или удаления данной оценки из своей базы данных АСУ «Спрут» принимает самостоятельно.

Запрос на создание таблицы:

CREATE TABLE [dbo].[studentMark] (
  [id] int NOT NULL IDENTITY PRIMARY KEY,
  [PIN] int NOT NULL,
  [idKurs] int NOT NULL,
  [MarkCode] nvarchar(100) NOT NULL,
  [MarkDate] datetime2 NULL,
  [DateVig] datetime2 NULL
);
CREATE UNIQUE INDEX [studentMark_PIN_idKurs] ON [dbo].[studentMark] ([PIN], [idKurs]);

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

2.2.4. Сценарий «Передача данных по курсам из СЭО 3КL в АСУ «Спрут»

Назначение сценария:

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

Требования к БД:

Тип внешней БД — MS SQL. Кодировка внешней базы данных Cyrillic_General_100 или Cyrillic_General.

Условия запуска:

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

Выгрузка данных из внешней БД в АСУ «Спрут» выполняется по расписанию.

Транслируемые поля:

Название поля в таблице буферной БД Тип Допустимое значение Пример Примечание
id int, PRIMARY KEY    

Поле «Идентификатор курса СЭО 3KL» (id) в СЭО 3КL.

Ключ-идентификатор СЭО 3КL.
fullname nvarchar(508) Строка, максимальная длина 254 символа.   Поле «Полное название курса» (fullname) в СЭО 3КL.
shortname nvarchar(510) Строка, максимальная длина 255 символов.   Поле «Краткое название курса» (shortname) в СЭО 3КL.
idnumber nvarchar(200) Строка, максимальная длина 100 символов.  

Поле «Идентификационный номер курса» (idnumber) в СЭО 3КL.

Используется для сопоставления курса СЭО 3KL с записями в системах, являющихся внешними для СЭО 3KL и предназначено для хранения уникального кода таких записей.

category int     Поле «Идентификатор категории курса СЭО 3KL» (category) в СЭО 3КL.
sync_session_status nvarchar(100) Строка, максимальная длина 50 символов. in_progress, completed Статус последней сессии синхронизации. Генерируется непосредственно во время выгрузки данных.
sync_session_start_ts int Метка времени в формате timestamp.   Дата начала сессии последней синхронизации. Генерируется непосредственно во время выгрузки данных.
sync_item_finish_ts int Метка времени в формате timestamp.   Дата завершения последней синхронизации объекта. Генерируется непосредственно во время выгрузки данных.
sync_item_status nvarchar(100) Строка, максимальная длина 50 символов. actual, outdated Статус записи. Генерируется непосредственно во время выгрузки данных.
Табл. 9. Описание полей для таблицы данных курсов «3kl_courses».

Описание сценария:

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

  • если ключ не найден - в базе данных создается новая запись;
  • если запись уже есть в таблице - обновляются значения изменившихся полей.

2) АСУ «Спрут» с настроенной периодичностью загружает из буферной БД данные по курсам.

Запрос на создание таблицы:

CREATE TABLE [dbo].[3kl_courses] (
  [id] int NOT NULL PRIMARY KEY,
  [fullname] nvarchar(254) NOT NULL,
  [shortname] nvarchar(255) NOT NULL,
  [idnumber] nvarchar(100) NOT NULL,
  [category] int NOT NULL,
  [sync_session_status] nvarchar(50) NOT NULL,
  [sync_session_start_ts] int NOT NULL,
  [sync_item_finish_ts] int NOT NULL,
  [sync_item_status] nvarchar(50) NOT NULL
);
CREATE UNIQUE INDEX [3kl_courses_shortname] ON [dbo].[3kl_courses] ([shortname]);

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

2.2.5. Сценарий «Передача данных по категориям курсов из СЭО 3КL в АСУ «Спрут»

Назначение сценария:

Выгрузка данных по категориям курсов (идентификаторов категорий курсов, их названий и служебные полей) из СЭО 3КL в базу данных АСУ СПРУТ с использованием буферной БД (таблица данных по категориям курсов).

Требования к БД:

Тип внешней БД — MS SQL. Кодировка внешней базы данных Cyrillic_General_100 или Cyrillic_General.

Условия запуска:

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

Выгрузка данных из внешней БД в АСУ СПРУТ выполняется по расписанию.

Транслируемые поля:

Название поля в таблице буферной БД Тип Допустимое значение Пример Примечание
id int, PRIMARY KEY Целое число, диапазон от -2 147 483 648 до 2 147 483 647 3

Поле «Идентификатор категории курсов СЭО 3KL» (id) в СЭО 3КL.

Ключ-идентификатор СЭО 3КL.
name nvarchar(510) Строка, максимальная длина 255 символа. Информационные системы и технологии Поле «Название категории» (name) в СЭО 3КL.
idnumber nvarchar(200) Строка, максимальная длина 100 символов. 34

Поле «Идентификационный номер категории» (idnumber) в СЭО 3КL.

Используется для сопоставления категории курса СЭО 3KL с записями в системах, являющихся внешними для СЭО 3KL и предназначено для хранения уникального кода таких записей.

path nvarchar(510)  строка, максимальная длина 255 символов /5/6

Поле «Идентификатор категории курса СЭО 3KL» (path) в СЭО 3КL.

путь до категории в дереве категорий вида /parentid/categoryid

sync_session_status nvarchar(100) Строка, максимальная длина 50 символов. in_progress, completed Статус последней сессии синхронизации. Генерируется непосредственно во время выгрузки данных.
sync_session_start_ts int Метка времени в формате timestamp.   Дата начала сессии последней синхронизации. Генерируется непосредственно во время выгрузки данных.
sync_item_finish_ts int Метка времени в формате timestamp.   Дата завершения последней синхронизации объекта. Генерируется непосредственно во время выгрузки данных.
sync_item_status nvarchar(100) Строка, максимальная длина 50 символов. actual, outdated Статус записи. Генерируется непосредственно во время выгрузки данных.
Табл. 10. Описание полей для таблицы данных по категориям курсов «3kl_course_categories».

Описание сценария:

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

  • если ключ не найден - в базе данных создается новая запись;
  • если запись уже есть в таблице - обновляются значения изменившихся полей.

2) АСУ «Спрут» с настроенной периодичностью загружает из буферной БД данные по категориям курсам.

Запрос на создание таблицы:

CRE ATE TABLE [dbo].[3kl_course_categories] (
[id] int NOT NULL,
[name] nvarchar(255) NOT NULL,
[idnumber] nvarchar(100) NULL,
[path] nvarchar(255) NOT NULL,
[sync_session_status] nvarchar(50) NOT NULL,
[sync_session_start_ts] int NOT NULL,
[sync_item_finish_ts] int NOT NULL,
[sync_item_status] nvarchar(50) NOT NULL
);
ALT ER TABLE [dbo].[3kl_course_categories] ADD PRIMARY KEY ([id]);

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

3. Настройка интеграции СЭО 3КL с АСУ «Спрут» (версия 1)требуются права администратора

Действия в данной инструкции с пометкой требуются права администратора могут быть выполнены только при наличии доступа «Полный Администратор». Начиная с 2022 года для вновь заключаемых договоров такой набор прав предоставляется роли «Диспетчер-администратор» по умолчанию. Если ваш договор был заключен раньше, вы можете обратиться в техподдержку с соответствующей заявкой на расширение набора прав диспетчера-администратора.
Важно! Неосторожные действия полного администратора могут повредить систему и контент таким образом, что исправление последствий вмешательства выйдет за рамки гарантийной технической поддержки. Для безопасного изменения глобальных настроек мы рекомендуем выбрать набор требуемых опций по данной инструкции и обратиться в техническую поддержку с заявкой на конфигурирование системы.
Подробная информация в статье «Полный административный доступ».
Обратите внимание: из каждого курса может быть выгружена только одна оценка. Если итоговая оценка изменилась, то будет выгружена последняя оценка с последней датой простановки.
Подразумевается, что на момент настройки интеграции, буферная база данных и все необходимые таблицы уже созданы и соответствуют требованиям спецификации.

Реквизиты, необходимые для настройки интеграции (на стороне СЭО 3КL):

Подключение к внешней БД

  • Адрес сервера БД
  • Название БД
  • Имя пользователя БД
  • Пароль к БД
  • Название таблицы данных пользователей
  • Название таблицы оценок
Таблицы данных пользователей и оценок могут быть расположены в разных базах данных. В этом случае, потребуются реквизиты обеих БД.

Подключение к файловому хранилищу

  • Адрес файлового хранилища СПРУТ
  • Имя пользователя для подключения к файловому хранилищу СПРУТ
  • Пароль к файловому хранилищу СПРУТ

3.1. Настройка сценария «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»

Сценарий предусматривает хранение пароля пользователя на стороне СЭО 3КL. Для отработки сценария необходимо, чтобы в СЭО 3КL были включены и корректно настроены:
   • плагин аутентификации «Внешняя база данных» (auth_db);
   • планировщик cron;
   • задача «Задача синхронизации пользователей» (\auth_db\task\sync_users) Планировщика задач включена и настроена на регулярное выполнение.

1) На странице настроек плагина аутентификации «Внешняя база данных» (Администрирование->Плагины->Аутентификация->Внешняя база данных) установить следующие параметры (Рис. 3.1.1.):

Сервер баз данных = Адрес сервера БД
База данных = mssqlnative
Кавычки как в Sybase = Нет
Название базы данных = Название БД
Пользователь базы данных = Имя пользователя БД
Пароль = Пароль к БД
Таблица = Название таблицы данных пользователей
Поле логина = student_login
Формат пароля = Внутренний
Кодировка внешней базы данных = utf-8
При удалении пользователя во внешнем источнике = Сохранить внутреннюю учетную запись
Обновить пользователей = Нет

Рис. 3.1.1. Страница настроек плагина аутентификации «Внешняя база данных».

2) В разделе «Сопоставление данных» на странице настроек плагина аутентификации «Внешняя база данных» установить следующие соответствия полей (Табл. 11):

Поле Значение
Сопоставление данных (Имя) student_firstname
Обновление локальной учетной записи (Имя) При каждом входе
Обновление внешней учетной записи (Имя) Никогда
Блокировка значения (Имя) Заблокировано
Сопоставление данных (Фамилия) student_lastname
Обновление локальной учетной записи (Фамилия) При каждом входе
Обновление внешней учетной записи (Фамилия) Никогда
Блокировка значения (Фамилия) Заблокировано
Сопоставление данных (Адрес электронной почты) student_email
Обновление локальной учетной записи (Адрес электронной почты) При каждом входе
Обновление внешней учетной записи (Адрес электронной почты) Никогда
Блокировка значения (Адрес электронной почты) Заблокировано
Сопоставление данных (Индивидуальный номер) pin
Обновление локальной учетной записи (Индивидуальный номер) При каждом входе
Обновление внешней учетной записи (Индивидуальный номер) Никогда
Блокировка значения (Индивидуальный номер) Заблокировано
Сопоставление данных (Мобильный телефон) student_phonecell
Обновление локальной учетной записи (Мобильный телефон) При каждом входе
Обновление внешней учетной записи (Мобильный телефон) Никогда
Блокировка значения (Мобильный телефон) Заблокировано
Сопоставление данных (Отчество или второе имя) student_middlename
Обновление локальной учетной записи (Отчество или второе имя) При каждом входе
Обновление внешней учетной записи (Отчество или второе имя) Никогда
Блокировка значения (Отчество или второе имя) Заблокировано
Сопоставление данных (Группа) student_numgroup
Обновление локальной учетной записи (Группа) При каждом входе
Обновление внешней учетной записи (Группа) Никогда
Блокировка значения (Группа) Заблокировано
Сопоставление данных (Форма обучения) student_formob
Обновление локальной учетной записи (Форма обучения) При каждом входе
Обновление внешней учетной записи (Форма обучения) Никогда
Блокировка значения (Форма обучения) Заблокировано
Сопоставление данных (Финансовая задолженность (руб.)) dolg
Обновление локальной учетной записи (Финансовая задолженность (руб.)) При каждом входе
Обновление внешней учетной записи (Финансовая задолженность (руб.)) Никогда
Блокировка значения (Финансовая задолженность (руб.)) Заблокировано
Сопоставление данных (Академическая задолженность (дисц.)) ak_dolg
Обновление локальной учетной записи (Академическая задолженность (дисц.)) При каждом входе
Обновление внешней учетной записи (Академическая задолженность (дисц.)) Никогда
Блокировка значения (Академическая задолженность (дисц.)) Заблокировано
Сопоставление данных (ФИО) student_fullname
Обновление локальной учетной записи (ФИО) При каждом входе
Обновление внешней учетной записи (ФИО) Никогда
Блокировка значения (ФИО) Заблокировано
Сопоставление данных (Дата рождения) student_dateofbirth
Обновление локальной учетной записи (Дата рождения) При каждом входе
Обновление внешней учетной записи (Дата рождения) Никогда
Блокировка значения (Дата рождения) Заблокировано
Сопоставление данных (Пол) student_gender
Обновление локальной учетной записи (Пол) При каждом входе
Обновление внешней учетной записи (Пол) Никогда
Блокировка значения (Пол) Заблокировано
Сопоставление данных (Направление) student_direc
Обновление локальной учетной записи (Направление) При каждом входе
Обновление внешней учетной записи (Направление) Никогда
Блокировка значения (Направление) Заблокировано
Сопоставление данных (Профиль) student_prof
Обновление локальной учетной записи (Профиль) При каждом входе
Обновление внешней учетной записи (Профиль) Никогда
Блокировка значения (Профиль) Заблокировано
Сопоставление данных (Семестр) semestr
Обновление локальной учетной записи (Семестр) При каждом входе
Обновление внешней учетной записи (Семестр) Никогда
Блокировка значения (Семестр) Заблокировано
Сопоставление данных (Статус) status
Обновление локальной учетной записи (Статус) При каждом входе
Обновление внешней учетной записи (Статус) Никогда
Блокировка значения (Статус) Заблокировано
Сопоставление данных (№ договора) student_contract_num
Обновление локальной учетной записи (№ договора) При каждом входе
Обновление внешней учетной записи (№ договора) Никогда
Блокировка значения (№ договора) Заблокировано
Сопоставление данных ( Дата заключения договора) student_contract_date
Обновление локальной учетной записи ( Дата заключения договора) При каждом входе
Обновление внешней учетной записи ( Дата заключения договора) Никогда
Блокировка значения ( Дата заключения договора) Заблокировано
Сопоставление данных (№ зачетной книжки) student_numbook
Обновление локальной учетной записи (№ зачетной книжки) При каждом входе
Обновление внешней учетной записи (№ зачетной книжки) Никогда
Блокировка значения (№ зачетной книжки) Заблокировано
Табл. 11. Поля и значения для настройки выгрузки оценок в СПРУТ.

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

3) Убедиться, что в Планировщике задач (Администрирование->Сервер->Задачи->Планировщик задач) включено и настроено ежедневное выполнение задачи «Задача синхронизации пользователей» (\auth_db\task\sync_users) (Рис. 3.1.2, Рис. 3.1.3).

Рис. 3.1.2. Задача синхронизации пользователей по внешней базе данных в Планировщике задач.

Рис. 3.1.3. Пример настройки регулярной задачи «Задача синхронизации пользователей». Запуск задачи запланирован ежедневно, в 02:13.
Задача по выгрузке данных пользователей из внешней БД в СЭО 3КL будет выполняться, если в системе включен и корректно настроен планировщик cron.
Дополнительная информация о плагине аутентификации «Внешняя база данных» в статье «Аутентификация «Внешняя база данных». Синхронизация пользователей с внешней БД».

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

3.2. Настройка сценария «Передача pdf-документов из «Спрут» в СЭО 3КL»

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

1) На странице «Настройки по умолчанию для страницы «Личный кабинет» (Администрирование->Внешний вид->Настройки по умолчанию для страницы «Личный кабинет») добавить блок «Внешние данные» (Рис. 3.2.1).

Рис. 3.2.1. Добавление блока «Внешние данные».

2) На добавленном блоке нажать кнопку «Управление контентом». На открывшейся странице настроек в поле «Тип контента» выбрать «Файлы по протоколу WebDAV»и нажать «Применить».

3) В открывшемся разделе «Конфигурация» заполнить поля настроек (Рис. 3.2.2):

Базовый url сервера = https://webdav.yandex.ru
Имя пользователя для подключения = Имя пользователя для подключения к файловому хранилищу СПРУТ
Пароль для подключения = Пароль к файловому хранилищу СПРУТ
Путь до директории, содержимое которой требуется отобразить = /sprut/{user.idnumber}/Ход и результаты обучения
Mustache-шаблон :

{{#has_items}}
{{#items}}
 


{{/items}}
{{/has_items}}

{{^has_items}}
В вашей директории файлов не найдено

{{/has_items}}

Рис. 3.2.2. Страница настроек блока «Внешние данные» для типа контента «Файлы по протоколу WebDAV».

4) Повторить действия 1)-2) и создать еще один блок «Внешние данные».

5) В открывшемся разделе «Конфигурация» заполнить поля настроек:

Базовый url сервера = https://webdav.yandex.ru
Имя пользователя для подключения = Имя пользователя для подключения к файловому хранилищу СПРУТ
Пароль для подключения = Пароль к файловому хранилищу СПРУТ
Путь до директории, содержимое которой требуется отобразить = /sprut/{user.idnumber}/Оплата обучения/
Mustache-шаблон :

6) После сохранения настроек, добавленные блоки будут доступны в личном кабинете для всех пользователей СЭО 3КL (Рис. 3.2.3).

Рис. 3.2.3. Пример отображения настроенных для интеграции с АСУ СПРУТ блоков «Внешние данные» в выдвижной панели блоков личного кабинета пользователя.

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

3.3. Настройка сценария «Передача оценок из СЭО 3КL в АСУ «Спрут»

Для отработки сценария необходимо, чтобы в СЭО 3КL были: :
   • включены и корректно настроены планировщик cron и плагины «История обучения» (local_learninghistory), «Панель обработки прецедентов» (local_pprocessing), «Настраиваемые поля для объектов» (local_mcov);
   • созданы необходимые настраиваемые поля курсов и заполнены в соответствии со справочником СПРУТ;
   • задача «Ежедневная обработка прецедентов» (\local_pprocessing\task\daily) включена в Планировщике задач и настроена на регулярное исполнение.

Настройка сценария состоит из следующих этапов:

  • создание настраиваемых полей;
  • настройка подключения к буферной БД;
  • настройка Панели обработки прецедентов для выгрузки оценок;
  • включение выгрузки оценок по расписанию.

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

3.3.1. Создание настраиваемых полей
Для корректной обработки на стороне СПРУТ оценок, транслируемых из СЭО 3КL, в СЭО 3КL должны быть созданы и корректно заполнены (согласно справочника АСУ «Спрут») настраиваемые поля курса coursecontroltype, lesson и subjcode.

1) В поле «Курсы. Конфигурация настраиваемых полей» (Администрирование->Плагины->Локальные плагины->Настраиваемые поля->) необходимо вставить нижеприведенный yaml-код (Рис. 3.3.1.а):

class:
   coursecontroltype:
      type: text
      label: Тип испытания
   lesson:
      type: text
      label: Номер (номер семестра)
   subjcode:
      type: text
      label: Код дисциплины
   submit:
      type: submit
      label: Сохранить

Рис. 3.3.1.а. Поле «Курсы. Конфигурация настраиваемых полей» на странице настроек плагина «Настраиваемые поля для объектов».
Если при сохранении настроек возникает ошибка, то проверьте величину отступа в коде: количество пробелов должно быть равно 3
Подробнее о синтаксисе YAML здесь.

2) Перейти в курс и убедиться, что на странице «Курс «Название курса». Редактирование настраиваемых полей» (Управление курсом->«Курс «Название курса». Редактирование настраиваемых полей») появились добавленные поля (Рис. 3.3.1.б, Рис. 3.3.1.в).

Рис. 3.3.1.б. Переход к странице «Курс «Космонавтика (space)». Редактирование настраиваемых полей».

Рис. 3.3..1.в. Добавленные настраиваемые поля в курсе.
Дополнительная информация о настраиваемых полях в статье «Локальный плагин «Настраиваемые поля для объектов».

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

3.3.2. Настройка подключения к буферной БД

1) Перейти на страницу «Управление подключениями к внешним БД» (Администрирование->Управление подключениями к внешним БД) и создать новое подключение, используя реквизиты подключения к внешней БД (Рис.3.3.2.а).

Рис. 3.3.2.а. Пример создания нового подключения к внешней базе данных.

2) Нажав на ссылку «Проверить подключение», появившуюся в интерфейсе сохраненного подключения, протестировать корректность заданных настроек (Рис. 3.3.2.б).

Рис. 3.3.2.б. Проверка созданного подключения.

В случае, если подключение было настроено правильно, отобразится соответствующее сообщение об этом (Рис. 3.3.2.в).

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

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

3.3.3. Настройка Панели обработки прецедентов для выгрузки оценок

1) В разделе настроек «Выгрузка оценок во внешнюю базу данных» Панели обработки прецедентов (Администрирование->Плагины->Локальные плагины->Панель обработки прецедентов) определить следующие параметры (Рис. 3.3.3.а):

Опция «Включить экспорт оценок во внешнюю базу данных» - установлена
Соединение с базой данных = ваше настроенное подключение
Имя таблицы = название таблицы данных пользователей
Какие оценки выгружать? = За курсы
Формат оценки для экспорта = Значение
Формат времени выставления оценки = YYYY-MM-DD
Формат времени выгрузки оценок = YYYY-MM-DD.

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

2) После сохранения настроек, установленных на первом шаге, в разделе «Выгрузка оценок во внешнюю базу данных» становятся доступны поля для идентификации и сопоставления данных. Необходимо установить следующие соответствия (Табл. 12):

Поле Значение Примечание
Какие оценки выгружать? За курсы  
За какие модули выгружать оценки? За все модули  
Идентификатор пользователя Ваше поле профиля пользователя в СЭО 3КL, соответствующее идентификатору пользователя в системе СПРУТ  
Поле идентификатора пользователя PIN  
Идентификатор элемента курса Не связывать поле  
Поле идентификатора элемента курса SubjCode  
Идентификатор курса Идентификатор курса  
Поле идентификатора курса idKurs  
Сопоставление данных (Идентификатор курса) idKurs  
Сопоставление данных (Оценка за курс) MarkCode  
Сопоставление данных (Время получения оценки за курс) MarkDate  
Сопоставление данных (Идентификатор элемента курса) Не выгружать  
Сопоставление данных (поле профиля пользователя СЭО 3КL, которое соотвествует идентификатору пользователя в вашей АСУ «Спрут») PIN  
Сопоставление данных (Время экспорта оценки) DateVig  
Сопоставление данных (Код дисциплины) SubjCode  
Сопоставление данных (Тип испытания) MarkTypeCode  
Сопоставление данных (Номер (номер семестра)) Lesson  
Табл. 12. Поля и значения для настройки выгрузки оценок в СПРУТ.

Для остальных полей использовать значение «Не выгружать» или установленное по умолчанию ( Рис. 3.3.3.б).

Рис. 3.3.3.б. Пример настроек выгрузки оценок за курс. Поле профиля пользователя в СЭО 3КL, соответствующее идентификатору пользователя в системе СПРУТ = Индивидуальный номер.
Подробнее о сценариях, реализуемых при помощи плагина «Панель обработки прецедентов» в статье «Панель обработки прецедентов. Локальный плагин».

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

3.3.4. Включение выгрузки оценок по расписанию

В разделе настроек «Выгрузка существующих оценок во внешнюю базу данных по расписанию» Панели обработки прецедентов (Администрирование->Плагины->Локальные плагины->Панель обработки прецедентов) установить опцию «Включить выгрузку существующих оценок по расписанию» (Рис. 3.3.4.а).

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

Выгрузка оценок в СПРУТ будет выполняться по задаче «Ежедневная обработка прецедентов» (\local_pprocessing\task\daily\local_pprocessing\task\daily) планировщика задач (Администрирование->Сервер->Задачи->Планировщик задач) (Рис. 3.3.4.б).

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

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

Рис. 3.3.4.в. Страница настроек задачи «Ежедневная обработка прецедентов».
Задача по выгрузке оценок в СПРУТ будет выполняться, если в системе включен и корректно настроен планировщик cron.

 

+в таблицу оценок для в2 добавить еще два поля: оценка в формате оценка (здесь: в данной версии синхронизация не используется, поле добавлено на перспективу), оценка в формате шкала ( здесь: такие-то рекомендованные значения).

+сценарий с подписками, чтобы можно было управлять подписками на курсы СЭО 3КL через плагин «Подписка по внешней БД»

 

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

4. Настройка интеграции СЭО 3КL с АСУ «Спрут» (версия 2)требуются права администратора

Важно! Действия в данной инструкции с меткой требуются права администратора можно выполнить только при наличии доступа «Полный Администратор». По умолчанию мы предоставляем доступ «Диспетчер-Администратор». Для изменения глобальных конфигураций мы рекомендуем выбрать набор требуемых опций по данной инструкции и обратиться в техническую поддержку с заявкой на конфигурирование системы. Подробнее в статье «Полный административный доступ».
Обратите внимание: из каждого курса может быть выгружена только одна оценка. Если итоговая оценка изменилась, то будет выгружена последняя оценка с последней датой простановки.
Подразумевается, что на момент настройки интеграции, буферная база данных и все необходимые таблицы в ней уже созданы и соответствуют требованиям спецификации.

Реквизиты, необходимые для настройки интеграции (на стороне СЭО 3КL):

Подключение к внешней БД

  • Адрес сервера БД
  • Название БД
  • Имя пользователя БД
  • Пароль к БД
  • Название таблицы данных пользователей
  • Название таблицы оценок
Таблицы данных пользователей и оценок могут быть расположены в разных базах данных. В этом случае, потребуются реквизиты обеих БД.

Подключение к файловому хранилищу

  • Адрес файлового хранилища СПРУТ
  • Имя пользователя для подключения к файловому хранилищу СПРУТ
  • Пароль к файловому хранилищу СПРУТ

4.1. Настройка сценария «Передача пользовательских данных из АСУ «Спрут» в СЭО 3КL»

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

4.2. Настройка сценария «Передача pdf-документов из «Спрут» в СЭО 3КL»

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

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

4.3. Настройка сценария «Передача оценок из СЭО 3КL в АСУ «Спрут»

Для отработки сценария необходимо, чтобы в СЭО 3КL были: :
   • включены и корректно настроены планировщик cron и плагины «История обучения» (local_learninghistory), «Панель обработки прецедентов» (local_pprocessing), «Настраиваемые поля для объектов» (local_mcov);
   • созданы необходимые настраиваемые поля курсов и заполнены в соответствии со справочником СПРУТ;
   • задача «Ежедневная обработка прецедентов» (\local_pprocessing\task\daily) включена в Планировщике задач и настроена на регулярное исполнение.

Настройка сценария состоит из следующих этапов:

  • создание настраиваемых полей;
  • настройка подключения к буферной БД;
  • настройка Панели обработки прецедентов для выгрузки оценок;
  • настройка Панели обработки прецедентов для выгрузки данных по курсам;
  • настройка Панели обработки прецедентов для выгрузки данных по категориям курсов;
  • включение выгрузки оценок по расписанию.

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

4.3.1. Создание настраиваемых полей
Дополнительная информация о настраиваемых полях в статье «Локальный плагин «Настраиваемые поля для объектов».

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

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

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

4.3.3. Настройка Панели обработки прецедентов для выгрузки оценок
Подробнее о сценариях, реализуемых при помощи плагина «Панель обработки прецедентов» в статье «Панель обработки прецедентов. Локальный плагин».

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

4.3.4. Настройка Панели обработки прецедентов для выгрузки данных по курсам
Подробнее о сценариях, реализуемых при помощи плагина «Панель обработки прецедентов» в статье «Панель обработки прецедентов. Локальный плагин».

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

4.3.5. Настройка Панели обработки прецедентов для выгрузки данных по категориям курсов
Подробнее о сценариях, реализуемых при помощи плагина «Панель обработки прецедентов» в статье «Панель обработки прецедентов. Локальный плагин».

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

4.3.6. Включение выгрузки оценок по расписанию
Задача по выгрузке оценок в СПРУТ будет выполняться, если в системе включен и корректно настроен планировщик cron.

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

5. Примеры и решения

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

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

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