Un fichier csv avec une erreur (voir l 6 col 1 du fichier datatype.csv) provoque une erreur 500 sans message explicite.
Voici le yaml avec csv dans ce zipOPTmix_v2.0_WIP.zip
j'ai un message explicite qui s'affiche en local
comme c'est une erreur 500 elle est retourné dans un toast et non dans un message fixe mais je peu le changer si vous le souhaiter
je ne sais pas si le yaml sur dev et le même que celui du dessus donc je sais pas si je dois avoir le même message quand j'essaye de redéposé dataType sur ton SI OPTmix v1. Actuellement il y a aussi un message qui s'affiche mais il n'est pas clair. Il faudra que tu me dise si tu as comme sur le screen ci-dessous ou pas :
je viens de retester en recréant le SI de l'archive sur la DEV et j'ai bien le même message :
Je ne comprends pas le message de ta première copie d'écran "un label ne peut être vide". En regardant le fichier csv testé, le problème vient de la cellule col 4 ligne 6 qui n'est pas vide. Corrigé, le fichier passe. Il me semblait avoir fait remonter un ticket similaire à Philippe sur un fichier qui comportait le même type d'erreur avec une erreur 500 mais je ne le retrouve plus.
Quoi qu'il en soit, je ne pige pas bien la différence entre le toast et le message fixe et entre le fait que sur ton poste, ça s'affiche et pas sur le DEV...question de config pour le reporting d'erreur ?
Le message a été modifié. Généralement cela correspond à une chaîne vide dans un ltree (élement de la clef naturelle absent)
Ne concerne pas la récursivite.
peut concerner une clef naturelle ou hierarchique.
D'après le titre le ticket est résolu. Nous obtenons un message certe peu explicite dans ce contexte. Certains message viennent de méthodes ou de classes avec des contrats sur les valeurs en entrées. Pour expliquer, ici on construit une clef naturelle à partir des valeurs de la ligne et des colonnes déclarées comme clef naturelle.
une première question quid des valeurs toutes nulles -> je prends le parti d'envoyer une erreur du type. Toutes les valeurs fournies pour définir la clef naturelle sont vides. Vous devez renseigner au moins une valeur. Les composants entrant dans la construction de la clef naturelle sont : ...
de cela découle une autre règle les valeurs nulles sont sorties de la clef naturelle Si la clef est basée sur A =a, b=, c= c alors la clef naturelle sera a__c. (on pourrait aussi choisir a__null__c). Je prends la première option mais la discussion reste ouverte.
En attente d'un déploiement intégrant le ticket pour tester.
Ok pour le choix du type d'erreur remonté si aucune valeur n'est renseignée. Considérer également le OA_required ici.
Pour ton deuxième point, ne pas mettre "null" dans la clé naturelle est source d'erreur : si la clé est basée sur la concaténation de 3 colonnes A, B et C, si 1) A=a, b=, c= c et 2) A=a, b=c, c=, dans les deux cas, la clé naturelle vaudra a__c et interdira l'import alors qu'il devrait passer. Introduire le null donnera a__null_c et a__c__null distinguant à juste titre les deux clés et permettant l'enregistrement des données en base. C'est a priori le principe abordé pour les contraintes d'unicité dans Postgres (entre autres), le terme clé naturelle est en réalité une contrainte d'unicité, la clé primaire étant l'id générée en interne et utilisé dans la table reference_reference.