About the "Report on descendant class instances" option on Report Definitions
Here is the situation:
Pega 7.22/CELS 7.22
The client needs to create it's own Contact data class (inheriting from PegaCA-Interface-Contact).
Of course, once it's done the DCR must be modified so the InterfaceContactClass property in the Declare_CAApplicationSettings is valued with the name of the customiz Contact data class. And this is done. And the custom class is mapped to its own specific data table.
And the client expected things were going to work that way. Of course it didn't. Because report definitions were defined on the PegaCA-Interface-Contact class without the "Report on descendant class instances" selected.
So all the report definitions must also be "saved-as" and customized in order to activate this option.
Which begs the question: why is it not selected by default? considering this leads to issues and some quick but repetitive customization work on all related report definitions when a client is adding a class inheriting from an OOTB data class?
My answer would be: in order not to systematically add an overhead when this option is not needed. But is that right and is that all?
Or maybe there should be hotfixes in order to switch all/some report definitions to have this option selected by default? So the client only have to create its class and change the DCR?
As you have said, keeping the checkbox selected all the time will be an overhead, I would like to brief it up as:
If there is any implementation class in the application rule set list, select this check box to have the report build its query using the implementation class mapping. This feature eliminates the need to copy each framework class-based report definition into the implementation class.
However, if you want the report to be based on the parent framework class, do not select this check box.
If a report definition is defined on an abstract class (inherited fromWork-), and this check box is selected, by default the work pool is reported on.