Support Article
isAdaptiveEnabled method returning incorrect value
SA-1173
Summary
The decision logic in dpkg does not contain any ADS components. After calling makedecision on this package and getting the responsedata object returned from the makedecision call, the responsedata.isAdaptiveEnabled () method returns true when expecting it to be false.
Expect this method to return true when there are ADS components in the logic.
Please note, in CDM6.4 version, this method is correctly returning false . This behavior is observed only in CDM6.8
Error Messages
NA
Steps to Reproduce
rtpConfig = dp.getRealTimeProjectConfiguration(projectId);
DecisionResult dr = null;
try
{
IDecisionHandle handle = rtpConfig.getDecisionHandle(decisionId);
PropertyColumn[] columns = dp.getInputPropertyColumns(handle);
IdentityResolver ids = new IdentityResolver();
ids.setupObjectIdentities(columns, inputMap);
dr = dp.makeDecision(handle, lkupKey, columns);
ids.resolveObjectIdentities(dr);
ResponseData responsedata = dr.getResponseData();
adsFlag = responsedata.isAdaptiveEnabled();
}
catch(com.chordiant.dm.dedo.DecisionServiceException e)
{
}
Root Cause
ADS Input caching is introduced in CDM 6.8 and isAdaptiveEnabled () API implementation is checking only whether ADSInput Caching is enabled or not. This parameter is for the complete environment.
An internal issue with RTDS internal implementation sets the ADS flag to true if the ADS input caching is enabled irrespective of whether the decision logic contains ADS models or not.
Resolution
Patch Provided and isAdaptiveEnabled () API implementation now will verify whether ADSInput caching is enabled in the environment and the logic contains the ADS models in it or not.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.