Project

General

Profile

Actions

Bug #10993

closed

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

Added by Marc Avenel over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Urgent
Start date:
10/03/2019
Due date:
% Done:

100%

Estimated time:
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


Files

V6-Ticket 10993-Gestion tables-.JPG (51.1 KB) V6-Ticket 10993-Gestion tables-.JPG Marc Avenel, 11/22/2019 11:57 AM
JDBC-Création-Enreg_02.JPG (22 KB) JDBC-Création-Enreg_02.JPG Marc Avenel, 11/27/2019 02:55 PM
JDBC-Création-Enreg_01.JPG (47.3 KB) JDBC-Création-Enreg_01.JPG Marc Avenel, 11/27/2019 02:55 PM
Actions #1

Updated by David Lesimple over 2 years ago

  • Project changed from JDBC Connector to MyDB
  • Subject changed from V6-JDBC:Problème de création enregistrement sur clé liée à une autre table to Problème de création enregistrement sur clé liée à une autre table
  • Status changed from New to Assigned
  • Assignee set to David Lesimple
  • Priority changed from High to 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.

Actions #2

Updated by David Lesimple over 2 years ago

  • Status changed from Assigned to Qualified

Il y a en effet une erreur javascript qui empêche le choix de la clé secondaire :

 sp.element.querySelector(...) is null
Actions #3

Updated by David Lesimple over 2 years ago

  • Assignee deleted (David Lesimple)
Actions #4

Updated by Marc Avenel over 2 years ago

Oui c'est sur le connecteur MyDB.

Actions #5

Updated by Miguel Moquillon over 2 years ago

  • Status changed from Qualified to In progress...
  • Assignee set to Miguel Moquillon
  • Target version set to Version 6.1
Actions #6

Updated by Miguel Moquillon over 2 years ago

  • Status changed from In progress... to 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).

Actions #7

Updated by Miguel Moquillon over 2 years ago

  • Status changed from Feedback to 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.

Actions #8

Updated by Miguel Moquillon over 2 years ago

  • Status changed from In progress... to Resolved
  • % Done changed from 0 to 100
Actions #9

Updated by Marc Avenel over 2 years ago

Pourriez vous me l'intégrer rapidement pour que les utilisateurs tests puissent valider cette mise à jour ?
D'avance je vous en remercie

Actions #10

Updated by Marc Avenel over 2 years ago

Les tests phase N° 1 se terminent Mercredi 30 Octobre.
ceci devient URGENT.
D'avance merci

Actions #11

Updated by Nicolas Eysseric over 2 years ago

  • Status changed from Resolved to Integration in progress...
Actions #12

Updated by Nicolas Eysseric over 2 years ago

  • Status changed from Integration in progress... to Closed

Validé et intégré

Actions #13

Updated by Marc Avenel about 2 years ago

  • Status changed from Closed to Re-opened

Bonjour. Ce n'est pas intégré sur notre serveur V6 : https://v6.akwel.net ?

Actions #14

Updated by Miguel Moquillon about 2 years ago

  • Status changed from Re-opened to 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.

Actions #15

Updated by Marc Avenel about 2 years ago

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)

Actions #16

Updated by Miguel Moquillon about 2 years ago

  • Status changed from Re-opened to Qualified
Actions #17

Updated by Miguel Moquillon about 2 years ago

  • Status changed from Qualified to 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).

Actions #18

Updated by Miguel Moquillon about 2 years ago

  • Status changed from Resolved to Closed
Actions #19

Updated by Marc Avenel about 2 years ago

  • Status changed from Closed to Re-opened

Lundi je pourrais récupérer le build - 6.1-build241118 - ?

Actions #20

Updated by Miguel Moquillon about 2 years ago

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 ...

Actions #21

Updated by Miguel Moquillon about 2 years ago

  • Status changed from Re-opened to Closed
Actions #22

Updated by Marc Avenel about 2 years ago

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à ?

Actions #23

Updated by Miguel Moquillon about 2 years ago

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).

Actions #24

Updated by Nicolas Eysseric about 2 years ago

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.

Actions #25

Updated by Marc Avenel about 2 years ago

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....

Actions #26

Updated by Marc Avenel about 2 years ago

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

Actions #27

Updated by David Lesimple about 2 years ago

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.

Actions #28

Updated by David Lesimple about 2 years ago

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

Actions #29

Updated by Marc Avenel about 2 years ago

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

Actions #30

Updated by Miguel Moquillon about 2 years ago

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.

Actions #31

Updated by Marc Avenel about 2 years ago

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).

Actions #32

Updated by Miguel Moquillon about 2 years ago

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.

Actions #33

Updated by Marc Avenel about 2 years ago

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

Actions

Also available in: Atom PDF