[Isis-fish-user] Changer l equation de mortalité naturelle au cours de la simulation
voici le code utilisé pour le faire, mais qui marche pas :-( et les fichiers chargés Le chargement des fichiers, la creation de l equation, la modif de l equation se passent bien, mais la modification n entre pas action. merci d avance Sigrid -- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65 package rules; import java.io.*; import java.util.HashSet; import java.util.HashMap; import java.util.Map; import java.util.List; import java.util.ArrayList; import java.util.Arrays; import java.util.Set; import java.io.File; import java.io.Writer; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.FileReader; import java.util.Collection; import java.util.Collections; import org.codelutin.topia.TopiaContext; import fr.ifremer.isisfish.IsisFishDAOHelper; import static org.codelutin.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.math.matrix.*; import org.codelutin.util.FileUtil; import scripts.ResultName; import scripts.RuleUtil; import scripts.SiMatrix; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Species; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.StrategyMonthInfo; import fr.ifremer.isisfish.entities.TargetSpecies; import fr.ifremer.isisfish.rule.AbstractRule; import fr.ifremer.isisfish.simulator.MetierMonitor; import fr.ifremer.isisfish.simulator.PopulationMonitor; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** *RUM_multinomial.java * * Created: 31 aout 2007 * * @author sigrid * @version $Revision: 1.3 $ * * Last update: $Date: $ * by : $Author: sigrid $ */ /** * RUM utilise les RUM pour predire a chaque mois la proportion de chaque metier realisé par les pecheurs *en fonction des abondance par zone, de la biomasse totale et des VPUE realisees sur les metiers le mois *precedant et l annee precedante * ATTENTION ce code est valable si un metier n est pratiqué que dans une et une seule strategie */ public class Survies_larves_20002007_Anchois extends AbstractRule { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Survies_larves_20002007_Anchois.class); public Population param_pop = null; public int param_anneeDebut = 0; protected String nomfichier_SurviesGironde = "Inputs_Anchois/SurviesLarves/SurviesGironde.csv"; protected String nomfichier_SurviesLandesC = "Inputs_Anchois/SurviesLarves/SurviesLandesC.csv"; protected String nomfichier_SurviesLandesO = "Inputs_Anchois/SurviesLarves/SurviesLandesO.csv"; protected String nomfichier_SurviesRochebonne = "Inputs_Anchois/SurviesLarves/SurviesRochebonne.csv"; protected String nomfichier_SurviesNorth = "Inputs_Anchois/SurviesLarves/SurviesNorth.csv"; protected File fileSurviesGironde; protected File fileSurviesLandesC; protected File fileSurviesLandesO; protected File fileSurviesRochebonne; protected File fileSurviesNorth; protected MatrixND matSurviesGironde; protected MatrixND matSurviesLandesC; protected MatrixND matSurviesLandesO; protected MatrixND matSurviesRochebonne; protected MatrixND matSurviesNorth; protected String [] necessaryResult = { }; /** * @return the necessaryResult */ public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur la regle. * @return L'aide ou la description de la regle */ public String getDescription() { return _("les survies des larves dépendent de la zone du mois et de l'année"); } /** * Appelé au démarrage de la simulation, cette méthode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(SimulationContext context) throws Exception { // load survival by area if (nomfichier_SurviesGironde==null || "".equals(nomfichier_SurviesGironde)){ fileSurviesGironde = FileUtil.getFile(".*.csv", "fichierSurviesGironde csv séparateur ';'"); fileSurviesLandesC = FileUtil.getFile(".*.csv", "fichierSurviesLandesC csv séparateur ';'"); fileSurviesLandesO = FileUtil.getFile(".*.csv", "fichierSurviesLandesO csv séparateur ';'"); fileSurviesRochebonne = FileUtil.getFile(".*.csv", "fichierSurviesRochebonne csv séparateur ';'"); fileSurviesNorth = FileUtil.getFile(".*.csv", "fichierSurviesNorth csv séparateur ';'"); } else { fileSurviesGironde = new File(nomfichier_SurviesGironde); fileSurviesLandesC = new File(nomfichier_SurviesLandesC); fileSurviesLandesO = new File(nomfichier_SurviesLandesO); fileSurviesRochebonne = new File(nomfichier_SurviesRochebonne); fileSurviesNorth = new File(nomfichier_SurviesNorth); } int [] dimMatrix = {8,5}; // 8 years , 5 month (april to august) matSurviesGironde = MatrixFactory.getInstance().create(dimMatrix); matSurviesLandesC = MatrixFactory.getInstance().create(dimMatrix); matSurviesLandesO = MatrixFactory.getInstance().create(dimMatrix); matSurviesRochebonne = MatrixFactory.getInstance().create(dimMatrix); matSurviesNorth = MatrixFactory.getInstance().create(dimMatrix); matSurviesGironde.importCSV(new FileReader(fileSurviesGironde),new int []{0,0}); matSurviesLandesC.importCSV(new FileReader(fileSurviesLandesC),new int []{0,0}); matSurviesLandesO.importCSV(new FileReader(fileSurviesLandesO),new int []{0,0}); matSurviesRochebonne.importCSV(new FileReader(fileSurviesRochebonne),new int []{0,0}); matSurviesNorth.importCSV(new FileReader(fileSurviesNorth),new int []{0,0}); System.out.println("matSurviesGironde "+matSurviesGironde); System.out.println("matSurviesLC "+matSurviesLandesC); System.out.println("matSurviesLO "+matSurviesLandesO); System.out.println("matSurviesRochebonne "+matSurviesRochebonne); System.out.println("matSurviesNorth "+matSurviesNorth); } /** * La condition qui doit etre vrai pour faire les actions * @param simulation La simulation pour lequel on utilise cette regle * @return vrai si on souhaite que les actions soit faites */ public boolean condition(SimulationContext context, Date date, Metier metier) throws Exception { boolean result; if (date.getMonth().after(Month.MARCH) & date.getMonth().before(Month.SEPTEMBER)){ result = true ; }else{ result = false ;} return result; } /** * Si la condition est vrai alors cette action est executée avant le pas * de temps de la simulation. * @param simulation La simulation pour lequel on utilise cette regle */ boolean first = true ; public void preAction(SimulationContext context, Date date, Metier metier) throws Exception { if (first){ // on passe dans preaction pour la premiere fois TopiaContext db = context.getDB(); PopulationDAO popDao = IsisFishDAOHelper.getPopulationDAO(db); Population pop = popDao.findByName("Anchois_long"); Equation eqm = pop.getNaturalDeathRate(); int m = date.getMonth().getMonthNumber(); int y = date.getYear() + param_anneeDebut; String M1 = "if (group == null){ return 0;} else if (group.getId() == 0 ){if (\"gironde\".equals(zone.getName())){return "; String M2 = ";}else if (\"Rochebonne\".equals(zone.getName())) {return "; String M3 = ";}else if (\"LandesCote\".equals(zone.getName())){return "; String M4 = ";}else if (\"LandesLarge\".equals(zone.getName())){return " ; String M5 = ";}else if (\"MigHiver\".equals(zone.getName())){return "; String M6 = ";}else return 0;} else if (group.getId() == 1 ){ return 0 ; } else if (group.getId() == 2 ){ return 9.13896671274146 ; } else if (group.getId() == 3 ){ return 6.52011321674013 ; } else if (group.getId() == 4 ){ return 5.07483463318751 ; } else if (group.getId() == 5 ){ return 4.15653572014739 ; } else if (group.getId() == 6 ){ return 3.5208050737082 ; } else if (group.getId() == 7 ){ return 3.05436780362196 ; } else if (group.getId() == 8 ){ return 2.69743614913744 ; } else if (group.getId() == 9 ){ return 2.41544170418373 ; } else if (group.getId() == 10 ){ return 2.18699518587283 ; } else if (group.getId() == 11 ){ return 1.99814758538767 ; } else if (group.getId() == 12 ){ return 1.83941167360153 ; } else if (group.getId() == 13 ){ return 1.70410904289053 ; } else if (group.getId() == 14 ){ return 1.58740166718328 ; } else if (group.getId() == 15 ){ return 1.49 ; } else if (group.getId() == 16 ){ return 1.39 ; } else if (group.getId() == 17 ){ return 1.49 ; }else return 0;"; double Mgir = matSurviesGironde.getValue(y,m-3); double Mroch = matSurviesRochebonne.getValue(y,m-3); double Mlc = matSurviesLandesC.getValue(y,m-3); double Mlo = matSurviesLandesO.getValue(y,m-3); double Mnor = matSurviesNorth.getValue(y,m-3); String [] mortality = new String[]{ M1+ Mgir +M2+ Mroch +M3+ Mlc +M4+ Mlo +M5+ Mnor +M6}; String mort = (String) mortality[0]; System.out.println("mortalité script = " + mort); eqm.setContent(mort); System.out.println("mortalité eq apres = " + eqm.getContent()); first = false; } } /** * Si la condition est vrai alors cette action est executée apres le pas * de temps de la simulation. * @param simulation La simulation pour lequel on utilise cette regle */ public void postAction(SimulationContext context, Date date, Metier metier) throws Exception { first = true ; } } 482.646152997116;195.428006698645;100.767557167258;54.5382326176205;65.8263776364146 564.297781863851;242.919970589665;86.6924666046013;46.9837885054944;67.8023775879921 532.450235395318;284.94117561173;121.602614129021;62.5491653005985;71.6656158368191 371.769911641852;142.945432802726;32.2152551712958;13.6504370991488;36.5043864523914 487.751120299149;151.862286137456;52.9848740215926;27.0741815640922;36.914503594892 454.045660765549;166.101853831643;42.027212963564;24.6031456659913;47.5768115415776 421.392653391687;126.041499384882;40.3059657760999;19.4229623263974;34.7767961284731 275.316311714827;142.456488509557;65.6340581614108;44.0379188070786;57.0173936327874 420.049121768437;245.825766728695;125.666615556900;75.4514006126118;118.069736633825 419.737087137797;221.272294490353;119.462155170774;84.743257906494;103.868897545532 405.274973354915;275.376619402554;152.622788845715;116.661645680104;94.0126099978502 395.149517296069;157.144703810778;64.7440638161595;38.1175955943993;60.9632754596872 444.867643997375;129.754395239606;62.0277898102471;35.5690932572746;41.8273586458236 360.109746518636;181.254457198022;86.060945744895;53.0272881115597;65.7911426374896 272.524944310082;97.7854398643853;94.2684292194392;68.0849807524316;48.9303569921785 293.028983767031;147.230905382355;81.9900661100086;62.8482864911585;60.3727522138204 389.851208147199;191.671500905915;99.0707188248597;52.3787289568255;63.405847374595 409.487842455305;181.845468120247;88.3953312683854;51.39712190522;62.0871045074283 458.53447017977;273.349737054411;105.89377699875;55.4084348794133;75.7963171845776 306.966649746794;119.033943268359;31.5197441161778;18.7029932061692;40.8546328013588 433.690634441913;115.636521437954;41.4389942877871;20.9860335180067;25.9753497310537 287.776688162656;118.251308181650;41.1739528200933;27.6378746713106;58.0437522762351 260.341706183916;98.0938089813493;44.8672718826234;25.8136657538474;31.7317988693351 289.547245111867;134.130698015617;62.824864469657;49.2130613070821;59.1742219964028 583.435436969665;234.616091543236;105.983226810986;57.3410187932252;66.9082843231666 626.021391048509;289.800151656280;110.040184816313;52.7651554244978;70.887307620045 625.301571272277;391.382015917036;177.59019672571;79.141584112016;107.661276566124 441.274361605846;197.055326175134;48.2347559861519;16.5672582354084;34.190169829061 441.274361605846;197.055326175134;48.2347559861519;16.5672582354084;34.190169829061 459.282576609245;182.784496746626;51.0198966991206;21.8985003849582;38.5019020763538 479.79729467045;174.191782267231;44.6542933441983;23.4160850570683;46.1439043934687 354.205770676663;154.44416449603;74.2421797883066;53.0668045181763;66.4844093398165 379.831713914615;139.407731154085;87.554552499758;53.7433425106834;63.2200159256659 419.465704795218;156.626295678517;79.9783326489134;51.1018483031198;72.4674766331053 478.639287225625;216.113963873915;107.829862900870;66.9335213816832;87.6086944296763 307.253242098166;127.383613680122;36.2736844903452;15.9341123608746;38.2788506859653 431.739010945489;117.210337807274;49.7707151210573;27.123922524579;36.2791544206725 227.699803478469;109.211841166544;39.5235890260182;24.4287376521978;40.8477703719369 241.585186648693;104.384075837235;37.0104797442621;22.6323077501873;37.7956341424627 186.753014291613;112.256503622525;68.1744579196497;52.0203113985323;67.3861802068965
On Tue, 10 Mar 2009 18:35:46 +0100 Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr> wrote:
String M1 = "if (group == null){ return 0;} else if (group.getId() == 0 ){if (\"gironde\".equals(zone.getName())){return "; String M2 = ";}else if (\"Rochebonne\".equals(zone.getName())) {return ";
Si je remet le code au propre ca donne: if (group == null){ return 0; } else if (group.getId() == 0 ){ if ("gironde".equals(zone.getName())){ return ; // <-- Il y a une erreur ici, on fait un return de rien } else if ("Rochebonne".equa... Il faut que les return dans les equations retournent une valeur numerique. Je pense que durant la simulation, du doit voir passer des problemes de compilation de ton equation. Et donc il ne peut pas utiliser ce qu'il ne peut pas compiler. Et donc il utilise l'ancienne equation qui elle avait bien compilee. Tu corriges et si les symptomes persistent tu renvoies un mail pour dire a Eric :D de faire un test unitaire supplementaire sur la methode util/EvaluatorHelper#evaluate(String packageName, String className, Class javaInterface, String script, Map<String, Object> args) Pour verifier que si on modifie une equation qui a deja ete compile, le code recompiler est bien celui qui est executer et non pas celui de l'ancienne classe. (Normalement c ce qui est fait, mais on sait jamais) Il me semble que ce que tu souhaites faire (modif d'une equation durant une simulation) a deja ete utilise (stephanie ou quelqu'un d'autre) et donc que ca doit fonctionner a moins que je ne me trompe ? -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Salut, Benjamin POUSSIN a écrit :
Il faut que les return dans les equations retournent une valeur
numerique.
c est normal qu il n y ait pas de valeur "en dur" apres return, c est justement ca qui change au cours de la simulation, les valeurs sont celles prises par Mgir, Mlc etc Le script obtenu que je fais afficher dans les log compile. donc les symptomes persistent :-(
si les symptomes persistent tu renvoies un mail pour dire a Eric :D donc heu Eric je dois te dire : de faire un test unitaire supplementaire sur la methode util/EvaluatorHelper#evaluate(String packageName, String className, Class javaInterface, String script, Map<String, Object> args)
Pour verifier que si on modifie une equation qui a deja ete compile, le code recompiler est bien celui qui est executer et non pas celui de l'ancienne classe. (Normalement c ce qui est fait, mais on sait jamais)
Il me semble que ce que tu souhaites faire (modif d'une equation durant une simulation) a deja ete utilise (stephanie ou quelqu'un d'autre) et donc que ca doit fonctionner a moins que je ne me trompe ?
Je n'ai trouvé de tel dans les règles existantes, on modifie souvent les valeurs de parametres de pecherie en partant de siMatrix ou de "métier", mais pas les populations. En fait souvent on modifie l'équation pour toute la durée de la simulation par un plan d'analyse, ca ca fonctionne tres bien.
-- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii _______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
Sigrid LEHUTA a écrit :
Salut,
Benjamin POUSSIN a écrit :
Il faut que les return dans les equations retournent une valeur
numerique.
c est normal qu il n y ait pas de valeur "en dur" apres return, c est justement ca qui change au cours de la simulation, les valeurs sont celles prises par Mgir, Mlc etc Le script obtenu que je fais afficher dans les log compile.
donc les symptomes persistent :-(
si les symptomes persistent tu renvoies un mail pour dire a Eric :D
donc heu Eric je dois te dire :
de faire un test unitaire supplementaire sur la methode util/EvaluatorHelper#evaluate(String packageName, String className, Class javaInterface, String script, Map<String, Object> args)
Pour verifier que si on modifie une equation qui a deja ete compile, le code recompiler est bien celui qui est executer et non pas celui de l'ancienne classe. (Normalement c ce qui est fait, mais on sait jamais)
J'ai vérifié.
Le second code écrase le premier. Et c'est bien le second code qui est exécuté. Après, testé unitairement ça fonctionne. Peut-être que pendant les simulations, il y a autre chose qui ne fonctionne pas ?
Il me semble que ce que tu souhaites faire (modif d'une equation durant une simulation) a deja ete utilise (stephanie ou quelqu'un d'autre) et donc que ca doit fonctionner a moins que je ne me trompe ?
Je n'ai trouvé de tel dans les règles existantes, on modifie souvent les valeurs de parametres de pecherie en partant de siMatrix ou de "métier", mais pas les populations. En fait souvent on modifie l'équation pour toute la durée de la simulation par un plan d'analyse, ca ca fonctionne tres bien.
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
J'ai vérifié.
Le second code écrase le premier. Et c'est bien le second code qui est exécuté.
Après, testé unitairement ça fonctionne. Peut-être que pendant les simulations, il y a autre chose qui ne fonctionne pas ?
Il n'y a pas d'erreur dans les log... je joints la simu Merci -- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
Sigrid LEHUTA a écrit :
Il n'y a pas d'erreur dans les log... je joints la simul J'ai fait tourner la simulation, en effet pas d'erreur.
Mais je ne sais pas ce que vous attendez comme résultat pour vérifier. Comment pourrais-je vérifier que votre équation est bien prise en compte ou non ? -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Si possible, il suffirait de vérifier que la biomasse diffère de celle obtenue avec cette simulation. Merci ! Éric Chatellier a écrit :
Sigrid LEHUTA a écrit :
Il n'y a pas d'erreur dans les log... je joints la simul
J'ai fait tourner la simulation, en effet pas d'erreur.
Mais je ne sais pas ce que vous attendez comme résultat pour vérifier.
Comment pourrais-je vérifier que votre équation est bien prise en compte ou non ?
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
Sigrid LEHUTA a écrit :
Si possible, il suffirait de vérifier que la biomasse diffère de celle obtenue avec cette simulation.
Merci ! J'ai "peut-être" trouvé.
À la fin de la methode preAction() il faut ajouter : context.getDB().commitTransaction(); pour valider les modifications. (cela correspond au context.getDB() du debut de la methode). Mais je ne comprend pas trop bien pourquoi il faut le mettre... -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
On Wed, 11 Mar 2009 19:29:15 +0100 Éric Chatellier <chatellier@codelutin.com> wrote:
Sigrid LEHUTA a écrit :
Si possible, il suffirait de vérifier que la biomasse diffère de celle obtenue avec cette simulation.
Merci ! J'ai "peut-être" trouvé.
À la fin de la methode preAction() il faut ajouter : context.getDB().commitTransaction(); pour valider les modifications. (cela correspond au context.getDB() du debut de la methode).
Mais je ne comprend pas trop bien pourquoi il faut le mettre...
J'ai peur qu'il y ait des effets de bord indesirable si on fait un commit dans une regle de gesion :(. Car le but est de pouvoir faire un rollback a la fin de chaque pas de temps pour remettre la base dans l'etat initial, et si on fait un commit cela ne sera plus possible. Je ne vois pas trop pourquoi un commit est necessaire pour prendre en compte la modif, car on est dans la meme transaction, donc elle devrait etre utilisee ? Tu as mis un system.out dans les equations pour voir lesquelles etaient utilisees ? et surtout quand ? -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Benjamin POUSSIN a écrit :
On Wed, 11 Mar 2009 19:29:15 +0100 Éric Chatellier <chatellier@codelutin.com> wrote:
J'ai "peut-être" trouvé.
À la fin de la methode preAction() il faut ajouter : context.getDB().commitTransaction(); pour valider les modifications. (cela correspond au context.getDB() du debut de la methode).
Mais je ne comprend pas trop bien pourquoi il faut le mettre...
Tu as mis un system.out dans les equations pour voir lesquelles etaient utilisees ? et surtout quand ?
En effet le commit ne change rien. Le system.out affiche bien le code de la nouvelle équation. J'ai regardé ce qui était compilé dans isis-build/formules le contenu java, c'est celui de la nouvelle équation. Et les Biomasses.csv sont différentes concernant Groupe0/Rochebonne par exemple. Mais du coup ça marche et je ne sais plus si j'ai changé autre chose... -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Bonjour,
Et les Biomasses.csv sont différentes concernant Groupe0/Rochebonne par exemple.
ca m inquiete un peu si la BIOMASSE du groupe 0 a changé vu que le poids de ce groupe est nul... tu es sur que ca n est pas l abondance ? si c est l abondance c est parfait et ca veut dire en effet que ca marche ! sinon c est que ca fait des trucs bisarres... -- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
Sigrid LEHUTA a écrit :
Bonjour,
Et les Biomasses.csv sont différentes concernant Groupe0/Rochebonne par exemple.
ca m inquiete un peu si la BIOMASSE du groupe 0 a changé vu que le poids de ce groupe est nul... tu es sur que ca n est pas l abondance ? si c est l abondance c est parfait et ca veut dire en effet que ca marche ! sinon c est que ca fait des trucs bisarres...
Non, j'ai du me tromper pendant mes tests. Maintenant je suis presque sur que c'est la bonne équation qui est utilisée, mais il n'y a aucune différence aux niveaux des exports :( -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
On Wed, 11 Mar 2009 17:41:59 +0100 Éric Chatellier <chatellier@codelutin.com> wrote:
Comment pourrais-je vérifier que votre équation est bien prise en compte ou non ?
un simple System.out.println("Nouvelle equation"); dans le code pourrait aider a savoir qu'elle est le code execute, et la meme chose mais avec "Ancienne Equation" Dans la base. Comme ca on sait, si l'equation est bien executer, et si on laquelle. -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
participants (3)
-
Benjamin POUSSIN -
Sigrid LEHUTA -
Éric Chatellier