Paquetage SCORM

Paquetage SCORM

par AGOSTA Dominique,
Nombre de réponses : 9

Bonjour

Je rencontre un problème d'installation d'un paquetage scorm. Je ne comprends pas ce qu'il se passe. 

Ce paquetage n'est pas corrompu. J'ai pu l'installer sur une version Moodle plus ancienne. Notre version actuelle est la 3.11.

Le debug m'affiche :

Info de débogage  Data truncated for column 'navpositionleft' at row 1
INSERT INTO mdl_scorm (name,scormtype,updatefreq,popup,width,height,displayactivityname,skipview,hidebrowse,displaycoursestructure,hidetoc,nav,navpositionleft,navpositiontop,displayattemptstatus,timeopen,timeclose,grademethod,maxgrade,maxattempt,whatgrade,forcenewattempt,lastattemptlock,forcecompleted,auto,autocommit,masteryoverride,launch,completionscorerequired,course,completionstatusrequired,intro,introformat,completionstatusallscos,options) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
-- line 1403 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
-- line 128 of /mod/scorm/lib.php: call to mysqli_native_moodle_database->insert_record()
-- line 128 of /course/modlib.php: call to scorm_add_instance()
-- line 168 of /course/modedit.php: call to add_moduleinfo()
[array (
0 => 'sdfdsf',
1 => 'local',
2 => '0',
3 => '1',
4 => 100,
5 => 500,
6 => '0',
7 => '1',
8 => '1',
9 => '0',
10 => '3',
11 => '1',
12 => '-100, Avancé',
13 => '-100, Avancé',
14 => '1',
15 => 0,
16 => 0,
17 => '1',
18 => '100',
19 => '0',
20 => '0',
21 => '0',
22 => '1',
23 => '0',
24 => '0',
25 => '1',
26 => '1',
27 => 0,
28 => NULL,
29 => '25',
30 => NULL,
31 => '',
32 => '1',
33 => 0,
34 => 'scrollbars=0,directories=0,location=0,menubar=0,toolbar=0,status=0',
)]
Error code: dmlwriteexception

Trace de la pile 

  • line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
  • line 1357 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
  • line 1403 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
  • line 128 of /mod/scorm/lib.php: call to mysqli_native_moodle_database->insert_record()
  • line 128 of /course/modlib.php: call to scorm_add_instance()
  • line 168 of /course/modedit.php: call to add_moduleinfo()
Merci de votre aide.
Dominique

Moyenne des évaluations  -
En réponse à AGOSTA Dominique

Re: Paquetage SCORM

par didier cadiou,
Bonjour Dominique.

