PnX-SI / gn_module_import

Module GeoNature d'import de données
7 stars 11 forks source link

Erreur de référentiels #159

Closed pnrfo closed 3 years ago

pnrfo commented 4 years ago

Après plusieurs essais d'import d'un jeux de données au format SINP :

Erreur de référentiel observateuridentite id_digitizer n'existe pas dans la table "t_roles"

Je viens de vérifier et l'auteur de la saisie sur mon jeux de données fait partie des utilisateurs de la base dans "t_roles"...

camillemonchicourt commented 4 years ago

Quelle version du module ? Et de GeoNature ?

pnrfo commented 4 years ago

Salut Camille,

Quelle version du module ? Et de GeoNature ?

On a installé le module en RC sur Geonature 2.4.1

camillemonchicourt commented 4 years ago

OK, à quel moment apparait ce message ? Et si tu peux nous partager le fichier, ou un extrait ?

pnrfo commented 4 years ago

Les étapes de l'import du jeux de donnée dans le module d'import : 2- Correspondance des champs : 39 champs automatiquement associés - 15 à associer (jusque là OK) 3- Correspondance des nomenclature > Nomenclatures SINP (labels) : 52 champs automatiques associés - 0 restant 4- Import des données : internal server error => les captures d'écran et le fichiers

DonovanMaillard commented 4 years ago

Bonjour,

Merci pour ces fichiers! Quel est l'id_role de l'utilisateur quentin mazet?

pnrfo commented 4 years ago

Salut ! Mon profil est dans le Grp_admin de UsersHub Application "UsersHub" : Administrateur (code 6) Application "TaxHub" : Administrateur (code 6) Application "GeoNature" : Administrateur (code 6)

DonovanMaillard commented 4 years ago

D'accord, merci pour ces précisions.

Dans la table utilisateurs.t_roles, quel est l'id_role de Quentin Mazet ? c'est surprenant que cet id ne soit pas un integer valide d'après le module...

camillemonchicourt commented 4 years ago

Autre point qui m'étonne :

Application "GeoNature" : Administrateur (code 6)

Normalement on ne peut appliquer que le profil "Lecteur" à l'application GeoNature.

pnrfo commented 4 years ago

Dans la table utilisateurs.t_roles, quel est l'id_role de Quentin Mazet ? c'est surprenant que cet id ne soit pas un integer valide d'après le module...

Un copie de la table : "groupe" => false, "id_role" => 10, "uuid_role" => "922f4755-1a5b-4b2e-957b-f492688a95fc", "identifiant" => "sig", "nom_role" => "MAZET", "prenom_role" => "Quentin", "desc_role" => "", "pass" => null, "pass_plus" => "$2b$12$c5whBfMqfSGKHLjQ6elgs.yPPu3YjI3xCjCKdrdISksXLRDA1Nv6i", "email" => "sig@pnrfo.org", "id_organisme" => 2, "remarques" => "", "active" => true, "champs_addi" => null, "date_insert" => "2020-08-20T06:24:24.577Z", "date_update" => "2020-08-20T06:24:24.577Z"

DonovanMaillard commented 4 years ago

Merci pour ces infos... Du coup, j'ai un peu du mal à trouver un soucis évident comme ça.

D'après ce que je vois dans le code en cherchant son nom, le champ "observateurIdentite" semble essentiellement utilisée pour le depobio ( gn_module_import/data/depobio_mapping_data.sql ) et ne devrait donc pas être généré dans votre installation classique. Avez vous utilisé ce script lors de l'installation par exemple, ce qui aurait pu générer des champs qui ne devraient pas être là ?

A moins qu'il ne s'agisse du champs observateur, mais dans ce cas il n'attend pas un id, mais bien une info textuelle... ce qui ne devrait donc pas vous retourner d'erreurs.

Là visiblement, le module tente d'importer des noms (probablement en texte) vers un champs integer donc ni le format ni le contenu ne collent à ce qui est attendu : il ne s'agit ni d'un integer ni d'une info présente dans le référentiel utilisateurs...

