Image du projet 'Offre de formation' téléversée
  1. Offre de formation
  2. FORMATION-800

Les imports des entiers, lorsqu'il n'y a pas de changement, ne fonctionne pas

XMLWordImprimable

    • Icon: Bug Bug
    • Résolution: Résolu
    • Icon: Majeur Majeur
    • master, 2.07.25
    • 2.07.24
    • Aucune

      Contexte :

      Lors de l'import XML, on construit une ficheUniv avec des valeurs présentes seulement s'il y a des changements. S'il n'y a pas de changement, on met null et ensuite quand on parcourt tous les attributs, on regarde si la valeur est différente de null. Si c'est le cas, on modifie en base par la nouvelle valeur présente dans le XML.

      Problème :

      Cependant, pour les entiers, la valeur par défaut est 0 s'il n'y a pas de changement. Or, comme 0 != null, on va importer cette valeur.

       

      Code :

      Dans TraitementImportNode#importItemFiche, ligne 456 on a l'attribut "importExportDto" qui contient ficheReference (fiche lu en base) et ficheUniv (qui contient les champs qui seront mis à jour grâce à l'import XML).

      Dans TraitementImportUtil#synchronizeObject, on a  :

      // On ne recopie de la fiche tampon vers la fiche à synchroniser que les champs non null (cela permet d'ignorer les champs non transmis).
      nullAwareBeanUtils.copyProperty(objectSync, currentProperty.getName(), value);
      

      Il faut aussi gérer dans ce cas les champs qui ont une valeur == 0 ou bien mettre Integer plutôt que int pour les champs dureeSemestre et numeroPremierSemestre de Parcours ? (idem pour tous les champs int lié à l'import)
      Exemple

      Voir ci-dessous le contenu de ficheTampon pour un parcours.

      ficheTampon = importExportDto.getFicheUniv()
      

      Le champ libelleParcoursAnnee est bien à null car il n'a pas été modifié, de même que numeroPremierSemestre est égal à 0 :

       

      parcoursAmont = {ArrayList@40068} size = 0
      parcoursAval = {ArrayList@40069} size = 0
      dureeSemestre = 1
      numeroPremierSemestre = 0
      libelleParcoursAnnee = null
      diffusionPublicVise = null

       

            gabriel.boursier Gabriel BOURSIER [X] (Inactif)
            gabriel.boursier Gabriel BOURSIER [X] (Inactif)
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            4 Démarre l'observation de ce ticket

              Création:
              Mise à jour:
              Résolue: