Faiza Aslam Faiza Aslam - 1 year ago 72
reST (reStructuredText) Question

Drools: Executing multiple rules simultaneously via REST

I am new to drools. I want to fire multiple rules simultaneously depending on the condition.
I am using batch-execution command as follows, but it gives me error : "Bad request, no commands to be executed - either wrong format or no data"

{
"batch-execution":{
"lookup":"defaultKieSession",
"commands":[
{
"insert":{
"out-identifier":"TestAdvance",
"object":{
"LoanAdvance":{
"tenure":4,
"isBlacklisted":false
}
}
}
},
{
"insert":{
"out-identifier":"TestAdvance",
"object":{
"LoanAdvance":{
"tenure":3,
"isBlacklisted":false
}
}
}
},
{
"fire-all-rules":{

}
}
]
}
}


My rule in guided decision table looks like this

I want to make a REST request to the rule engine and get the result set as a list.
Please confirm if my JSON request is correct. Or is there any better way to achieve the same?
Any help would be appreciated.

Thanks & Regards

Answer Source

you are using incorrect json request format. With JSON request payload no need to use ''batch-execution", remove that. And correct JSON request will look like as:

{
  "commands":[
         {
        "insert":{
           "out-identifier":"obj",
           "object":{
              "example.project4_91839699.Person":{
                 "firstName":"abc",
                 "lastName":"abc", 
                 "hourlyRate":22,
                 "wage":100    
              }
           }
        }
     },{
        "insert":{
           "out-identifier":"obj2",
           "object":{
              "example.project4_91839699.Person":{
                 "firstName":"xyz",
                 "lastName":"xyz", 
                 "hourlyRate":24,
                 "wage":100    
              }
           }
        }
     }
     {
        "fire-all-rules":""
     }
  ]

}

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download