Anomalie #47
openMise à jour des données de référence
0%
Description
Dans les ddr variables, il est impossible de mettre à jour la table (manuellement ou par édition de fichier)
Lorsqu'on change une description par exemple, la modification est annulée qq secondes après
Updated by Jean-Baptiste Paroissien over 5 years ago
- Status changed from Nouveau to En cours
La demande a été transférée à Philippe pour avis...
Updated by Jean-Baptiste Paroissien over 5 years ago
Réponse de philippe :
J'avais du supprimer le champs nom à un moment
le nom est stocké dans le code sans changer la casse, et on peut jouer sur l'internationalisation pour avoir d'autres affichages
nom_key est le code de la variable
nom_fr et nom_en son nom
Vérifie ton recorder et les surcharges de variable foret. Il est possible que tu transforme le nom en code par exemple FCH4 en fch4 mais que dans la base on cherche FCH4
Cela pourrait être le contraire : tu as stocké FCH4 mais tu cherche le code fch4
Updated by Jean-Baptiste Paroissien over 5 years ago
- Status changed from En cours to Résolu
La méthode updateDBVariable appelée dans createOrUpdateVariable posait problème (je n'avais pas accès à setTheiacategories notamment) :
private void updateDBVariable(Variable variable, Variable dbVariable) {
dbVariable.setCode(variable.getName());
dbVariable.setCode(variable.getCode());
dbVariable.setDefinition(variable.getDefinition());
}
Du coup, j'ai fait un truc plus simple directement dans createOrUpdateVariable :
private void createOrUpdateVariable(ErrorsReport errorsReport, String code, String definition, String theiacategories, int lineNumber, VariableSnot dbVariable) throws PersistenceException {
if (dbVariable == null) {
dbVariable = new VariableSnot(code, definition,theiacategories);
this.variableDAO.saveOrUpdate(dbVariable);
} else {
dbVariable.setCode(code);
dbVariable.setDefinition(definition);
dbVariable.setTheiacategories(theiacategories);
this.variableDAO.saveOrUpdate(dbVariable);
}
}