Les infos de déboguage indique que la valeur qui devait être insérée en base dans la table 'mdl_scorm', dans le champs 'navpositionleft', était trop longue pour le 1er enregistrement (celui qui est dans l'array), donc moodle a été obligé de la tronquer (supprimer la fin du texte).

Ce champs, à en croire la clause INSERT, devrait recevoir la valeur de l'élément à l'index 12 de l'array, soit '-100, Avancé'. Cette valeur n'est probablement pas la valeur trop longue, mais la valeur une fois le "tronquage" effectué.

Chez moi, tous les enregistrements dans la table mdl_scorm contiennent la valeur '-100' dans les 2 champs navposleft et right. Ces 2 champs en base sont de type bigint. Dans mysql bigint correspond à un entier codé sur 8 octets. Dans votre cas, il semble que la valeur contienne du texte ('avancé....'), donc à raison de minimum 1 octet par caractère, on dépasse vite les 8 octets. Je pense que c'est ce qui génère l'erreur. Le paquetage scorm que vous essayer d'ajouter à l'air corrompu ou peut-être que quelque chose fait que les valeurs sont mal délimitées entre elles. Peut-être que le 'avancé...' est une valeur qui n'est pas destinée à ce champs mais au champs 'intro' par exemple (l'élément 31 de l'array pour intro = '' ce qui est un peu étonnant).

Pour finir, quand je compare la liste des champs dans vos infos de déboguage avec la liste des champs que j'ai actuellement sur ma plateforme de production (moodle 3.11.4+), plusieurs champs ne sont pas renseigner par l'instruction : id, reference, version, sha1hash, md5hash, revision, timemodified. Ils vont donc avoir leur valeur par défaut. C'est étonnant pour le champs timemodified en particulier.

Bon courage
En réponse à didier cadiou

Re: Paquetage SCORM

par AGOSTA Dominique,
Merci pour cette réponse très détaillée. Je suis donc allé voir la BDD mdl_scorm de plus prés.

Tout d'abord, il s'avère que j'utilise 2 Moodle installés sur le même serveur : une version Moodle 3.6.4+ sur laquelle le fichier scorm a pu être installé sans problème et une version 3.11.5+ (Build: 20220208) sur laquelle l'installation de ce même fichier scorm pose problème. De même, j'ai pu installer sans problème ce fichier scorm sur un Moodle en ligne.

Ensuite j'ai comparé les tables mdl_scorm de chacune des versions Moodle (3.6 et 3.11) : leurs structures sont rigoureusement identiques.

En conséquence, je me dis que le problème n'est pas forcément dans la BDD MySQL. J'en doute mais est-ce que le thème peut causer ce type de problème ?

Là ce n'est pas le courage qui me manque mais des idées !
En réponse à AGOSTA Dominique

Re: Paquetage SCORM

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour Dominique,
A-t-on une possibilité de tester votre scorm, s'il n'est pas trop lourd?
Je suis aussi en 3.11.5 (ainsi que tous mes clients).
Daniel
En réponse à AGOSTA Dominique

Re: Paquetage SCORM

par didier cadiou,
Je ne pense pas non plus que le problème soit en base. Pour tout dire, je soupçonnais plutôt le paquetage scorm. En revanche, il est troublant que le paquetage en question puisse quand même être installé sur certains moodle et pas sur d'autres.
Ce qui est un fait sur lequel la réflexion peut s'appuyer, c'est que votre Moodle ne parvient pas à écrire dans la base, les données relatives à ce scorm.

Est-ce que cela peut-être lié au thème ? Je n'en sais rien. Spontanément ce n'est pas la première chose auquel je penserais, mais j'ai peut-être tord.

Je ne connais pas assez les scorms pour vous dire s'il existe un moyen et/ou des outils pour regarder la constitution interne d'un scorm et y repérer d'éventuels anomalies qui peuvent dégrader sa compatibilité avec certains Moodle. Peut-être que d'autres auront des billes là dessus.

J'ai compris que vous aviez ce problème qu'avec ce scorm là. Est-ce juste ? En avez-vous essayé d'autres sur la plateforme où vous avez eu l'erreur ?

Si le problème se produit avec plusieurs scorms, ce ne sont peut-être pas les scorms eux-même qui sont le problème, mais la manière de les faire. Peut-être que l'outil utilisé ne respecte pas suffisamment le standard ou je ne sais quoi. Mais encore une fois, je ne suis pas un expert scorm.
En réponse à didier cadiou

Re: Paquetage SCORM

par AGOSTA Dominique,
Didier bonjour
Oui j'ai d'autres Scorm sur ce Moodle que j'avais moi-même conçus et qui fonctionnent parfaitement.
Et vous avez sans doute raison : le scorm qui pose problème a été fait par un enseignant depuis le logiciel OPALE (ver 3.9).
J'attends la réponse de Daniel et je demanderai à l'enseignant de tester avec une autre version d'Opale.
Je sens qu'on est en train d'encercler de plus en plus serré le coupable !
Merci pour l'aide
En réponse à AGOSTA Dominique

Re: Paquetage SCORM

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour Dominique,
Je n'ai pas tout visionné mais votre paquetage fonctionne parfaitement chez moi sur Moodle version 3.11.5 (Build: 20220117)
Je suppose qu'il n'est pas nécessaire de tout parcourir ni tester pour s'assurer de son bon fonctionnement ?
il y a un espace dans la désignation du paquetage, j'espère que cela ne produit pas de bug sur votre Moodle ? En tout cas pas chez moi...
Merci d'utiliser les excellents produits libres SCENARI !
scorm
Daniel
En réponse à Daniel Méthot

Re: Paquetage SCORM

par AGOSTA Dominique,
Bonjour Daniel

Je pense avoir trouvé la caude du pb. Je suis allé voir les réglages du plugin Paquetage SCORM et en particulier les balises navpositionleft et navpositiontop qui posent problème. Voici les réglages qui étaient enregistrés :


J'ai modifié ces réglages ainsi en supprimant "Avancé" :



Après cela, plus aucun problème : le Scorm s'est bien enregistré et fonctionne.
Je ne sais pas à quoi sert le texte "Avancé" dans le champ puisque la case à cocher "Avancé" à droite du champ  est cochée... Si quelqu'un a l'explication, je suis preneur.

En tout cas, Daniel et Didier encore merci pour votre aide et bon we !

En réponse à AGOSTA Dominique

Re: Paquetage SCORM

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Bonjour,
Je l'avais testé avec les paramètres par défaut.
Donc moins de risques d'erreur en effet.
Daniel