Блог СЛМ
Articulate

Передача оценки из Articulate Storyline в СДО SAP

Редактор курсов Articulate Storyline, в частности версии 3, не имеет в своей обойме команд/триггеров по отправке статуса или оценки курса в СДО. Успешно завершить курс можно лишь, просмотрев определенное количество слайдов, или по результатам тестов, взяв данные из результирующего слайда.

Как же быть, когда возникают задачи отправки нужного количества баллов после некоторых действий пользователя, необязательно связанных со встроенными "квизами"? Если говорить о статусе, то решение появилось, правда, не в версии 3, а в Storyline 360. Наконец-то в группе Project  добавился конкретный триггер успешности - Complete course.


Он имеет несколько сочетаний состояний из вариантов:
  • Завершен (Completed),
  • Незавершен (Incomplete),
  • Успешен (Passed),
  • Неуспешен (Failed).


А чтобы LMS взяла статус именно из такого триггера, нужно при публикации курса поставить галочку в разделе Tracking и выбрать подходящий для вашей СДО отчет статуса.


Вот только в Storyline 3 нет даже такого триггера, а триггера отправки баллов нет и в 360. На помощь в таком случае приходит волшебная палочка в виде триггера "Execute JavaScript"

В интернете можно найти немало примеров отправки оценок и статусов. Подобный код я приводил и в посте "Articulate Storyline и JavaScript - отслеживание полного просмотра видеоролика в курсе"

var player = GetPlayer();
var currentscore = player.GetVar("visco"); //получаем значение переменной Articulate
lmsAPI.SetScore(currentscore,100,0); //передаем оценку в СДО 
lmsAPI.SetReachedEnd(); //устанавливаем в СДО статус завершения
lmsAPI.SetPassed(); //устанавливаем в СДО статус успешности 

Если забить такой код в триггер "Execute JavaScript" и поставить в Tracking галочку напротив обязательного просмотра слайдов, то получим искомый результат.


Проверить работоспособность этого примера можно в CLOUD.SCORM, как это сделать - я подробно описывал в статье: "5 причин использования SCORM Cloud при разработке курсов".


Вот только бывают случаи, когда код в таком виде "не доносит" статус и оценку до СДО. Речь идёт о решении организации дистанционного обучения на системах SAP. С таким вариантом столкнулся я сам, найдя решение, делюсь им с вами. Рабочий код JavaScript любезно предложил Олег Буйлов - elearning-разработчик, известный поиском решений для нетривиальных задач. С его уточнениями вышеупомянутый код принимает вид:

var player = GetPlayer();
var currentscore = player.GetVar("visco");
currentscore = parseInt(scoreTotal);
function findLMSAPI(win) {
if (win.hasOwnProperty("GetStudentID")) return win;
else if (win.parent == win) return null;
else return findLMSAPI(win.parent);
}
var lmsAPI = findLMSAPI(this);
SCORM2004_SetScore(currentscore, 100, 0);
lmsAPI.SetScore(currentscore, 100, 0); //передаем оценку в СДО
SCORM2004_CallSetValue("cmi.completion_status", "completed");
SCORM2004_CallSetValue("cmi.success_status", "passed");
SetStatus("passed"); //устанавливаем в СДО статус успешности 

Результат получен при публикации курса в SCORM "2004 ed.4" и LMS reporting "Passed/Incomplete".