Posted: 28 Dec 2016 8:39 EST Last activity: 30 Jan 2017 10:49 EST
Design pattern: Scheduled Automated Report
Suppose we have a requirement to send a report via email to Manager periodically, once a week/month etc. Options could be enabling report scheduling in production or using an advance agent to generate pdf/excel and attach it in email etc. Would like to hear how you will approach the design and pros/cons of the various approaches keeping in mind easy administration and scalability e.g
1) Ability to add or remove users easily from the subscription list
2) Ability to change the schedule easily - business decides that these reports should be sent weekly now instead of monthly
3) Stop the reports ( in case of business exception or a data flaw is found in reports and we don't want to send wrong reports to users)
4) Few Reports should be sent to manager even when they have not particularly subscribed the report. This will always get triggered to them.
The v7 report scheduling features should meet this requirement. The effort to build something custom would return little, I think, of value over the capabilities that are built in.
If there are reports that a Manager must receive without 'subscribing', I would tmake it policy to add these Managers as a Sys Admin task - they don't have to be users of the system to receive the report. Create a D-A-Operator-ID and add them to the subscriber list.
That takes care of requirements 1, 2, and 4. 3 isn't a issue if the reports are tested correctly. If a bad report somehow makes it to the scheduler (or perhaps a really agressive-but-careless user creates a custom report and puts it in the scheduler...), it again becomes a Sys Admin task to take the report out of the schedule.