How to get objects inserted in the rule trhough Rest
by Antonio Anderson Souza
Dear All,
I'm using Drools integrated to Camel trough Rest, but I'm unable to receive
objects inserted in the session by the rules, I'm inserting the fact
acordos.Acordo and in the "then" section of the rule I create new facts to
be returned to my app in this case is the fact acordos.Retorno, but I'm
unable to access this facts in the Rest response
Does anybody have some clue how to get these objects inserted?
Follow bellow what I'm sending, receiving and my rule:
Rule Definition:
package acordos
declare Acordo
dataReserva: java.util.Date
dataEmbarque: java.util.Date
gds: String
ciaAerea: String
tipoAcordo: String
conexao: String
origem: String
destino: String
empresa: String
unidade: String
cliente: String
end
declare Retorno
codAcordo: String
end
#generated from Decision Table
import teste.*;
import java.util.Date;
# rule values at C18, header at C13
rule "tabelaTeste(Acordo acordo)_18"
salience 65518
when
Acordo(getDataReserva().after(new Date("22-Oct-2009")),
getDataReserva().before(new Date("31-Dec-2015")),
getDataEmbarque().after(new Date("1-Jan-2012")),
getDataEmbarque().before(new Date("31-Dec-2012")), gds == "1", ciaAerea ==
"AA", tipoAcordo == "1", getOrigem() in ("Brasil"), getDestino()
in("América do Norte","Brasil","Estados Unidos","Canadá","Ásia","América
Central","América do Sul","Mexico","Europa","Caribe"))
then
System.out.println("teteteetetet");
Retorno _retorno = new Retorno();
_retorno.setCodAcordo("PEB06");
insert(_retorno);
end
Rest request:
curl -v -H "Content-Type: text/plain" --data "
<batch-execution lookup=\"ksession1\">
<insert out-identifier=\"message\">
<acordos.Acordo>
<dataReserva>2012-01-30 08:00:00.000 -0300</dataReserva>
<dataEmbarque>2012-01-30 08:00:00.000 -0300</dataEmbarque>
<gds>1</gds>
<ciaAerea>AA</ciaAerea>
<conexao></conexao>
<origem>Brasil</origem>
<destino>Brasil</destino>
<tipoAcordo>1</tipoAcordo>
</acordos.Acordo>
<acordos.Retorno>
<codAcordo></codAcordo>
</acordos.Retorno>
</insert>
<fire-all-rules out-identifier=\"firedActivations\" />
</batch-execution>"
http://localhost:8080/drools-camel-server-5.4.0.Final/kservice/rest/execute
Rest Response:
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Date: Tue, 15 May 2012 22:20:00 GMT
< Content-Type: text/plain
< Content-Length: 528
<
* Connection #0 to host localhost left intact
* Closing connection #0
<?xml version='1.0' encoding='UTF-8'?><execution-results><result
identifier="message"><acordos.Acordo><dataReserva>2012-01-30 11:00:00.0
UTC</dataReserva><dataEmbarque>2012-01-30 11:00:00.0
UTC</dataEmbarque><gds>1</gds><ciaAerea>AA</ciaAerea><tipoAcordo>1</tipoAcordo><conexao></conexao><origem>Brasil</origem><destino>Brasil</destino></acordos.Acordo></result><result
identifier="firedActivations"><int>1</int></result><fact-handle
identifier="message"
external-form="0:2:1717445911:1717445911:2:DEFAULT"/></execution-results>
Best Regards,
Antonio Anderson Souza
<http://174.129.217.139:8080/makecallclient/callme?p=YXNvdXphQHZvaWNlLmJyY...>
Blog <http://www.antonioams.com> - Twitter <http://twitter.com/antonioams>-
LinkedIn <http://br.linkedin.com/in/antonioams> -
Facebook<http://www.facebook.com/antonioams>
13 years, 7 months
Issue while comparing BigDecimal and Long(only while using references)
by sumatheja
Hi,
I cam to know that we can compare BigDecimal, Long, Integer
interchangeably in the LHS of rule like
*when
Message(Decimalstatus == Longstatus)*
I found that this rule will fire as long as both Decimalstatus and
Longstatus Values are same. But when I try to use this feature in the below
mentioned way
*when
Message($dec:Decimalstatus)
Message(longstatus == $dec)*
This rule doesn't fire even though I have two Message object which satisfy
the condition.However, when I try
*
when
Message($dec:Decimalstatus)
Message(longstatus == $dec.longValue())*
It fires properly. Is this an issue or am I missing anything? Any
suggestions for better approach are welcome.Thanks in advance.
--
cheers
Sumatheja Dasararaju
13 years, 7 months
[rules-users] The Temporal Operators in Guvnor
by Carolina Pellecchia
Hi all
I have a new question. How can I define a Temporal Operators in GUVNOR?
I need to do something like this:
DoorOpeningEvent( this meets[25s] $obs )
thank you and kindly regards!
Carolina Pellecchia
13 years, 7 months
Score curruption exception in drools-planner-5.4.0.CR1
by Nurlan
Hi guys!
I have some exception and I don't know why?
My rule *someRuleId* has weight *1*
2012-05-12 03:47:08,224 [main] DEBUG Step index (570), time spend
(115566), score (0hard/0soft), initialized planning entity
(SomePlanningEntity [id=21, …]).
2012-05-12 03:47:08,465 [main] DEBUG Step index (571), time spend
(115807), score (0hard/0soft), initialized planning entity
(SomePlanningEntity [id=20, …]).
java.lang.IllegalStateException: Score corruption: the workingScore
(-4hard/0soft) is not the uncorruptedScore (0hard/0soft):
The workingMemory has 4 ConstraintOccurrence(s) in excess:
someRuleId/NEGATIVE_HARD:[SomePlanningEntity [id=2482309, …],
SomePlanningEntity [id=54, …]]=1
someRuleId/NEGATIVE_HARD:[SomePlanningEntity [id=2482309, …],
SomePlanningEntity [id=57, …]]=1
someRuleId/NEGATIVE_HARD:[SomePlanningEntity [id=57, …],
SomePlanningEntity [id=2482309, …]]=1
someRuleId/NEGATIVE_HARD:[SomePlanningEntity [id=54, …],
SomePlanningEntity [id=2482309, …]]=1
Check the score rules who created those ConstraintOccurrences. Verify that
each ConstraintOccurrence's causes and weight is correct.
at
org.drools.planner.core.score.director.AbstractScoreDirector.assertWorkingScore(AbstractScoreDirector.java:101)
at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.doMove(DefaultGreedyDecider.java:111)
at
org.drools.planner.core.constructionheuristic.greedyFit.decider.DefaultGreedyDecider.decideNextStep(DefaultGreedyDecider.java:78)
at
org.drools.planner.core.constructionheuristic.greedyFit.DefaultGreedyFitSolverPhase.solve(DefaultGreedyFitSolverPhase.java:63)
at
org.drools.planner.core.solver.DefaultSolver.runSolverPhases(DefaultSolver.java:183)
at
org.drools.planner.core.solver.DefaultSolver.solve(DefaultSolver.java:151)
…
…
--
View this message in context: http://drools.46999.n3.nabble.com/Score-curruption-exception-in-drools-pl...
Sent from the Drools: User forum mailing list archive at Nabble.com.
13 years, 7 months