I’m using the XLS decision table for the drools rules file. When I use the
local drools rules instance, object gets updated and reflects the changes
accordingly but when I use the remote web service call to use the remote
drools engine, rules get executed correctly but updated values does not get
reflected back in the return object.
Here’s the function that I use in the decision table (.xls)
function boolean setCTCFlag(Object resultViewMapObj, String siteCode){
boolean flag = false;
Map<String, ResultView> resultViewMap = (Map<String, ResultView>)
resultViewMapObj;
List<ResultView> resultViewList = new ArrayList<ResultView>();
resultViewList = new ArrayList<ResultView> (resultViewMap.values());
ResultView resultView = new ResultView();
resultView = resultViewList.get(0);
if(resultView.getSampleView().getSample() != null){
String sampleInd =
resultView.getSampleView().getSample().getSampleIndicator();
if(sampleInd != null && sampleInd.length() != 0){
String[] sampleIndComp =
sampleInd.split(""[^\\w\\s]"");
for(int i = 0; i<sampleIndComp.length; i++){
LabelValueView labelValueView = new
LabelValueView();
labelValueView.setLabel(sampleIndComp[i].trim());
labelValueView.setValue(" ");
// DOTO: this is the issue
// folowing line gets executed but changes do
not get reflected in the object.
// Only happens when this called remotely.
resultView.getDynamicFields().put("CTC_CLIENT_FLAG", labelValueView);
flag = true;
}
}
}
return flag;
}