Bug #10993
ferméProblème de création enregistrement sur clé liée à une autre table
Ajouté par Marc Avenel il y a environ 5 ans. Mis à jour il y a environ 5 ans.
100%
Description
Nous avons cette table : mgic_id_customer
Nous désirons ajouter un enregistrement.
Dans cette table nous avons l'integer "id_mgic_site" qui est lié à la table mgic_site
- Nous cliquons sur la clé pour accéder à cette table mgic_site
- Nous avons bien la liste des enregistrements (non classés)liée à cette table
- Nous sélectionnons l'enregistrement souhaité
- Nous validons par OK
--> l'écran reste bloqué, la sélection n'est pas prise en compte
Fichiers
V6-Ticket 10993-Gestion tables-.JPG (51,1 ko) V6-Ticket 10993-Gestion tables-.JPG | Marc Avenel, 22/11/2019 11:57 | ||
JDBC-Création-Enreg_02.JPG (22 ko) JDBC-Création-Enreg_02.JPG | Marc Avenel, 27/11/2019 14:55 | ||
JDBC-Création-Enreg_01.JPG (47,3 ko) JDBC-Création-Enreg_01.JPG | Marc Avenel, 27/11/2019 14:55 |
Mis à jour par David Lesimple il y a environ 5 ans
- Projet changé de JDBC Connector à MyDB
- Sujet changé de V6-JDBC:Problème de création enregistrement sur clé liée à une autre table à Problème de création enregistrement sur clé liée à une autre table
- Statut changé de New à Assigned
- Assigné à mis à David Lesimple
- Priorité changé de High à Normal
Si vous souhaitez ajouter un enregistrement, alors c'est l'application myDB dont il s'agit.
connecteurJDBC n'est utilisé qu'en lecture sur une base de données.
Mis à jour par David Lesimple il y a environ 5 ans
- Statut changé de Assigned à Qualified
Il y a en effet une erreur javascript qui empêche le choix de la clé secondaire :
sp.element.querySelector(...) is null
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Qualified à In progress...
- Assigné à mis à Miguel Moquillon
- Version cible mis à Version 6.1
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de In progress... à Feedback
Il me faudrait plus de détails parce que je n'arrive pas du tout à reproduire le bogue avec la version de build 6.1 actuelle (6.1-build191003).
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Feedback à In progress...
Après avoir investigué avec David sur la cause du bogue détecté, il s'avère que cela vienne du fait que la clé étrangère id_mgic_site
dans mgic_id_customer
pointe sur une autre colonne que la clé primaire de mgi_site
.
En effet, par raccourcis, mydb s'appuie sur la bonne pratique qu'une clé étrangère pointe sur la/les colonne(s) des clés primaires de la table ciblée. Or ici ce n'est pas le cas.
Désormais, pour éviter ce genre de déconvenue et ajouter de la souplesse, la colonne référencée par une clé étrangère est désormais véhiculée tout le long du mécanisme de sélection d'un tuple dans la table référencée par une clé étrangère.
Pour information, il semblerait qu'il y ait eu une erreur de manip dans la définition des contraintes sur la table mgi_site
. En effet, la colonne id
a juste une contrainte d'unicité alors que la colonne code
est la clé primaire ! Au regard de la structure de la table mgi_site
, la colonne id
aurait du être la clé primaire et la contrainte d'unicité aurait du être posée sur celle code
.
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Mis à jour par Marc Avenel il y a environ 5 ans
Pourriez vous me l'intégrer rapidement pour que les utilisateurs tests puissent valider cette mise à jour ?
D'avance je vous en remercie
Mis à jour par Marc Avenel il y a environ 5 ans
Les tests phase N° 1 se terminent Mercredi 30 Octobre.
ceci devient URGENT.
D'avance merci
Mis à jour par Nicolas Eysseric il y a environ 5 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Nicolas Eysseric il y a environ 5 ans
- Statut changé de Integration in progress... à Closed
Validé et intégré
Mis à jour par Marc Avenel il y a environ 5 ans
- Statut changé de Closed à Re-opened
Bonjour. Ce n'est pas intégré sur notre serveur V6 : https://v6.akwel.net ?
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Re-opened à Closed
Merci de ne pas rouvrir un ticket fermé d'un projet/composant Silverpeas juste parce que la version de Silverpeas qui inclue la correction n'a pas encore été installée chez vous.
Le cycle de suivi d'un ticket d'un projet/composant Silverpeas diffère de celui d'un projet client. Dans un projet Silverpeas, un ticket fermé signifie que l'évolution ou la correction a été validée et intégrée dans le code principale de Silverpeas, code à partir duquel une version de build sera construite automatiquement par notre serveur d'intégration continue (selon une planification donnée). L'état fermé du ticket ne signifie donc pas ici que la version de Silverpeas qui inclue la correction a été installée chez vous.
Mis à jour par Marc Avenel il y a environ 5 ans
- Fichier V6-Ticket 10993-Gestion tables-.JPG V6-Ticket 10993-Gestion tables-.JPG ajouté
- Statut changé de Closed à Re-opened
- Priorité changé de Normal à Urgent
Version 6.1-build191118
Table: mgic_id_customer
Ajout d'un enregistrement sur les clés suivantes: id_mgic_site, id_mgic_customer
Rien ne se passe excepté d'un affichage en rouge avec le chiffre (voir copie écran)
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Re-opened à Qualified
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Qualified à Resolved
Problème validé. Ceci vient d'un effet de bord provoqué lorsqu'une clé étrangère n'a pas de valeur par défaut (champs obligatoire). La correction est mineure. Je l'ai directement poussé sur master. La correction sera donc disponible au prochain build automatique (dimanche soir).
Mis à jour par Marc Avenel il y a environ 5 ans
- Statut changé de Closed à Re-opened
Lundi je pourrais récupérer le build - 6.1-build241118 - ?
Mis à jour par Miguel Moquillon il y a environ 5 ans
Punaise, arrêtez de rouvrir un billet Silverpeas !!!! Vous pouvez toujours poser une question ou un commentaire sans devoir rouvrir le billet !
Bon, pour répondre à votre question, si le build se passe bien, vous pourrez récupérer la version 6.1-build191124 lundi. Par contre, pour la version 6.1-build241118, j'espère que l'on sera à une version ultérieure que la 6.1 en 2024 ...
Mis à jour par Miguel Moquillon il y a environ 5 ans
- Statut changé de Re-opened à Closed
Mis à jour par Marc Avenel il y a environ 5 ans
Comment je fais pour pointer lors de la mise à jour d'un build que le ticket est bien pris en compte.
Donc qu'il est clos chez nous car testé et validé?
Cet ticket est bien un exemple concret: livré mais pas correct donc refusé chez nous.donc pas clos
De plus quand le ticket est pris en compte je ne sais pas quel "build" sera concerné.
Aucune information à ce sujet dans le ticket, je dois contrôler avec les dates de clôture et la date du build.
--> obligé de repointer tous les tickets.
Avouer que ce n'est pas simple.
Pour le build : c'est BuildAAMMJJ c'est bien celà ?
Mis à jour par Miguel Moquillon il y a environ 5 ans
Nous avons déjà discuté en long et en large là dessus.
Le cycle de vie des tickets d'un projet Silverpeas est différent de celui d'un projet client. Les projets Silverpeas concernent la plateforme Silverpeas indépendamment d'un quelconque client ou utilisateur. Dans le cas d'un projet Silverpeas, le ticket est fermé lorsque la développement qui a été réalisé est intégré dans le code principal de Silverpeas. Si un problème est à nv découvert ultérieurement, le ticket peut être alors rouvert avec l'explication du problème découvert.
Si vous avez besoin d'un suivi propre à votre projet, alors dupliquez ce ticket dans le projet AKWEL et faites un lien vers ce billet et vice-versa. Lorsque ce billet sera fermé, celui lié dans le projet AKWEL sera alors marqué comme résolu et vous pourrez alors le marquer comme fermé si tout est ok ou le rouvrir s'il y a un autre problème rencontré sur le même sujet.
Sinon, pour répondre à votre question, oui c'est <version en cours de dév>-buildAAMMJJ (avec actuellement <version en cours de dév> = 6.1).
Mis à jour par Nicolas Eysseric il y a environ 5 ans
Attention. La situation actuelle est un peu particulière.
Vous travaillez en ce moment sur des versions BUILD de la 6.1.
Dès la sortie définitive de la version 6.1, nous allons reprendre le rythme classique des versions correctives (exclusivement correctives) et des versions évolutives (corrections et évolutions). La version cible de chaque demande sera plus clairement indiquée : 6.1.x ou 6.2. Il sera donc plus facile de suivre les demandes.
En attendant, je ne peux que vous inviter à suivre les conseils de Miguel.
Mis à jour par Marc Avenel il y a environ 5 ans
Je comprends votre gestion. Mais avoué que ce n'est pas simple.
Par contre ce qui me prend du temps c'est de savoir dans quel build le ticket est pris en compte.
Je passe un temps fou à gérer ceci. De plus il y a bon nombre de tickets...
C'est vrai que cette situation avec cette version n'est pas simple.
En plus les tickets de la v5....
Mis à jour par Marc Avenel il y a environ 5 ans
Puis je récupérer la " 6.1-build191124 " d'avance merci ?
Mis à jour par David Lesimple il y a environ 5 ans
Marc Avenel a écrit :
Puis je récupérer la " 6.1-build191124 " d'avance merci ?
non il y a eu un problème hier lors de sa génération, on vous dira lorsqu'il sera sorti.
Mis à jour par David Lesimple il y a environ 5 ans
Vous pouvez récupérer le dernier build 6.1-build191126 .
Mis à jour par Marc Avenel il y a environ 5 ans
- Fichier JDBC-Création-Enreg_02.JPG JDBC-Création-Enreg_02.JPG ajouté
- Fichier JDBC-Création-Enreg_01.JPG JDBC-Création-Enreg_01.JPG ajouté
- Table mgic_id_customer
- Field: id_mgic_site
- Field: id_mgic_customer
Les items se remplissent bien
Mais au moment de valider j'ai le message suivant:
org.silverpeas.core.persistence.TransactionRuntimeException: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "prk_constraint_mgic_id_customer" Detail: Key (id_mgic_site, id_mgic_customer)=(12, 2000003) already exists.
De plus pour la clé id_mgic_site, lien sur la table mgic_site contient 50 enregistrements
Quand nous accédons à cette table via la clé : On voit les 10 enregistrements mais on ne peut accéder à la suite
De plus le 1er enregistrement est sur un fond bleu.
Voir copie écran
Mis à jour par Miguel Moquillon il y a environ 5 ans
Mes réponses aux différents points soulevés :
- Au moment de valider j'ai le message suivant:
org.silverpeas.core.persistence.TransactionRuntimeException: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "prk_constraint_mgic_id_customer" Detail: Key (id_mgic_site, id_mgic_customer)=(12, 2000003) already exists.
=> Cette erreur vient directement de la base de données. MyDB ne fait que la reporter. Elle signifie que vous essayez de créer un enregistrement avec les mêmes valeurs (id_mgic_site, id_mgic_customer) qu'un enregistrement déjà existant et que ceci est interdit (violation d'unicité).
- De plus pour la clé id_mgic_site, lien sur la table mgic_site contient 50 enregistrements
Quand nous accédons à cette table via la clé : On voit les 10 enregistrements mais on ne peut accéder à la suite
=> Si vous pouvez normalement accéder aux autres enregistrements. Pour ce faire, utilisez l'ascenseur horizontal de la popin pour défiler la suite de celle-ci et rendre visible la pagination par laquelle vous pouvez naviguer d'une page d'enregistrement à une autre (l'ascenseur est visible dans votre capture d'écran).
- De plus le 1er enregistrement est sur un fond bleu.
=> oui, c'est normal : ce qui est en surbrillance bleue est ce qui est sélectionné ou a été sélectionné. Par exemple, si vous choisissez un enregistrement sur lequel doit pointer une clé étrangère et que vous décidez de cliquer à nouveau sur le champs relatif à la clé étrangère pour modifier sa valeur, à l'ouverture de la fenêtre qui affiche le contenu de la table référencée par la clé étrangère, l'enregistrement qui a été précédemment sélectionné se trouve en surbrillance bleue.
Mis à jour par Marc Avenel il y a environ 5 ans
Merci pour ces remarque au niveau de la clé.
=> Si vous pouvez normalement accéder aux autres enregistrements. Pour ce faire, utilisez l'ascenseur horizontal de la popin pour défiler la suite de celle-ci et rendre visible la pagination par laquelle vous pouvez naviguer d'une page d'enregistrement à une autre (l'ascenseur est visible dans votre capture d'écran).
Par contre je n'arrive pas à avoir l'ascenseur horizontal, j'ai uniquement la verticale pour faire défiler la page (Voir ma copie écran précédente).
Mis à jour par Miguel Moquillon il y a environ 5 ans
Pour défiler horizontalement le popin, utilisez l'ascenseur horizontal du navigateur. En effet, la popin s'étend sur la hauteur de la page dont une partie, selon les dimensions d'affichage du navigateur web, peut être cachée et nécessite l'utilisation de l'ascenseur pour la voir.
Mis à jour par Marc Avenel il y a environ 5 ans
Merci, pas vu en tirant vers la droite , en bas de page et au milieu.
Toutes mes excuses. merci