У меня есть следующие два правила:Drools - ответ XML из нескольких правил выполнения
global Response myResponse;
rule "rule1"
when
Loan(processId == "1")
then
myResponse.setRuleId("rule1");
myResponse.setPmtStatus("valid");
end
rule "rule2"
when
Loan(amount > 1000)
then
myResponse.setRuleId("rule2");
myResponse.setPmtStatus("invalid");
end
Когда я получить доступ к Drools через REST, посылающую ниже запрос XML, в соответствии с данными, вставленных, оба правила должны стрелять.
<batch-execution lookup="testsession">
<set-global identifier="myResponse" out-identifier="response">
<com.sample.Response></com.sample.Response>
</set-global>
<insert out-identifier = "loan">
<com.sample.Loan>
<loanId>11112222</loanId>
<processId>1</processId>
<amount>2000.00</amount>
</com.sample.Loan>
</insert>
<fire-all-rules/>
</batch-execution>
В ответе XML, я хотел бы получить информацию о последствиях из обоих правил. Например, я хотел бы получить один узел ответа с ruleID = rule1 и pmtStatus = valid, а другой узел с ruleId = rule2 и pmtStatus = недействителен.
Прямо сейчас, я получаю результаты только из правила, выполненного последним. Пожалуйста, вы бы посоветовали, как я должен выполнить свою просьбу, чтобы получать результаты от всех запущенных правил в моем возвратном XML.
Благодаря
Запрос не является проблемой, но очевидно, что глобальный ответ myResponse может содержать только данные исполнения одного правила. Как насчет использования 'List'? –
laune
Спасибо, laune. Это помогло. – efuller