Si vous voulez qu'on échange de vive voix pour connaitre votre mapping, les logs, votre installation etc, n'hésitez pas à me joindre, mes numéros sont en entête du site du pôle invertébrés https://www.pole-invertebres.fr

camillemonchicourt commented 4 years ago

Je viens de regarder, c'est dans le fichier source qu'il tente d'intégrer qu'il y a le champs "observateuridentite". Et le message semble indiquer que vous tenter d'insérer le contenu de ce champs (des noms d'observateurs en texte) dans un champs qui attend des entiers...

Vous avez faire correspondre ce champs "observateuridentite" du fichier source, vers quel champs de destination de la synthèse ? Eventuellement, par votre mapping des champs que l'on y voit plus clair ?

Pour l'autre soucis du id_role, je ne vois pas d'où ça peut venir et si c'est le même soucis, ou complètement autre chose...

DonovanMaillard commented 4 years ago

C'est le même champs qui est concerné, et je pense que les deux sont liés... comme on ne lui transmet pas un integer valide, forcement l'info qu'il reçoit n'est pas dans le référentiel.... merci pour ton coup d'oeil je cherchais dans les champs cible et pas dans les champs source...

pnrfo commented 4 years ago

Merci pour votre aide ! C'est George MOON qui a procédé à l'installation. On a installé Geonature 2 avec le module d'import en RC #150

Vous avez faire correspondre ce champs "observateuridentite" du fichier source, vers quel champs de destination de la synthèse ? Eventuellement, par votre mapping des champs que l'on y voit plus clair ?

"id_match_fields" => 177, "id_mapping" => 10, "source_field" => "observateuridentite", "target_field" => "id_digitiser", "is_selected" => true, "is_added" => false

"id_match_fields" => 203, "id_mapping" => 10, "source_field" => "observateuridentite", "target_field" => "determiner", "is_selected" => true, "is_added" => false

"id_match_fields" => 213, "id_mapping" => 10, "source_field" => "observateuridentite", "target_field" => "validator", "is_selected" => true, "is_added" => false

"id_match_fields" => 217, "id_mapping" => 10, "source_field" => "observateuridentite", "target_field" => "observers", "is_selected" => true, "is_added" => false

Les champs "determiner", "validator" et "observers" sont en "character varying(1000)" et le le champ 'id_digitizer" est en "integer"

Ci joint le log d'erreur : log.txt

camillemonchicourt commented 4 years ago

OK donc le soucis est normal. Vous essayez de faire rentrer un champs dans le contenu texte (observateuridentite) dans un champs de type entier (id_digitizer) donc cela ne peut pas fonctionner.

DonovanMaillard commented 4 years ago

Il y a 2 soucis en un @camillemonchicourt à priori.

Field mapping 1 c'est celui de la synthèse par défaut, Content mapping 2, c'est le mapping par défaut avec les labels nomenclatures en principe, donc il doit y avoir un soucis de transformation des données, ça c'est plutôt un boulot pour @TheoLechemia

camillemonchicourt commented 4 years ago

Ouais renseigner un id_digitizer lors d'un import c'est pas forcément courant, ou du moins il faut bien maitriser GN. Du coup je suis pour renommer le champs de destination, et le masquer par défaut.

TheoLechemia commented 4 years ago

Merci de votre appui sur le support ;). En effet vous avez bien identifier le problème. Je regarde dans la semaine prochaine le problème que Donovan a identifié.

TheoLechemia commented 4 years ago

Bonjour,

Le lien du fichier a expiré. Pouvez-vous nous renvoyer un lien ?

pnrfo commented 4 years ago

Bonjour, voici le lien : https://fromsmash.com/fichiers-159

TheoLechemia commented 4 years ago

Merci, j'ai pu identifié le bug. Le fait de remplir la colonne "preuve digital" avec des valeurs null ou vide posait un problème. C'est corrigé.