Я изучаю Drools с помощью Kie Workbench. мой ввод будет именем внутри класса возможного продукта, и я ожидаю вывода в Ip внутри класса возможности. после выполнения механизма правил я получаю на выходе только нулевое значение.
Структура Pojo:
Opportunity.Java :
private java.lang.Boolean result;
private java.lang.String ip;
private java.util.List<com.sample2.sampledemo2.OpportunityProduct> productlist;
OpportunityProduct.Java
private java.lang.String name;
Ввод:
{
"commands":[
{
"insert":{
"out-identifier":"com.sample2.sampledemo2.Opportunity",
"return-object":true,
"object":{
"com.sample2.sampledemo2.Opportunity":{
"productlist":[
{
"name":"abc"
}
]
}
}
}
},
{
"fire-all-rules":""
}
]
}
Вывод:
{
"type":"SUCCESS",
"msg":"Container abcdef successfully called.",
"result":{
"execution-results":{
"results":[
{
"key":"",
"value":0
},
{
"key":"com.sample2.sampledemo2.Opportunity",
"value":{
"com..sample2.sampledemo2.Opportunity":{
"result":null,
"ip":null,
"productlist":[
{
"name":"abc"
}
]
}
}
}
],
"facts":[
{
"key":"com.sample2.sampledemo2.Opportunity",
"value":{
"org.drools.core.common.DefaultFactHandle":{
"external-form":"0:2:1366747666:1366747666:2:DEFAULT:NON_TRAIT:com.sample2.sampledemo2.Opportunity"
}
}
}
]
}
}
}
Таблица решений:
NAME CONDITION ACTION
o:Opportunity(pd: productlist)
OpportunityProduct
(name == $param , this memberOf pd) o.setIp($param);
Origination "abc" "IPP"
Доктор :
rule "Origination"
when
o:Opportunity(pd: productlist)
(OpportunityProduct(name == "abc" , this memberOf pd))
then
o.setIp("IPP");
end
Я не смог определить, неверен ли мой ввод или условие в таблице решений неверно.