2009-06-01 6 views
0

Salut, je veux apporter un peu de changement dans mon site. J'ai donc écrit un ensemble de règles mais je ne sais pas comment les déclencher à l'endroit où je veux qu'elles fonctionnent, c'est-à-dire le code original de mon site. Est-ce que quelqu'un peut m'aider?Drools problème lié

Répondre

0

Il manque une petite information (comme la version de Drools, l'environnement dans lequel vous travaillez, etc.), donc je vais essayer de répondre de manière générale, et si vous avez besoin de quelque chose de plus spécifique, faites moi savoir: En général, dans Drools, vous 'affirmez' des objets dans la mémoire de travail (en utilisant des méthodes comme, bien, assertObject ..), cela permet au moteur de règles d'en prendre connaissance, et plus tard, lorsque vous exécutez 'fireAllRules' cette mémoire de travail, toutes les règles sont exécutées (donc, vous appelez explicitement la méthode fireAllRules sur votre mémoire de travail quand vous voulez - je pense que c'est ce que vous demandiez).

Pour des informations plus détaillées, dans le cas où vous n'avez pas déjà regardé, vous pouvez vérifier ceci: http://legacy.drools.codehaus.org/Working+Memory.

grâce Gadi

0

lorsque vous avez votre objet abc, ce sera le fait que vous insérez dans la mémoire de travail. Par exemple:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 
kbuilder.add(ResourceFactory.newFileSystemResource(fileName), ResourceType.DRL); 
if (kbuilder.hasErrors()) { 
    System.out.println(kbuilder.getErrors()); 
} else { 
    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); 
    kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); 
    StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession(); 
    ksession.execute(abc); 
} 

Ensuite, vous aurez votre objet abc modifié lorsque l'exécution se termine. Jetez un oeil à here

Vous avez probablement Dont't veulent que les règles soient construites à chaque fois (ce qui est vraiment consommateur de temps), de sorte que vous pouvez utiliser ou KnowledgeAgent ou ont une base de connaissances statique et recréer chaque fois que vos fichiers de règles changent.

Questions connexes