SYMPTOM:
Dynamic sourcing does not work with error "CMI_FILTERS_CANNOT_ENSURE_ALL_DATA_NEEDED_IS_IN_CUBE" when the cube is updated using incremental refresh reports with different time range filter in Strategy Server 9.4.x.
STEPS TO REPRODUCE:


Sample Code/Error
Error code legend:
CMI_FILTERS_CANNOT_ENSURE_ALL_DATA_NEEDED_IS_IN_CUBE - The Intelligent Cube cannot be used for dynamic sourcing for the report because it cannot be verified that the Intelligent Cube filter is less restrictive than the report filter.
CMI_REPORT_TEMPLATE_ATTRIBUTE_FORM_MISSING_FROM_CUBE_TEMPLATE - A report template attribute or attribute form is missing from the cube template
CAUSE:
This is working as designed. When we do insert to update the cube, it is not doing automatically merge with two filter expression: "Day(ID) between 1/1/2009 and 12-31-2009" and "Day(ID) between 1/1/2010 and 12/31/2010". We just keep them as separate expression, not a continued time range. When we do dynamic sourcing with filter express crossing different years, our engine could not find exactly matched filter expression, which will cause no cube hit.
ACTION:
Make sure these filters could merge into a continued time range by defining them with common point. For instance, the two filters in the two Incremental Refresh Reports could be "Day(ID) between 1/1/2009 and 1/1/2010" and "Day(ID) between 1/1/2010 and 1/1/2011", then the engine will merge these two filter expressions into one, since there is a common point 1/1/2010.