Projet

Général

Profil

Actions

Bug #10993

fermé

Problème de création enregistrement sur clé liée à une autre table

Ajouté par Marc Avenel il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Closed
Priorité:
Urgent
Assigné à:
Début:
03/10/2019
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Firefox
Votre version de Silverpeas:
6.1-x
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

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

Mis à jour par David Lesimple il y a plus de 4 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 plus de 4 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 David Lesimple il y a plus de 4 ans

  • Assigné à David Lesimple supprimé

Mis à jour par Marc Avenel il y a plus de 4 ans

Oui c'est sur le connecteur MyDB.

Mis à jour par Miguel Moquillon il y a plus de 4 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 plus de 4 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 plus de 4 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 plus de 4 ans

  • Statut changé de In progress... à Resolved
  • % réalisé changé de 0 à 100

Mis à jour par Marc Avenel il y a plus de 4 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 plus de 4 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 plus de 4 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Nicolas Eysseric il y a plus de 4 ans

  • Statut changé de Integration in progress... à Closed

Validé et intégré

Mis à jour par Marc Avenel il y a plus de 4 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 plus de 4 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 plus de 4 ans

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 plus de 4 ans

  • Statut changé de Re-opened à Qualified

Mis à jour par Miguel Moquillon il y a plus de 4 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 Miguel Moquillon il y a plus de 4 ans

  • Statut changé de Resolved à Closed

Mis à jour par Marc Avenel il y a plus de 4 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 plus de 4 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 plus de 4 ans

  • Statut changé de Re-opened à Closed

Mis à jour par Marc Avenel il y a plus de 4 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 plus de 4 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 plus de 4 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 plus de 4 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 plus de 4 ans

Puis je récupérer la " 6.1-build191124 " d'avance merci ?

Mis à jour par David Lesimple il y a plus de 4 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 plus de 4 ans

Vous pouvez récupérer le dernier build 6.1-build191126 .

Mis à jour par Marc Avenel il y a plus de 4 ans

Installation du 6.1-build191126
  • 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 plus de 4 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 plus de 4 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 plus de 4 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 plus de 4 ans

Merci, pas vu en tirant vers la droite , en bas de page et au milieu.
Toutes mes excuses. merci

Actions

Formats disponibles : Atom PDF