Use Case: Schedule Reports
Subscribe

From OpenNMS

Jump to: navigation, search

Currently scheduling of reports can be achieved by creating a cronjob on the system level and initiate the generation of the report. Add a Possibility to select a report and schedule the generation of that report in the webUI.

The user should be able to select options for the frequency of the report at minimum, one-time, daily, weekly, monthly, or yearly. This could be accomplished with either the Spring Quartz scheduler or the Java5 scheduler. At some point in time we need to centralize the scheduling.

Availability reports have a "horizon" of one day, this means that you can generate a report at any time "today" and it will contain availability data up to midnight last night.

Questions

  1. What about scheduling reports for particular time windows (one off reports for non-standard time periods).
  2. This use case implies that a user can generate reports for _any_ category so long as they are authenticated, but the next use case implies not.
  3. If not, then we need to introduce the notion of ownership of categories, which implies acegi

Initial Implementation

  • All reports will be secheduled daily. Need a page that shows the schedule.
  • New database table - report schedule - Used to load the scheduler.
  • Contains:
    • Report category
    • Report type
    • report format
    • Report run date
    • Report repeat interval
    • Report file name


  • User navigates to schedule reports page. Schedule reports page will show all reports that are currently scheduled, including the category, type and time that it is scheduled.
  • Baisc Scheduler will schedule
  • User can select a new report to be scheduled by selecting a category (from categories.xml), report type (html, pdf, svg and and time (drop down box for each).


back to use cases