Publicado: Vie Abr 17, 2009 2:21 pmAsunto: Moodle y SCORM 2004
Hola, tengo un problema con un curso scorm 2004 en moodle. A la hora de enviar la nota a la plataforma, primero compruebo si anteriormente se había realizado el test. Si es así, comparo la nota obtenida en primer lugar con la nota obtenida en el intento actual, y sólo la registro si el alumno ha mejorado su puntuación.
Esto, en un servidor ILIAS de pruebas, me funciona como la seda. Pero al ponerlo en Moodle, las llamadas a getValue me devuelven siempre valores vacíos.
Activando el modo debug de moodle veo
GetErrorString("403", "Data Model Element Value Not Initialized") => 0
como respuesta a los getValue. Sin embargo los valores SI estan inicializados, en las estadísticas de moodle se registra bien por ejemplo el score.raw pero si lo intento recuperar, me da vacío.
este es el código que estoy usando para enviar la nota:
Código:
var punt = SCOGetValue("cmi.score.raw");
var stat = SCOGetValue("cmi.completion_status");
Registrado: Aug 07, 2003 Mensajes: 154 Ubicación: Rosario - Argentina
Publicado: Vie Abr 17, 2009 9:44 pmAsunto:
Hola, devuelve 403 cuando los valores no han sido inicializados nunca desde el SCO. En los dos GetValue iniciales de puntuación y estado quizás alguno no está iniciado. En SCOGetValue el valor (sin activar el modo debug) debe quedarte undefined, y cuando pides el errorstring recibes 403.
No sé en qué versión de moodle estás probando, con la 1.9.4 pasa más o menos lo mismo, pero luego de haberse seteado el valor ya no devuelve 403 sino el valor correspondiente.
Confunde un poco en el código que primero hagas SCOSetValue y luego g_objAPI.SetValue... es lo mismo?
Hola Nacho, gracias por responder. La versión de Moodle es la 1.9.4
Si, SCOSetValue y g_objAPI.SetValue es mas o menos lo mismo, solo que scosetvalue comprueba que el api se haya inicializado correctamente antes de intentar setear el valor.
El caso es que los valores que intento recuperar, si deberían estar inicializados. El alumno entra, hace un primer intento y saca digamos un 4. Cierro sesión y entro como administrador a ver las estadisticas, y efectivamente veo la nota almacenada en moodle. Vuelvo a entrar como alumno, repito el test y saco un 6. Antes de enviar el 6, compruebo la nota anterior: var punt = SCOGetValue("cmi.score.raw"); en este momento moodle debería retornarme 4, pero no... me da undefined
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro