Anomalie #731
closedGalette v0.7.6. Dysfonctionnement de la génération de la valeur de login_adh lors d'un import csv.
100%
Description
L'import d'un fichier csv, dûment contrôlé avec l'option "Galop d'essai", se bloque et déclenche l'erreur suivante :
::1 - 2013-10-21 10:53:36 - 3 - Something went wrong :'( | SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'e1m5jypsgm5r8mq' for key 'login_adh'
#0 D:\xampp\htdocs\galette07dev\includes\Zend-1.12.3\Zend\Db\Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#1 D:\xampp\htdocs\galette07dev\includes\Zend-1.12.3\Zend\Db\Adapter\Abstract.php(480): Zend_Db_Statement->execute(Array)
#2 D:\xampp\htdocs\galette07dev\includes\Zend-1.12.3\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ga...', Array)
#3 D:\xampp\htdocs\galette07dev\includes\Zend-1.12.3\Zend\Db\Adapter\Abstract.php(576): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ga...', Array)
#4 D:\xampp\htdocs\galette07dev\lib\Galette\Entity\Adherent.php(1154): Zend_Db_Adapter_Abstract->insert('galette_adheren...', Array)
#5 D:\xampp\htdocs\galette07dev\lib\Galette\IO\CsvIn.php(336): Galette\Entity\Adherent->store()
#6 D:\xampp\htdocs\galette07dev\lib\Galette\IO\CsvIn.php(191): Galette\IO\CsvIn->_storeMembers('galette_import_...')
#7 D:\xampp\htdocs\galette07dev\import.php(107): Galette\IO\CsvIn->import('galette_import_...', Array, false)
#8 {main}
::1 - 2013-10-21 10:53:36 - 3 - [Galette\IO\CsvIn] Une erreur est survenue lors de l'enregistrement de l'adhérent ligne 17 (XXXX Louis) :
Le phénomène a été reproduit trois fois avec le même fichier d'import de 182 enregistrements et se déclenche de façon aléatoire. Dans le cas précité, la valeur "e1m5jypsgm5r8mq" avait été en effet attribuée automatiquement au champ login_adh de l'enregistrement précédent.
En attendant la mise en place d'un correctif, il existe une solution de dépannage qui consiste à ajouter la colonne login_adh dans le fichier modèle galette_import_model.csv ; si cette colonne porte la lettre L dans le fichier Excel, case L2, insérer la valeur suivante :
=CAR(ALEA()*26+65)&CAR(ALEA()*26+65)&CAR(ALEA()*26+65)&CAR(ALEA()*10+48)&CAR(ALEA()*10+48)&CAR(ALEA()*26+97)&CAR(ALEA()*26+97)&CAR(ALEA()*26+97)
puis valider. Il suffit alors de "tirer" cette formule vers le bas pour générer des valeurs aléatoires qui pourront être importées sans difficultés.
A noter que la génération de mots de passe via AdminTools fonctionne parfaitement.
Updated by Johan Cwiklinski about 11 years ago
C'est la fonction de génération de « mots de passe » aléatoires qui semble être en cause, en ne renvoyant pas des choses si aléatoires que ça... Je ne comprend pas trop pourquoi en revanche :/
Updated by Roland Telle about 11 years ago
Johan Cwiklinski a écrit :
C'est la fonction de génération de « mots de passe » aléatoires qui semble être en cause, en ne renvoyant pas des choses si aléatoires que ça... Je ne comprend pas trop pourquoi en revanche :/
Le correctif apporté dans Galette v0.7.7dev est parfaitement efficace. Merci.
Updated by Johan Cwiklinski about 11 years ago
- Category set to Core
- Assignee set to Johan Cwiklinski
- % Done changed from 0 to 100
- Status changed from Nouveau to Résolu
Updated by Johan Cwiklinski about 11 years ago
- Status changed from Résolu to Fermé