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