bonjour, j ai un petit soucis avec la methode proposee par benjamin : int MaValeurPourLAutreRegle = Integer.parseInt(context.getValue("MaValeurPourLAutreRegle")); ca compile pas ??! C:\Documents and Settings\slehuta\isis-database-3\rules\Paita4_20002007suite_Anchois.java:137: cannot find symbol symbol : method parseInt(java.lang.Object) location: class java.lang.Integer CatchEspTot = Integer.parseInt(context.getValue("CatchEsp")); est ce que c est correct de faire ? : Integer.parseInt(context.getValue("CatchEsp").toString()); et si l objet est un double ? : Double.parseDouble(context.getValue("CatchEsp").toString()); ?? merci d avance ! Benjamin POUSSIN a écrit :
On Fri, 17 Jul 2009 11:45:50 +0200 Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr> wrote:
Bonjour bonjour, J'aimerais réutiliser une quantité calculée dans une règle de gestion dans une autre règle (au même pas de temps) sans avoir a la recalculer. Est ce possible ? comment faut il déclarer la variable ? Merci d'avance
La solution propre ==================
Je pense que le plus simple et le plus propre est de passer par le context.
pour mettre une valeur dans le context:
context.setValue("MaValeurPourLAutreRegle", 10); http://isis-fish.labs.libre-entreprise.org/isis-fish/apidocs/fr/ifremer/isis...)
Pour recuperer la valeur:
int MaValeurPourLAutreRegle = Integer.parseInt(context.getValue("MaValeurPourLAutreRegle")); http://isis-fish.labs.libre-entreprise.org/isis-fish/apidocs/fr/ifremer/isis...)
Il y a le meme mecanisme sur la regle (setValue/getValue) mais ces valeurs ne sont pas partagees entre les regles, il faut donc passer par le context pour les partager.
Par contre fait attention que la regle qui doit fournir la donnee est bien appelee avant l'autre :). Car sinon tu essaieras de recuperer une donnee qui n'existe pas encore et donc NullPointerException :)
L'autre solution pas propre et donc ne pas lire :) ==================================================
L'autre solution moins propre est de declarer une variable static dans ta regle qui fait le calcul et les autres viennent directement la chercher.
Dans la premiere regle (appele pour l'exemple 'LaJolieRegleQuiCalcule'):
static public int maValeur = 10;
Dans la regle cliente pour recupere la valeur:
LaJolieRegleQuiCalcule.maValeur
-- 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 (interne : 8165)