[PROBLEME] Clef technique null

J’ai changé celui qui avait une ordre 2000 pour réordonné de manière logique (d’abords les lien avec DdvTeam puis ensuite les liens avec User) :

PS : C’est l’entièreté de mes champs. Je n’en ai pas d’autre pour cette objet métier.

Vous raisonnez à l’envers.

1 Like

Je parlais des autre modules. Quand le module DroitsDeVote refonctionne, vu qu’il n’a pas de problème d’audit, nous nous pencherons en premier sur les audits des autres modules. Sauf si vous me dites que ces audits (des autres modules) ont un lien avec les problèmes du module DroitsDeVote.

(Les audits n’ont rien à voir avec les modules, on peut avoir des objets qui se référencent entre modules, il est toujours préférable d’éteindre toutes les alarmes et d’être à jour).

Si la ligne 20 est une FK (vu son nommage je suppose que c’est un Id), où est la clé fonctionnelle de cet objet lié ?

Je vous laisse voir avec @Alistair car ça ne semble pas être un problème sur la 5.2.
qui est beaucoup plus stricte sur la cohérence des champs d’un objet métier.

Tout à fait, c’est une FK (ID). L’audit me disait de ramener cet attribut. Donc ça a été fait.

Je ne le l’ai pas ramené car l’audit ne me disait rien à propos et comme ça fonctionnait depuis près de 1 mois, je ne pensais pas que c’était obligatoire.

Voici les liens :

Ok merci. J’ai juste émis l’hypothèse que cela venait de la MAJ car tout fonctionnait depuis 1 mois, et ce problème des ID null est apparus depuis la MAJ sur pas mal de mes objets métiers. Mais j’ai dû me trompé.

Et celui ci vous dit pas mal d’autres choses à corriger. Ce n’est pas une option.

D’après votre diagramme il n’y a pas de clé fonctionnelle sur l’objet DdvSgp, qui vous affiche surement un autre warning. Il faut obligatoirement une clé fonctionnelle pour identifier un objet de façon unique, donc y compris via les liens pour identifier l’objet lié qui en cascade affichera un warning (exactement comme pour le usr_login d’un autre post).

Bref corrigez tous les warnings qui indiquent un dysfonctionnement.

La base :

  • Un objet doit avoir une clé fonctionnelle (potentiellement composite genre nom+prénom+date de naissance)
  • Une référence doit ramener toute la clé des objets liés (et donc les champs des id clé ramenés en cascade)

Les wizards de création de lien vous pré-cochent les champs clés, ensuite si vous modifiez votre modèle, il faut le faire manuellement.

On va voir pour forcer au runtime l’ajout des champs manquants au loading d’un objet, en plus d’un warning.

Effectivement, j’avais oublié la clef fonctionnelle sur cette objet. Je vous présente mes excuses pour cet oublie qui vous a fait perdre du temps.
En la rajoutant, cela semble corrigé la plupart des problèmes sur mes autres objets.

J’ai cependant toujours 2 problèmes :

  • Problème n°1 : Problème non corrigé pour l’objet DdvPosseder (C’est pour le moment le seul objet qui continue a avoir le problème). C’est peut être lié au problème n°2 car les 2 objets sont liés.

  • Problème n°2 : Quand je rajoute la clef fonctionnelle dans l’objet cascade DdvVoting, j’ai une erreur.

L’audit me dit pourtant bien de rajouter ce lien…

Donc si je mets le lien j’ai une erreur. Et si je le mets pas, j’ai l’audit qui me dit de le mettre.

Voici le MCD :

En regardant le paramétrage de l’objet DdvPosseder il semblerait que vous n’avez pas suivi le conseil de François.

1 Like

Ha, je n’avait pas compris comme ça.

Je pensais qu’il fallait juste que la FK soit en premier et ensuite pour les clefs fonctionnelle on s’en moque de l’ordre. Je comprends mieux maintenant.

Je vais corriger ça et je vous tiens au courant.

J’ai réordonné (je crois que c’est bon), mais j’ai toujours le problème :


Vous avez vidé le cache ?

Oui je clear le cache à chaque fois de toute façon.

Je fais celui du milieu à chaque fois :

A votre place j’essaierai de supprimer la relation et de la recréer. En passant par le template editor

Depuis la recréation, tous les objets métiers qui avait ce problème de l’ID à null ont maintenant une erreur dans les logs lorsque j’essaie d’enregistrer (en plus du problème de l’ID a null) :

Je ne comprends pas pourquoi c’est la table ddv_sgp qui est utilisé au lieu de ddv_team dans le select.

Surement de là que vient le problème car il ne peut pas sélectionner l’ID de l’équipe et donc l’ID est vide.

Une idée de pourquoi c’est la mauvaise table qui est utilisé ?

DdvPosseder :


Vous me permettez d’aller voir/modifier le paramétrage ?

Tout à fait. Les identifiants n’ont pas changé.

1 Like

Les objets qui posent problème avec l’ID null : DdvFund, DdvPosseder, DdvVoting et peut-etre DdvPower (mais pas sûr)

C’est réglé pour Posséder du moins.
J’ai simplement supprimé la relation entre Posséder et Equipe.
Puis je l’ai recrée via le template editor de l’objet :



Merci, je vais appliquer la solution a tous mes objets problématique. Néanmoins, avez-vous une idée de pourquoi il y a ce problème ?

A mon avis il y a eu un loupé au niveau de la création des relations. Je vous envoie par mail un screencast avec ce que j’ai fait (la taille du fichier excède le max upload size du forum)