Oi Miguel, when I try this in the "doMove" method using the "workingMemory" instead of "ksession" I got this error
Exception in thread "main" java.lang.UnsupportedOperationException: this is implementedby StatefulKnowledgeImpl at org.drools.reteoo.ReteooWorkingMemory.getFactHandles (ReteooWorkingMemory.java:363) ... ... Any idea? Obrigado Antonio 2010/5/6 miguel machado <mls.mach...@gmail.com> > Olá Antonio, > > // retract all of it just in case > for (Object fact : ksession.getFactHandles()) { > ksession.retract((FactHandle) fact); > } > > Hope this helps. > _ miguel > > > > 2010/5/5 Antonio Neto <antoniosouzan...@gmail.com> > > Hi, >> >> Thank you very much for all replies. >> >> I've tried also with not ( EPackage(...)), but the result is the same. >> >> I think that I remove the EClass from the facts in my solution, but they >> continue in my workingMemory. >> >> How I can see the facts of the workingMemory object (and how remove it)? >> >> Thanks >> >> Best regards >> >> Antonio >> >> 2010/5/5 <fgad...@genigraph.fr> >> >>> Hi Antonio, >>> Documentation states that the complement to "not" is "exists", whereas >>> "not" keyword is used to match the absence of a fact (in Working Memory), >>> and "exists" keyword is used to test the existence of one or more facts (in >>> Working memory). >>> >>> So if you want to test that a fact is not in working memory, then you >>> should use the >>> not(MyClass()) pattern. >>> >>> Hope this helps, >>> Francois. >>> >>> Antonio Neto <antoniosouzan...@gmail.com> a écrit : >>> >>> >>> > Any idea? Please... >>> > >>> > 2010/5/4 Antonio Neto <antoniosouzan...@gmail.com> >>> > >>> >> Hi all, >>> >> >>> >> I don't know exactly why I have a problem in my "exists" function. >>> I've >>> >> tried many different ways, but it does not work. Anybody could help >>> me, >>> >> please? >>> >> >>> >> >>> >> I have the following rules: >>> >> >>> >> *rule "diff" >>> >> when >>> >> $var1: EReference(name == "employee") >>> >> $var2: EClass(name == "Company", EAllReferences contains $var1) >>> >> not (exists( EPackage(EClassifiers contains $var2 ) )) >>> >> then >>> >> insertLogical(new IntConstraintOccurrence("diff", 10)); >>> >> end >>> >> >>> >> rule "ClassesNotReferenced" >>> >> when >>> >> $q1 : EClass(); >>> >> $q2 : EPackage(EClassifiers contains $q1); >>> >> not( exists ( EReference(EType == $q1) )); >>> >> then >>> >> insertLogical(new >>> IntConstraintOccurrence("ClassesNotReferenced", >>> >> 1, $q1)); >>> >> end* >>> >> >>> >> >>> >> and in my facts (and my EPackage) I have 4 instances of EClass >>> "Company" >>> >> with a EReference "employee", and another EClass "Person". I still >>> have a >>> >> "move" that removes EClasses in my Drools Solver. >>> >> >>> >> I need to have only one classe "Company" after processing. But it >>> removes >>> >> only the EClass "Person", when it was supposed to remove one EClass >>> "Person" >>> >> and 3 ECLasses "Company". Leaving one EClass "Company" in the end. >>> >> >>> >> The problem is: when Drools tries to remove a EClass "Person" it >>> thinks >>> >> that the EClass "Company" does not exists. But in fact there are 3 >>> others. >>> >> >>> >> Any clue about it, please ? >>> >> >>> >> Thanks >>> >> >>> >> Bests regards >>> >> >>> >> Antonio >>> >> >>> >> >>> >> >>> > >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >> >> _______________________________________________ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > > -- > "To understand what is recursion you must first understand recursion" > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users