This is just a quick reminder to anyone thinking of creating a RetrieveMultiple plugin: they are not called for FetchXml reports (apparently, they are not called for the SQL reports either).
Why is it important?
Usually, we would use RetrieveMultiple plugin to either modify the query (in the pre-retrieveMultiple) or to do something with the records that have been retrieved(in the post-RetrieveMultiple). For example, we might use it to implement some sort of additional custom filtering. We might also use RetrieveMultiple plugins to implement custom security. We might use such plugins to implement language translation support. There is a bunch of interesting scenarios where RetrieveMultiple plugins can be very useful.
However, this is exactly why we need to remember of that little note above: plug-ins registered for RetrieveMultiple are not called for FetchXml reports.
Our highly elaborate security won’t work in the reports. Customized filtering won’t work there either. Language translations would have to be implemented separately. Basically, we will have to re-implement all that logic in the reports as well. However, there is still “Report Wizard” in Dynamics, so anyone having sufficient permissions can create their own report, which, again, will not be aware of the customizations we have implemented in the RetrieveMultiple plugins.
Are RetrieveMultiple plugins useless, then? Not at all. They simply have their limitations.